From ad4930c3aeb3e3f1fc2789861223d833a3f7fe11 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 7 Dec 2015 17:39:34 +0100 Subject: [PATCH 01/50] Fix strict mode only reporting 404 when failure, #127. --- REVISION.md | 6 ++++++ webroot/img.php | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/REVISION.md b/REVISION.md index 5985afb..0acdbd4 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,6 +5,12 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) +v0.7.9* (2015-12-07) +------------------------------------- + +* Fix strict mode only reporting 404 when failure, #127. + + v0.7.9 (2015-12-07) ------------------------------------- diff --git a/webroot/img.php b/webroot/img.php index 553c604..6d06284 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -8,7 +8,7 @@ * */ -$version = "v0.7.9 (2015-12-07)"; +$version = "v0.7.9* (2015-12-07)"; // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/$version"); @@ -38,16 +38,16 @@ function errorPage($msg, $type = 500) $header = "500 Internal Server Error"; } + if ($mode == "strict") { + $header = "404 Not Found"; + } + header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } - if ($mode == "strict") { - $header = "404 Not Found"; - } - error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } From ad8f6c12eefdf6b2c465bed60fd4bc4dd8533f2a Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 7 Dec 2015 17:40:00 +0100 Subject: [PATCH 02/50] creating bundles --- webroot/imgd.php | 10 +++++----- webroot/imgp.php | 10 +++++----- webroot/imgs.php | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/webroot/imgd.php b/webroot/imgd.php index ee1cc1d..8937be3 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -3817,7 +3817,7 @@ class CCache * */ -$version = "v0.7.9 (2015-12-07)"; +$version = "v0.7.9* (2015-12-07)"; // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/$version"); @@ -3847,16 +3847,16 @@ function errorPage($msg, $type = 500) $header = "500 Internal Server Error"; } + if ($mode == "strict") { + $header = "404 Not Found"; + } + header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } - if ($mode == "strict") { - $header = "404 Not Found"; - } - error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } diff --git a/webroot/imgp.php b/webroot/imgp.php index 2d60bdf..2647a92 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -3817,7 +3817,7 @@ class CCache * */ -$version = "v0.7.9 (2015-12-07)"; +$version = "v0.7.9* (2015-12-07)"; // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/$version"); @@ -3847,16 +3847,16 @@ function errorPage($msg, $type = 500) $header = "500 Internal Server Error"; } + if ($mode == "strict") { + $header = "404 Not Found"; + } + header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } - if ($mode == "strict") { - $header = "404 Not Found"; - } - error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } diff --git a/webroot/imgs.php b/webroot/imgs.php index 09d915a..bceedbe 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -9,7 +9,7 @@

CImage Verbose Output

{$log}
EOD; -} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } $version = "v0.7.9 (2015-12-07)"; define("CIMAGE_USER_AGENT", "CImage/$version"); function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } if ($mode == "strict") { $header = "404 Not Found"; } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = $version"); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $autoloader = getConfig('autoloader', false); $cimageClass = getConfig('cimage_class', false); if ($autoloader) { require $autoloader; } elseif ($cimageClass) { require $cimageClass; } $img = new CImage(); $img->setVerbose($verbose || $verboseFile); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new CCache(); $cache->setDir($cachePath); $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { } elseif ($imagePathConstraint) { $pathToImage = realpath($imagePath . $srcImage); $imageDir = realpath($imagePath); is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a +} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } $version = "v0.7.9* (2015-12-07)"; define("CIMAGE_USER_AGENT", "CImage/$version"); function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = $version"); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $autoloader = getConfig('autoloader', false); $cimageClass = getConfig('cimage_class', false); if ($autoloader) { require $autoloader; } elseif ($cimageClass) { require $cimageClass; } $img = new CImage(); $img->setVerbose($verbose || $verboseFile); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new CCache(); $cache->setDir($cachePath); $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { } elseif ($imagePathConstraint) { $pathToImage = realpath($imagePath . $srcImage); $imageDir = realpath($imagePath); is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a matching file exists on the filesystem.', 404 ); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( 'Security constraint: Source image is not below the directory "image_path" as specified in the config file img_config.php.', 404 ); } verbose("src = $srcImage"); $sizeConstant = getConfig('size_constant', function () { $sizes = array( 'w1' => 613, 'w2' => 630, ); $gridColumnWidth = 30; $gridGutterWidth = 10; $gridColumns = 24; for ($i = 1; $i <= $gridColumns; $i++) { $sizes['c' . $i] = ($gridColumnWidth + $gridGutterWidth) * $i - $gridGutterWidth; } return $sizes; }); $sizes = call_user_func($sizeConstant); $newWidth = get(array('width', 'w')); $maxWidth = getConfig('max_width', 2000); if (isset($sizes[$newWidth])) { $newWidth = $sizes[$newWidth]; } if ($newWidth[strlen($newWidth)-1] == '%') { is_numeric(substr($newWidth, 0, -1)) or errorPage('Width % not numeric.', 404); } else { is_null($newWidth) or ($newWidth > 10 && $newWidth <= $maxWidth) or errorPage('Width out of range.', 404); } verbose("new width = $newWidth"); $newHeight = get(array('height', 'h')); $maxHeight = getConfig('max_height', 2000); if (isset($sizes[$newHeight])) { $newHeight = $sizes[$newHeight]; } if ($newHeight[strlen($newHeight)-1] == '%') { is_numeric(substr($newHeight, 0, -1)) or errorPage('Height % out of range.', 404); } else { is_null($newHeight) or ($newHeight > 10 && $newHeight <= $maxHeight) or errorPage('Height out of range.', 404); } verbose("new height = $newHeight"); $aspectRatio = get(array('aspect-ratio', 'ar')); $aspectRatioConstant = getConfig('aspect_ratio_constant', function () { return array( '3:1' => 3/1, '3:2' => 3/2, '4:3' => 4/3, '8:5' => 8/5, '16:10' => 16/10, '16:9' => 16/9, 'golden' => 1.618, ); }); $aspectRatios = call_user_func($aspectRatioConstant); $negateAspectRatio = ($aspectRatio[0] == '!') ? true : false; $aspectRatio = $negateAspectRatio ? substr($aspectRatio, 1) : $aspectRatio; if (isset($aspectRatios[$aspectRatio])) { $aspectRatio = $aspectRatios[$aspectRatio]; } if ($negateAspectRatio) { $aspectRatio = 1 / $aspectRatio; } is_null($aspectRatio) or is_numeric($aspectRatio) or errorPage('Aspect ratio out of range', 404); verbose("aspect ratio = $aspectRatio"); $cropToFit = getDefined(array('crop-to-fit', 'cf'), true, false); verbose("crop to fit = $cropToFit"); $backgroundColor = getConfig('background_color', null); if ($backgroundColor) { $img->setDefaultBackgroundColor($backgroundColor); verbose("Using default background_color = $backgroundColor"); } $bgColor = get(array('bgColor', 'bg-color', 'bgc'), null); verbose("bgColor = $bgColor"); $resizeStrategy = getDefined(array('no-resample'), true, false); if ($resizeStrategy) { $img->setCopyResizeStrategy($img::RESIZE); verbose("Setting = Resize instead of resample"); } $fillToFit = get(array('fill-to-fit', 'ff'), null); verbose("fill-to-fit = $fillToFit"); if ($fillToFit !== null) { if (!empty($fillToFit)) { $bgColor = $fillToFit; verbose("fillToFit changed bgColor to = $bgColor"); } $fillToFit = true; verbose("fill-to-fit (fixed) = $fillToFit"); } $keepRatio = getDefined(array('no-ratio', 'nr', 'stretch'), false, true); verbose("keep ratio = $keepRatio"); $crop = get(array('crop', 'c')); verbose("crop = $crop"); $area = get(array('area', 'a')); verbose("area = $area"); $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { verbose("use original is default ON"); $useOriginal = true; } verbose("use original = $useOriginal"); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $quality = get(array('quality', 'q')); $qualityDefault = getConfig('jpg_quality', null); is_null($quality) or ($quality > 0 and $quality <= 100) or errorPage('Quality out of range', 404); if (is_null($quality) && !is_null($qualityDefault)) { $quality = $qualityDefault; } verbose("quality = $quality"); $compress = get(array('compress', 'co')); $compressDefault = getConfig('png_compression', null); is_null($compress) or ($compress > 0 and $compress <= 9) or errorPage('Compress out of range', 404); if (is_null($compress) && !is_null($compressDefault)) { $compress = $compressDefault; } verbose("compress = $compress"); $saveAs = get(array('save-as', 'sa')); verbose("save as = $saveAs"); $scale = get(array('scale', 's')); is_null($scale) or ($scale >= 0 and $scale <= 400) or errorPage('Scale out of range', 404); verbose("scale = $scale"); $palette = getDefined(array('palette', 'p'), true, false); verbose("palette = $palette"); $sharpen = getDefined('sharpen', true, null); verbose("sharpen = $sharpen"); $emboss = getDefined('emboss', true, null); verbose("emboss = $emboss"); $blur = getDefined('blur', true, null); verbose("blur = $blur"); $rotateBefore = get(array('rotateBefore', 'rotate-before', 'rb')); is_null($rotateBefore) or ($rotateBefore >= -360 and $rotateBefore <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateBefore = $rotateBefore"); $rotateAfter = get(array('rotateAfter', 'rotate-after', 'ra', 'rotate', 'r')); is_null($rotateAfter) or ($rotateAfter >= -360 and $rotateAfter <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateAfter = $rotateAfter"); $autoRotate = getDefined(array('autoRotate', 'auto-rotate', 'aro'), true, false); verbose("autoRotate = $autoRotate"); $filters = array(); $filter = get(array('filter', 'f')); if ($filter) { $filters[] = $filter; } for ($i = 0; $i < 10; $i++) { $filter = get(array("filter{$i}", "f{$i}")); if ($filter) { $filters[] = $filter; } } verbose("filters = " . print_r($filters, 1)); $outputFormat = getDefined('json', 'json', null); $outputFormat = getDefined('ascii', 'ascii', $outputFormat); verbose("outputformat = $outputFormat"); if ($outputFormat == 'ascii') { $defaultOptions = getConfig( 'ascii-options', array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ) ); $options = get('ascii'); $options = explode(',', $options); if (isset($options[0]) && !empty($options[0])) { $defaultOptions['characterSet'] = $options[0]; } if (isset($options[1]) && !empty($options[1])) { $defaultOptions['scale'] = $options[1]; } if (isset($options[2]) && !empty($options[2])) { $defaultOptions['luminanceStrategy'] = $options[2]; } if (count($options) > 3) { unset($options[0]); unset($options[1]); unset($options[2]); $characterString = implode($options); $defaultOptions['customCharacterSet'] = $characterString; } $img->setAsciiOptions($defaultOptions); } $dpr = get(array('ppi', 'dpr', 'device-pixel-ratio'), 1); verbose("dpr = $dpr"); $convolve = get('convolve', null); $convolutionConstant = getConfig('convolution_constant', array()); if ($convolve && isset($convolutionConstant)) { $img->addConvolveExpressions($convolutionConstant); verbose("convolve constant = " . print_r($convolutionConstant, 1)); } verbose("convolve = " . print_r($convolve, 1)); $upscale = getDefined(array('no-upscale', 'nu'), false, true); verbose("upscale = $upscale"); $postProcessing = getConfig('postprocessing', array( 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', 'png_deflate' => false, 'png_deflate_cmd' => '/usr/local/bin/pngout -q', 'jpeg_optimize' => false, 'jpeg_optimize_cmd' => '/usr/local/bin/jpegtran -copy none -optimize', )); $alias = get('alias', null); $aliasPath = getConfig('alias_path', null); $validAliasname = getConfig('valid_aliasname', '#^[a-z0-9A-Z-_]+$#'); $aliasTarget = null; if ($alias && $aliasPath && $passwordMatch) { $aliasTarget = $aliasPath . $alias; $useCache = false; is_writable($aliasPath) or errorPage("Directory for alias is not writable.", 403); preg_match($validAliasname, $alias) or errorPage('Filename for alias contains invalid characters. Do not add extension.', 404); } elseif ($alias) { errorPage('Alias is not enabled in the config file or password not matching.', 403); } verbose("alias = $alias"); $cacheControl = getConfig('cache_control', null); if ($cacheControl) { verbose("cacheControl = $cacheControl"); $img->addHTTPHeader("Cache-Control", $cacheControl); } if ($dummyImage === true) { $dummyDir = $cache->getPathToSubdir("dummy"); $img->setSaveFolder($dummyDir) ->setSource($dummyFilename, $dummyDir) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'bgColor' => $bgColor, ) ) ->setJpegQuality($quality) ->setPngCompression($compress) ->createDummyImage() ->generateFilename(null, false) ->save(null, null, false); $srcImage = $img->getTarget(); $imagePath = null; verbose("src (updated) = $srcImage"); } $srgbDefault = getConfig('srgb_default', false); $srgbColorProfile = getConfig('srgb_colorprofile', __DIR__ . '/../icc/sRGB_IEC61966-2-1_black_scaled.icc'); $srgb = getDefined('srgb', true, null); if ($srgb || $srgbDefault) { $filename = $img->convert2sRGBColorSpace( $srcImage, $imagePath, $cache->getPathToSubdir("srgb"), $srgbColorProfile, $useCache ); if ($filename) { $srcImage = $img->getTarget(); $imagePath = null; verbose("srgb conversion and saved to cache = $srcImage"); } else { verbose("srgb not op"); } } if ($status) { $text = "img.php version = $version\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; $res = $cache->getStatusOfSubdir(""); $text .= "Cache $res\n"; $res = $cache->getStatusOfSubdir("remote"); $text .= "Cache remote $res\n"; $res = $cache->getStatusOfSubdir("dummy"); $text .= "Cache dummy $res\n"; $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; $text .= "Extension exif is $no loaded.
"; $no = extension_loaded('curl') ? null : 'NOT'; $text .= "Extension curl is $no loaded.
"; $no = extension_loaded('imagick') ? null : 'NOT'; $text .= "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; if (!$no) { $text .= print_r(gd_info(), 1); } echo << From 6d3687d838fa07db9b0addb2d9d2dbcaced99b2a Mon Sep 17 00:00:00 2001 From: Dmitry Lukashin Date: Thu, 14 Jan 2016 15:49:47 +0300 Subject: [PATCH 03/50] Add PHP extensions to the composer requirements --- composer.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 7b6ee81..c06f689 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,11 @@ "docs": "http://dbwebb.se/opensource/cimage" }, "require": { - "php": ">=5.3" + "php": ">=5.3", + "ext-gd": "*" + }, + "suggest": { + "ext-exif": "*" }, "autoload": { "classmap": [ From 6467fcc7480f691358cf288b65cb9ae9ea40b11c Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Thu, 14 Jan 2016 16:19:00 +0100 Subject: [PATCH 04/50] Add require of ext-gd in composer.json, #133. --- REVISION.md | 1 + 1 file changed, 1 insertion(+) diff --git a/REVISION.md b/REVISION.md index 0acdbd4..4d28438 100644 --- a/REVISION.md +++ b/REVISION.md @@ -8,6 +8,7 @@ Revision history v0.7.9* (2015-12-07) ------------------------------------- +* Add require of ext-gd in composer.json, #133. * Fix strict mode only reporting 404 when failure, #127. From ccbd08949fc5744776f8d10c0c1c87d2629a4a60 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Tue, 26 Jan 2016 17:40:10 +0100 Subject: [PATCH 05/50] add for testcase #134 --- webroot/img/planet.gif | Bin 0 -> 2624 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 webroot/img/planet.gif diff --git a/webroot/img/planet.gif b/webroot/img/planet.gif new file mode 100644 index 0000000000000000000000000000000000000000..366c356c650145e66fe06339e2acac69e772f8cc GIT binary patch literal 2624 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 literal 0 HcmV?d00001 From a62d7cb6c2b4f1d8ac3ce7d50b3b5da9496a2c3c Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Fri, 1 Apr 2016 10:24:24 +0200 Subject: [PATCH 06/50] Add backup option for images src-alt, #141. --- REVISION.md | 3 ++- webroot/img.php | 51 +++++++++++++++++++++++++++++++++--------- webroot/img_config.php | 17 +++++++++++++- 3 files changed, 59 insertions(+), 12 deletions(-) diff --git a/REVISION.md b/REVISION.md index 4d28438..4025c1b 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,9 +5,10 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) -v0.7.9* (2015-12-07) +v0.7.10 (2016-04-01) ------------------------------------- +* Add backup option for images `src-alt`, #141. * Add require of ext-gd in composer.json, #133. * Fix strict mode only reporting 404 when failure, #127. diff --git a/webroot/img.php b/webroot/img.php index 6d06284..dc2faed 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -409,18 +409,28 @@ if (isset($shortcut) $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); +// Get settings for src-alt as backup image +$srcAltImage = urldecode(get('src-alt', null)); +$srcAltConfig = getConfig('src_alt', null); +if (empty($srcAltImage)) { + $srcAltImage = $srcAltConfig; +} + // Check for valid/invalid characters $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); +// Source is remote +$remoteSource = false; + // Dummy image feature $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) - or errorPage('Filename contains invalid characters.', 404); + or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { @@ -430,19 +440,40 @@ if ($dummyEnabled && $srcImage === $dummyFilename) { } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { // If source is a remote file, ignore local file checks. + $remoteSource = true; -} elseif ($imagePathConstraint) { +} else { - // Check that the image is a file below the directory 'image_path'. + // Check if file exists on disk or try using src-alt $pathToImage = realpath($imagePath . $srcImage); - $imageDir = realpath($imagePath); - is_file($pathToImage) - or errorPage( - 'Source image is not a valid file, check the filename and that a - matching file exists on the filesystem.', - 404 - ); + if (!is_file($pathToImage) && !empty($srcAltImage)) { + // Try using the src-alt instead + $srcImage = $srcAltImage; + $pathToImage = realpath($imagePath . $srcImage); + + preg_match($validFilename, $srcImage) + or errorPage('Source (alt) filename contains invalid characters.', 404); + + if ($dummyEnabled && $srcImage === $dummyFilename) { + // Check if src-alt is the dummy image + $dummyImage = true; + } + } + + if (!$dummyImage) { + is_file($pathToImage) + or errorPage( + 'Source image is not a valid file, check the filename and that a + matching file exists on the filesystem.', + 404 + ); + } +} + +if ($imagePathConstraint && !$dummyImage && !$remoteSource) { + // Check that the image is a file below the directory 'image_path'. + $imageDir = realpath($imagePath); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( diff --git a/webroot/img_config.php b/webroot/img_config.php index b91b7e9..4ca4e69 100644 --- a/webroot/img_config.php +++ b/webroot/img_config.php @@ -98,6 +98,20 @@ return array( + /** + * Use backup image if src-image is not found on disk. The backup image + * is only available for local images and based on wether the original + * image is found on disk or not. The backup image must be a local image + * or the dummy image. + * + * Default value: + * src_alt: null //disabled by default + */ + //'src_alt' => 'car.png', + //'src_alt' => 'dummy', + + + /** * A regexp for validating characters in the image or alias filename. * @@ -188,7 +202,8 @@ return array( /** * Check that the imagefile is a file below 'image_path' using realpath(). * Security constraint to avoid reaching images outside image_path. - * This means that symbolic links to images outside the image_path will fail. + * This means that symbolic links to images outside the image_path will + * fail. * * Default value: * image_path_constraint: true From 71816261f26973ec8c89a43b667e21011d04ae15 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Fri, 1 Apr 2016 10:27:33 +0200 Subject: [PATCH 07/50] prepare to merge master --- webroot/imgd.php | 51 ++++++++++++++++++++++++++++++++++++++---------- webroot/imgp.php | 51 ++++++++++++++++++++++++++++++++++++++---------- webroot/imgs.php | 4 ++-- 3 files changed, 84 insertions(+), 22 deletions(-) diff --git a/webroot/imgd.php b/webroot/imgd.php index 8937be3..a95868c 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -4218,18 +4218,28 @@ if (isset($shortcut) $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); +// Get settings for src-alt as backup image +$srcAltImage = urldecode(get('src-alt', null)); +$srcAltConfig = getConfig('src_alt', null); +if (empty($srcAltImage)) { + $srcAltImage = $srcAltConfig; +} + // Check for valid/invalid characters $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); +// Source is remote +$remoteSource = false; + // Dummy image feature $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) - or errorPage('Filename contains invalid characters.', 404); + or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { @@ -4239,19 +4249,40 @@ if ($dummyEnabled && $srcImage === $dummyFilename) { } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { // If source is a remote file, ignore local file checks. + $remoteSource = true; -} elseif ($imagePathConstraint) { +} else { - // Check that the image is a file below the directory 'image_path'. + // Check if file exists on disk or try using src-alt $pathToImage = realpath($imagePath . $srcImage); - $imageDir = realpath($imagePath); - is_file($pathToImage) - or errorPage( - 'Source image is not a valid file, check the filename and that a - matching file exists on the filesystem.', - 404 - ); + if (!is_file($pathToImage) && !empty($srcAltImage)) { + // Try using the src-alt instead + $srcImage = $srcAltImage; + $pathToImage = realpath($imagePath . $srcImage); + + preg_match($validFilename, $srcImage) + or errorPage('Source (alt) filename contains invalid characters.', 404); + + if ($dummyEnabled && $srcImage === $dummyFilename) { + // Check if src-alt is the dummy image + $dummyImage = true; + } + } + + if (!$dummyImage) { + is_file($pathToImage) + or errorPage( + 'Source image is not a valid file, check the filename and that a + matching file exists on the filesystem.', + 404 + ); + } +} + +if ($imagePathConstraint && !$dummyImage && !$remoteSource) { + // Check that the image is a file below the directory 'image_path'. + $imageDir = realpath($imagePath); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( diff --git a/webroot/imgp.php b/webroot/imgp.php index 2647a92..c48bdb0 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -4218,18 +4218,28 @@ if (isset($shortcut) $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); +// Get settings for src-alt as backup image +$srcAltImage = urldecode(get('src-alt', null)); +$srcAltConfig = getConfig('src_alt', null); +if (empty($srcAltImage)) { + $srcAltImage = $srcAltConfig; +} + // Check for valid/invalid characters $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); +// Source is remote +$remoteSource = false; + // Dummy image feature $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) - or errorPage('Filename contains invalid characters.', 404); + or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { @@ -4239,19 +4249,40 @@ if ($dummyEnabled && $srcImage === $dummyFilename) { } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { // If source is a remote file, ignore local file checks. + $remoteSource = true; -} elseif ($imagePathConstraint) { +} else { - // Check that the image is a file below the directory 'image_path'. + // Check if file exists on disk or try using src-alt $pathToImage = realpath($imagePath . $srcImage); - $imageDir = realpath($imagePath); - is_file($pathToImage) - or errorPage( - 'Source image is not a valid file, check the filename and that a - matching file exists on the filesystem.', - 404 - ); + if (!is_file($pathToImage) && !empty($srcAltImage)) { + // Try using the src-alt instead + $srcImage = $srcAltImage; + $pathToImage = realpath($imagePath . $srcImage); + + preg_match($validFilename, $srcImage) + or errorPage('Source (alt) filename contains invalid characters.', 404); + + if ($dummyEnabled && $srcImage === $dummyFilename) { + // Check if src-alt is the dummy image + $dummyImage = true; + } + } + + if (!$dummyImage) { + is_file($pathToImage) + or errorPage( + 'Source image is not a valid file, check the filename and that a + matching file exists on the filesystem.', + 404 + ); + } +} + +if ($imagePathConstraint && !$dummyImage && !$remoteSource) { + // Check that the image is a file below the directory 'image_path'. + $imageDir = realpath($imagePath); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( diff --git a/webroot/imgs.php b/webroot/imgs.php index bceedbe..adb72d6 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -9,8 +9,8 @@

CImage Verbose Output

{$log}
EOD; -} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } $version = "v0.7.9* (2015-12-07)"; define("CIMAGE_USER_AGENT", "CImage/$version"); function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = $version"); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $autoloader = getConfig('autoloader', false); $cimageClass = getConfig('cimage_class', false); if ($autoloader) { require $autoloader; } elseif ($cimageClass) { require $cimageClass; } $img = new CImage(); $img->setVerbose($verbose || $verboseFile); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new CCache(); $cache->setDir($cachePath); $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { } elseif ($imagePathConstraint) { $pathToImage = realpath($imagePath . $srcImage); $imageDir = realpath($imagePath); is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a - matching file exists on the filesystem.', 404 ); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( 'Security constraint: Source image is not below the directory "image_path" +} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } $version = "v0.7.9* (2015-12-07)"; define("CIMAGE_USER_AGENT", "CImage/$version"); function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = $version"); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $autoloader = getConfig('autoloader', false); $cimageClass = getConfig('cimage_class', false); if ($autoloader) { require $autoloader; } elseif ($cimageClass) { require $cimageClass; } $img = new CImage(); $img->setVerbose($verbose || $verboseFile); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new CCache(); $cache->setDir($cachePath); $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a + matching file exists on the filesystem.', 404 ); } } if ($imagePathConstraint && !$dummyImage && !$remoteSource) { $imageDir = realpath($imagePath); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( 'Security constraint: Source image is not below the directory "image_path" as specified in the config file img_config.php.', 404 ); } verbose("src = $srcImage"); $sizeConstant = getConfig('size_constant', function () { $sizes = array( 'w1' => 613, 'w2' => 630, ); $gridColumnWidth = 30; $gridGutterWidth = 10; $gridColumns = 24; for ($i = 1; $i <= $gridColumns; $i++) { $sizes['c' . $i] = ($gridColumnWidth + $gridGutterWidth) * $i - $gridGutterWidth; } return $sizes; }); $sizes = call_user_func($sizeConstant); $newWidth = get(array('width', 'w')); $maxWidth = getConfig('max_width', 2000); if (isset($sizes[$newWidth])) { $newWidth = $sizes[$newWidth]; } if ($newWidth[strlen($newWidth)-1] == '%') { is_numeric(substr($newWidth, 0, -1)) or errorPage('Width % not numeric.', 404); } else { is_null($newWidth) or ($newWidth > 10 && $newWidth <= $maxWidth) or errorPage('Width out of range.', 404); } verbose("new width = $newWidth"); $newHeight = get(array('height', 'h')); $maxHeight = getConfig('max_height', 2000); if (isset($sizes[$newHeight])) { $newHeight = $sizes[$newHeight]; } if ($newHeight[strlen($newHeight)-1] == '%') { is_numeric(substr($newHeight, 0, -1)) or errorPage('Height % out of range.', 404); } else { is_null($newHeight) or ($newHeight > 10 && $newHeight <= $maxHeight) or errorPage('Height out of range.', 404); } verbose("new height = $newHeight"); $aspectRatio = get(array('aspect-ratio', 'ar')); $aspectRatioConstant = getConfig('aspect_ratio_constant', function () { return array( '3:1' => 3/1, '3:2' => 3/2, '4:3' => 4/3, '8:5' => 8/5, '16:10' => 16/10, '16:9' => 16/9, 'golden' => 1.618, ); }); $aspectRatios = call_user_func($aspectRatioConstant); $negateAspectRatio = ($aspectRatio[0] == '!') ? true : false; $aspectRatio = $negateAspectRatio ? substr($aspectRatio, 1) : $aspectRatio; if (isset($aspectRatios[$aspectRatio])) { $aspectRatio = $aspectRatios[$aspectRatio]; } if ($negateAspectRatio) { $aspectRatio = 1 / $aspectRatio; } is_null($aspectRatio) or is_numeric($aspectRatio) or errorPage('Aspect ratio out of range', 404); verbose("aspect ratio = $aspectRatio"); $cropToFit = getDefined(array('crop-to-fit', 'cf'), true, false); verbose("crop to fit = $cropToFit"); $backgroundColor = getConfig('background_color', null); if ($backgroundColor) { $img->setDefaultBackgroundColor($backgroundColor); verbose("Using default background_color = $backgroundColor"); } $bgColor = get(array('bgColor', 'bg-color', 'bgc'), null); verbose("bgColor = $bgColor"); $resizeStrategy = getDefined(array('no-resample'), true, false); if ($resizeStrategy) { $img->setCopyResizeStrategy($img::RESIZE); verbose("Setting = Resize instead of resample"); } $fillToFit = get(array('fill-to-fit', 'ff'), null); verbose("fill-to-fit = $fillToFit"); if ($fillToFit !== null) { if (!empty($fillToFit)) { $bgColor = $fillToFit; verbose("fillToFit changed bgColor to = $bgColor"); } $fillToFit = true; verbose("fill-to-fit (fixed) = $fillToFit"); } $keepRatio = getDefined(array('no-ratio', 'nr', 'stretch'), false, true); verbose("keep ratio = $keepRatio"); $crop = get(array('crop', 'c')); verbose("crop = $crop"); $area = get(array('area', 'a')); verbose("area = $area"); $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { verbose("use original is default ON"); $useOriginal = true; } verbose("use original = $useOriginal"); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $quality = get(array('quality', 'q')); $qualityDefault = getConfig('jpg_quality', null); is_null($quality) or ($quality > 0 and $quality <= 100) or errorPage('Quality out of range', 404); if (is_null($quality) && !is_null($qualityDefault)) { $quality = $qualityDefault; } verbose("quality = $quality"); $compress = get(array('compress', 'co')); $compressDefault = getConfig('png_compression', null); is_null($compress) or ($compress > 0 and $compress <= 9) or errorPage('Compress out of range', 404); if (is_null($compress) && !is_null($compressDefault)) { $compress = $compressDefault; } verbose("compress = $compress"); $saveAs = get(array('save-as', 'sa')); verbose("save as = $saveAs"); $scale = get(array('scale', 's')); is_null($scale) or ($scale >= 0 and $scale <= 400) or errorPage('Scale out of range', 404); verbose("scale = $scale"); $palette = getDefined(array('palette', 'p'), true, false); verbose("palette = $palette"); $sharpen = getDefined('sharpen', true, null); verbose("sharpen = $sharpen"); $emboss = getDefined('emboss', true, null); verbose("emboss = $emboss"); $blur = getDefined('blur', true, null); verbose("blur = $blur"); $rotateBefore = get(array('rotateBefore', 'rotate-before', 'rb')); is_null($rotateBefore) or ($rotateBefore >= -360 and $rotateBefore <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateBefore = $rotateBefore"); $rotateAfter = get(array('rotateAfter', 'rotate-after', 'ra', 'rotate', 'r')); is_null($rotateAfter) or ($rotateAfter >= -360 and $rotateAfter <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateAfter = $rotateAfter"); $autoRotate = getDefined(array('autoRotate', 'auto-rotate', 'aro'), true, false); verbose("autoRotate = $autoRotate"); $filters = array(); $filter = get(array('filter', 'f')); if ($filter) { $filters[] = $filter; } for ($i = 0; $i < 10; $i++) { $filter = get(array("filter{$i}", "f{$i}")); if ($filter) { $filters[] = $filter; } } verbose("filters = " . print_r($filters, 1)); $outputFormat = getDefined('json', 'json', null); $outputFormat = getDefined('ascii', 'ascii', $outputFormat); verbose("outputformat = $outputFormat"); if ($outputFormat == 'ascii') { $defaultOptions = getConfig( 'ascii-options', array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ) ); $options = get('ascii'); $options = explode(',', $options); if (isset($options[0]) && !empty($options[0])) { $defaultOptions['characterSet'] = $options[0]; } if (isset($options[1]) && !empty($options[1])) { $defaultOptions['scale'] = $options[1]; } if (isset($options[2]) && !empty($options[2])) { $defaultOptions['luminanceStrategy'] = $options[2]; } if (count($options) > 3) { unset($options[0]); unset($options[1]); unset($options[2]); $characterString = implode($options); $defaultOptions['customCharacterSet'] = $characterString; } $img->setAsciiOptions($defaultOptions); } $dpr = get(array('ppi', 'dpr', 'device-pixel-ratio'), 1); verbose("dpr = $dpr"); $convolve = get('convolve', null); $convolutionConstant = getConfig('convolution_constant', array()); if ($convolve && isset($convolutionConstant)) { $img->addConvolveExpressions($convolutionConstant); verbose("convolve constant = " . print_r($convolutionConstant, 1)); } verbose("convolve = " . print_r($convolve, 1)); $upscale = getDefined(array('no-upscale', 'nu'), false, true); verbose("upscale = $upscale"); $postProcessing = getConfig('postprocessing', array( 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', 'png_deflate' => false, 'png_deflate_cmd' => '/usr/local/bin/pngout -q', 'jpeg_optimize' => false, 'jpeg_optimize_cmd' => '/usr/local/bin/jpegtran -copy none -optimize', )); $alias = get('alias', null); $aliasPath = getConfig('alias_path', null); $validAliasname = getConfig('valid_aliasname', '#^[a-z0-9A-Z-_]+$#'); $aliasTarget = null; if ($alias && $aliasPath && $passwordMatch) { $aliasTarget = $aliasPath . $alias; $useCache = false; is_writable($aliasPath) or errorPage("Directory for alias is not writable.", 403); preg_match($validAliasname, $alias) or errorPage('Filename for alias contains invalid characters. Do not add extension.', 404); } elseif ($alias) { errorPage('Alias is not enabled in the config file or password not matching.', 403); } verbose("alias = $alias"); $cacheControl = getConfig('cache_control', null); if ($cacheControl) { verbose("cacheControl = $cacheControl"); $img->addHTTPHeader("Cache-Control", $cacheControl); } if ($dummyImage === true) { $dummyDir = $cache->getPathToSubdir("dummy"); $img->setSaveFolder($dummyDir) ->setSource($dummyFilename, $dummyDir) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'bgColor' => $bgColor, ) ) ->setJpegQuality($quality) ->setPngCompression($compress) ->createDummyImage() ->generateFilename(null, false) ->save(null, null, false); $srcImage = $img->getTarget(); $imagePath = null; verbose("src (updated) = $srcImage"); } $srgbDefault = getConfig('srgb_default', false); $srgbColorProfile = getConfig('srgb_colorprofile', __DIR__ . '/../icc/sRGB_IEC61966-2-1_black_scaled.icc'); $srgb = getDefined('srgb', true, null); if ($srgb || $srgbDefault) { $filename = $img->convert2sRGBColorSpace( $srcImage, $imagePath, $cache->getPathToSubdir("srgb"), $srgbColorProfile, $useCache ); if ($filename) { $srcImage = $img->getTarget(); $imagePath = null; verbose("srgb conversion and saved to cache = $srcImage"); } else { verbose("srgb not op"); } } if ($status) { $text = "img.php version = $version\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; $res = $cache->getStatusOfSubdir(""); $text .= "Cache $res\n"; $res = $cache->getStatusOfSubdir("remote"); $text .= "Cache remote $res\n"; $res = $cache->getStatusOfSubdir("dummy"); $text .= "Cache dummy $res\n"; $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; $text .= "Extension exif is $no loaded.
"; $no = extension_loaded('curl') ? null : 'NOT'; $text .= "Extension curl is $no loaded.
"; $no = extension_loaded('imagick') ? null : 'NOT'; $text .= "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; if (!$no) { $text .= print_r(gd_info(), 1); } echo << From c5cc0314c2ec4b3844450a14e202fa894b92117b Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Fri, 1 Apr 2016 10:30:25 +0200 Subject: [PATCH 08/50] prepare to tag v0.7.10 --- webroot/img.php | 2 +- webroot/imgd.php | 2 +- webroot/imgp.php | 2 +- webroot/imgs.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/webroot/img.php b/webroot/img.php index dc2faed..9e48c66 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -8,7 +8,7 @@ * */ -$version = "v0.7.9* (2015-12-07)"; +$version = "v0.7.10 (2016-04-01)"; // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/$version"); diff --git a/webroot/imgd.php b/webroot/imgd.php index a95868c..6977c2a 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -3817,7 +3817,7 @@ class CCache * */ -$version = "v0.7.9* (2015-12-07)"; +$version = "v0.7.10 (2016-04-01)"; // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/$version"); diff --git a/webroot/imgp.php b/webroot/imgp.php index c48bdb0..e70e2d6 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -3817,7 +3817,7 @@ class CCache * */ -$version = "v0.7.9* (2015-12-07)"; +$version = "v0.7.10 (2016-04-01)"; // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/$version"); diff --git a/webroot/imgs.php b/webroot/imgs.php index adb72d6..a124050 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -9,7 +9,7 @@

CImage Verbose Output

{$log}
EOD; -} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } $version = "v0.7.9* (2015-12-07)"; define("CIMAGE_USER_AGENT", "CImage/$version"); function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = $version"); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $autoloader = getConfig('autoloader', false); $cimageClass = getConfig('cimage_class', false); if ($autoloader) { require $autoloader; } elseif ($cimageClass) { require $cimageClass; } $img = new CImage(); $img->setVerbose($verbose || $verboseFile); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new CCache(); $cache->setDir($cachePath); $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a +} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } $version = "v0.7.10 (2016-04-01)"; define("CIMAGE_USER_AGENT", "CImage/$version"); function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = $version"); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $autoloader = getConfig('autoloader', false); $cimageClass = getConfig('cimage_class', false); if ($autoloader) { require $autoloader; } elseif ($cimageClass) { require $cimageClass; } $img = new CImage(); $img->setVerbose($verbose || $verboseFile); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new CCache(); $cache->setDir($cachePath); $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a matching file exists on the filesystem.', 404 ); } } if ($imagePathConstraint && !$dummyImage && !$remoteSource) { $imageDir = realpath($imagePath); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( 'Security constraint: Source image is not below the directory "image_path" as specified in the config file img_config.php.', 404 ); } verbose("src = $srcImage"); $sizeConstant = getConfig('size_constant', function () { $sizes = array( 'w1' => 613, 'w2' => 630, ); $gridColumnWidth = 30; $gridGutterWidth = 10; $gridColumns = 24; for ($i = 1; $i <= $gridColumns; $i++) { $sizes['c' . $i] = ($gridColumnWidth + $gridGutterWidth) * $i - $gridGutterWidth; } return $sizes; }); $sizes = call_user_func($sizeConstant); $newWidth = get(array('width', 'w')); $maxWidth = getConfig('max_width', 2000); if (isset($sizes[$newWidth])) { $newWidth = $sizes[$newWidth]; } if ($newWidth[strlen($newWidth)-1] == '%') { is_numeric(substr($newWidth, 0, -1)) or errorPage('Width % not numeric.', 404); } else { is_null($newWidth) or ($newWidth > 10 && $newWidth <= $maxWidth) or errorPage('Width out of range.', 404); } verbose("new width = $newWidth"); $newHeight = get(array('height', 'h')); $maxHeight = getConfig('max_height', 2000); if (isset($sizes[$newHeight])) { $newHeight = $sizes[$newHeight]; } if ($newHeight[strlen($newHeight)-1] == '%') { is_numeric(substr($newHeight, 0, -1)) or errorPage('Height % out of range.', 404); } else { is_null($newHeight) or ($newHeight > 10 && $newHeight <= $maxHeight) or errorPage('Height out of range.', 404); } verbose("new height = $newHeight"); $aspectRatio = get(array('aspect-ratio', 'ar')); $aspectRatioConstant = getConfig('aspect_ratio_constant', function () { return array( '3:1' => 3/1, '3:2' => 3/2, '4:3' => 4/3, '8:5' => 8/5, '16:10' => 16/10, '16:9' => 16/9, 'golden' => 1.618, ); }); $aspectRatios = call_user_func($aspectRatioConstant); $negateAspectRatio = ($aspectRatio[0] == '!') ? true : false; $aspectRatio = $negateAspectRatio ? substr($aspectRatio, 1) : $aspectRatio; if (isset($aspectRatios[$aspectRatio])) { $aspectRatio = $aspectRatios[$aspectRatio]; } if ($negateAspectRatio) { $aspectRatio = 1 / $aspectRatio; } is_null($aspectRatio) or is_numeric($aspectRatio) or errorPage('Aspect ratio out of range', 404); verbose("aspect ratio = $aspectRatio"); $cropToFit = getDefined(array('crop-to-fit', 'cf'), true, false); verbose("crop to fit = $cropToFit"); $backgroundColor = getConfig('background_color', null); if ($backgroundColor) { $img->setDefaultBackgroundColor($backgroundColor); verbose("Using default background_color = $backgroundColor"); } $bgColor = get(array('bgColor', 'bg-color', 'bgc'), null); verbose("bgColor = $bgColor"); $resizeStrategy = getDefined(array('no-resample'), true, false); if ($resizeStrategy) { $img->setCopyResizeStrategy($img::RESIZE); verbose("Setting = Resize instead of resample"); } $fillToFit = get(array('fill-to-fit', 'ff'), null); verbose("fill-to-fit = $fillToFit"); if ($fillToFit !== null) { if (!empty($fillToFit)) { $bgColor = $fillToFit; verbose("fillToFit changed bgColor to = $bgColor"); } $fillToFit = true; verbose("fill-to-fit (fixed) = $fillToFit"); } $keepRatio = getDefined(array('no-ratio', 'nr', 'stretch'), false, true); verbose("keep ratio = $keepRatio"); $crop = get(array('crop', 'c')); verbose("crop = $crop"); $area = get(array('area', 'a')); verbose("area = $area"); $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { verbose("use original is default ON"); $useOriginal = true; } verbose("use original = $useOriginal"); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $quality = get(array('quality', 'q')); $qualityDefault = getConfig('jpg_quality', null); is_null($quality) or ($quality > 0 and $quality <= 100) or errorPage('Quality out of range', 404); if (is_null($quality) && !is_null($qualityDefault)) { $quality = $qualityDefault; } verbose("quality = $quality"); $compress = get(array('compress', 'co')); $compressDefault = getConfig('png_compression', null); is_null($compress) or ($compress > 0 and $compress <= 9) or errorPage('Compress out of range', 404); if (is_null($compress) && !is_null($compressDefault)) { $compress = $compressDefault; } verbose("compress = $compress"); $saveAs = get(array('save-as', 'sa')); verbose("save as = $saveAs"); $scale = get(array('scale', 's')); is_null($scale) or ($scale >= 0 and $scale <= 400) or errorPage('Scale out of range', 404); verbose("scale = $scale"); $palette = getDefined(array('palette', 'p'), true, false); verbose("palette = $palette"); $sharpen = getDefined('sharpen', true, null); verbose("sharpen = $sharpen"); $emboss = getDefined('emboss', true, null); verbose("emboss = $emboss"); $blur = getDefined('blur', true, null); verbose("blur = $blur"); $rotateBefore = get(array('rotateBefore', 'rotate-before', 'rb')); is_null($rotateBefore) or ($rotateBefore >= -360 and $rotateBefore <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateBefore = $rotateBefore"); $rotateAfter = get(array('rotateAfter', 'rotate-after', 'ra', 'rotate', 'r')); is_null($rotateAfter) or ($rotateAfter >= -360 and $rotateAfter <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateAfter = $rotateAfter"); $autoRotate = getDefined(array('autoRotate', 'auto-rotate', 'aro'), true, false); verbose("autoRotate = $autoRotate"); $filters = array(); $filter = get(array('filter', 'f')); if ($filter) { $filters[] = $filter; } for ($i = 0; $i < 10; $i++) { $filter = get(array("filter{$i}", "f{$i}")); if ($filter) { $filters[] = $filter; } } verbose("filters = " . print_r($filters, 1)); $outputFormat = getDefined('json', 'json', null); $outputFormat = getDefined('ascii', 'ascii', $outputFormat); verbose("outputformat = $outputFormat"); if ($outputFormat == 'ascii') { $defaultOptions = getConfig( 'ascii-options', array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ) ); $options = get('ascii'); $options = explode(',', $options); if (isset($options[0]) && !empty($options[0])) { $defaultOptions['characterSet'] = $options[0]; } if (isset($options[1]) && !empty($options[1])) { $defaultOptions['scale'] = $options[1]; } if (isset($options[2]) && !empty($options[2])) { $defaultOptions['luminanceStrategy'] = $options[2]; } if (count($options) > 3) { unset($options[0]); unset($options[1]); unset($options[2]); $characterString = implode($options); $defaultOptions['customCharacterSet'] = $characterString; } $img->setAsciiOptions($defaultOptions); } $dpr = get(array('ppi', 'dpr', 'device-pixel-ratio'), 1); verbose("dpr = $dpr"); $convolve = get('convolve', null); $convolutionConstant = getConfig('convolution_constant', array()); if ($convolve && isset($convolutionConstant)) { $img->addConvolveExpressions($convolutionConstant); verbose("convolve constant = " . print_r($convolutionConstant, 1)); } verbose("convolve = " . print_r($convolve, 1)); $upscale = getDefined(array('no-upscale', 'nu'), false, true); verbose("upscale = $upscale"); $postProcessing = getConfig('postprocessing', array( 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', 'png_deflate' => false, 'png_deflate_cmd' => '/usr/local/bin/pngout -q', 'jpeg_optimize' => false, 'jpeg_optimize_cmd' => '/usr/local/bin/jpegtran -copy none -optimize', )); $alias = get('alias', null); $aliasPath = getConfig('alias_path', null); $validAliasname = getConfig('valid_aliasname', '#^[a-z0-9A-Z-_]+$#'); $aliasTarget = null; if ($alias && $aliasPath && $passwordMatch) { $aliasTarget = $aliasPath . $alias; $useCache = false; is_writable($aliasPath) or errorPage("Directory for alias is not writable.", 403); preg_match($validAliasname, $alias) or errorPage('Filename for alias contains invalid characters. Do not add extension.', 404); } elseif ($alias) { errorPage('Alias is not enabled in the config file or password not matching.', 403); } verbose("alias = $alias"); $cacheControl = getConfig('cache_control', null); if ($cacheControl) { verbose("cacheControl = $cacheControl"); $img->addHTTPHeader("Cache-Control", $cacheControl); } if ($dummyImage === true) { $dummyDir = $cache->getPathToSubdir("dummy"); $img->setSaveFolder($dummyDir) ->setSource($dummyFilename, $dummyDir) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'bgColor' => $bgColor, ) ) ->setJpegQuality($quality) ->setPngCompression($compress) ->createDummyImage() ->generateFilename(null, false) ->save(null, null, false); $srcImage = $img->getTarget(); $imagePath = null; verbose("src (updated) = $srcImage"); } $srgbDefault = getConfig('srgb_default', false); $srgbColorProfile = getConfig('srgb_colorprofile', __DIR__ . '/../icc/sRGB_IEC61966-2-1_black_scaled.icc'); $srgb = getDefined('srgb', true, null); if ($srgb || $srgbDefault) { $filename = $img->convert2sRGBColorSpace( $srcImage, $imagePath, $cache->getPathToSubdir("srgb"), $srgbColorProfile, $useCache ); if ($filename) { $srcImage = $img->getTarget(); $imagePath = null; verbose("srgb conversion and saved to cache = $srcImage"); } else { verbose("srgb not op"); } } if ($status) { $text = "img.php version = $version\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; $res = $cache->getStatusOfSubdir(""); $text .= "Cache $res\n"; $res = $cache->getStatusOfSubdir("remote"); $text .= "Cache remote $res\n"; $res = $cache->getStatusOfSubdir("dummy"); $text .= "Cache dummy $res\n"; $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; $text .= "Extension exif is $no loaded.
"; $no = extension_loaded('curl') ? null : 'NOT'; $text .= "Extension curl is $no loaded.
"; $no = extension_loaded('imagick') ? null : 'NOT'; $text .= "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; if (!$no) { $text .= print_r(gd_info(), 1); } echo << From 5eebaa66ce6aa9e7aa78762ec5082b59e08fad37 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Fri, 1 Apr 2016 10:32:44 +0200 Subject: [PATCH 09/50] update to latest version --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 23c3b01..da2b357 100644 --- a/README.md +++ b/README.md @@ -46,14 +46,14 @@ There are several ways of installing. You either install the whole project which The [sourcode is available on GitHub](https://github.com/mosbth/cimage). Clone, fork or [download as zip](https://github.com/mosbth/cimage/archive/master.zip). -**Latest stable version is v0.7.9 released 2015-12-07.** +**Latest stable version is v0.7.10 released 2016-04-01.** I prefer cloning like this. Do switch to the latest stable version. ```bash git clone git://github.com/mosbth/cimage.git cd cimage -git checkout v0.7.9 +git checkout v0.7.10 ``` Make the cache-directory writable by the webserver. @@ -76,7 +76,7 @@ There are some all-included bundles of `img.php` that can be downloaded and used Dowload the version of your choice like this. ```bash -wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.9/webroot/imgp.php +wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.10/webroot/imgp.php ``` Open up the file in your editor and edit the array `$config`. Ensure that the paths to the image directory and the cache directory matches your environment, or create an own config-file for the script. From 1943d6606bda324ba6c79ee58d81d5a153b5201a Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Fri, 1 Apr 2016 11:25:36 +0200 Subject: [PATCH 10/50] update years in license --- LICENSE.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index 1549d2c..021ad2a 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2012 - 2014 Mikael Roos, me@mikaelroos.se +Copyright (c) 2012 - 2016 Mikael Roos, https://mikaelroos.se, mos@dbwebb.se Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file +THE SOFTWARE. From 4e940164f942e75b3cfd08295d0d6b311173d754 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 18 Apr 2016 15:53:55 +0200 Subject: [PATCH 11/50] Add option for skip_original to config file to always skip original, #118. --- REVISION.md | 6 ++++++ webroot/img.php | 6 +++--- webroot/img_config.php | 25 +++++++++++++++++++++++-- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/REVISION.md b/REVISION.md index 4025c1b..5b41d5e 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,6 +5,12 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) +v0.7.11 (2016-04-18) +------------------------------------- + +* Add option for `skip_original` to config file to always skip original, #118. + + v0.7.10 (2016-04-01) ------------------------------------- diff --git a/webroot/img.php b/webroot/img.php index 9e48c66..747e352 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -8,7 +8,7 @@ * */ -$version = "v0.7.10 (2016-04-01)"; +$version = "v0.7.11 (2016-04-18)"; // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/$version"); @@ -699,8 +699,8 @@ $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { - verbose("use original is default ON"); - $useOriginal = true; + verbose("skip original is default ON"); + $useOriginal = false; } verbose("use original = $useOriginal"); diff --git a/webroot/img_config.php b/webroot/img_config.php index 4ca4e69..5eb59a0 100644 --- a/webroot/img_config.php +++ b/webroot/img_config.php @@ -10,6 +10,15 @@ return array( /** * Set mode as 'strict', 'production' or 'development'. * + * development: Development mode with verbose error reporting. Option + * &verbose and &status enabled. + * production: Production mode logs all errors to file, giving server + * error 500 for bad usage. Option &verbose and &status + * disabled. + * strict: Strict mode logs few errors to file, giving server error + * 500 for bad usage. Stripped from comments and spaces. + * Option &verbose and &status disabled. + * * Default values: * mode: 'production' */ @@ -20,7 +29,7 @@ return array( /** - * Where are the sources for the classfiles. + * Where are the sources for the class files. * * Default values: * autoloader: null // used from v0.6.2 @@ -153,6 +162,18 @@ return array( + /** + * Set skip-original to true to always process the image and use + * the cached version. Default is false and to use the original + * image when its no processing needed. + * + * Default value: + * skip_original: false + */ + //'skip_original' => true, + + + /** * A function (hook) can be called after img.php has processed all * configuration options and before processing the image using CImage. @@ -394,7 +415,7 @@ return array( /** - * default options for ascii image. + * Default options for ascii image. * * Default values as specified below in the array. * ascii-options: From 3b16b4b79d93e49d2f55abe0d4c32ad2b4b5abf8 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 18 Apr 2016 15:58:39 +0200 Subject: [PATCH 12/50] prepare to tag v0.7.11 --- webroot/imgd.php | 6 +++--- webroot/imgp.php | 6 +++--- webroot/imgs.php | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/webroot/imgd.php b/webroot/imgd.php index 6977c2a..4ae806b 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -3817,7 +3817,7 @@ class CCache * */ -$version = "v0.7.10 (2016-04-01)"; +$version = "v0.7.11 (2016-04-18)"; // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/$version"); @@ -4508,8 +4508,8 @@ $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { - verbose("use original is default ON"); - $useOriginal = true; + verbose("skip original is default ON"); + $useOriginal = false; } verbose("use original = $useOriginal"); diff --git a/webroot/imgp.php b/webroot/imgp.php index e70e2d6..e252e42 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -3817,7 +3817,7 @@ class CCache * */ -$version = "v0.7.10 (2016-04-01)"; +$version = "v0.7.11 (2016-04-18)"; // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/$version"); @@ -4508,8 +4508,8 @@ $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { - verbose("use original is default ON"); - $useOriginal = true; + verbose("skip original is default ON"); + $useOriginal = false; } verbose("use original = $useOriginal"); diff --git a/webroot/imgs.php b/webroot/imgs.php index a124050..9a8cee6 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -9,9 +9,9 @@

CImage Verbose Output

{$log}
EOD; -} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } $version = "v0.7.10 (2016-04-01)"; define("CIMAGE_USER_AGENT", "CImage/$version"); function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = $version"); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $autoloader = getConfig('autoloader', false); $cimageClass = getConfig('cimage_class', false); if ($autoloader) { require $autoloader; } elseif ($cimageClass) { require $cimageClass; } $img = new CImage(); $img->setVerbose($verbose || $verboseFile); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new CCache(); $cache->setDir($cachePath); $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a +} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } $version = "v0.7.11 (2016-04-18)"; define("CIMAGE_USER_AGENT", "CImage/$version"); function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = $version"); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $autoloader = getConfig('autoloader', false); $cimageClass = getConfig('cimage_class', false); if ($autoloader) { require $autoloader; } elseif ($cimageClass) { require $cimageClass; } $img = new CImage(); $img->setVerbose($verbose || $verboseFile); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new CCache(); $cache->setDir($cachePath); $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a matching file exists on the filesystem.', 404 ); } } if ($imagePathConstraint && !$dummyImage && !$remoteSource) { $imageDir = realpath($imagePath); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( 'Security constraint: Source image is not below the directory "image_path" - as specified in the config file img_config.php.', 404 ); } verbose("src = $srcImage"); $sizeConstant = getConfig('size_constant', function () { $sizes = array( 'w1' => 613, 'w2' => 630, ); $gridColumnWidth = 30; $gridGutterWidth = 10; $gridColumns = 24; for ($i = 1; $i <= $gridColumns; $i++) { $sizes['c' . $i] = ($gridColumnWidth + $gridGutterWidth) * $i - $gridGutterWidth; } return $sizes; }); $sizes = call_user_func($sizeConstant); $newWidth = get(array('width', 'w')); $maxWidth = getConfig('max_width', 2000); if (isset($sizes[$newWidth])) { $newWidth = $sizes[$newWidth]; } if ($newWidth[strlen($newWidth)-1] == '%') { is_numeric(substr($newWidth, 0, -1)) or errorPage('Width % not numeric.', 404); } else { is_null($newWidth) or ($newWidth > 10 && $newWidth <= $maxWidth) or errorPage('Width out of range.', 404); } verbose("new width = $newWidth"); $newHeight = get(array('height', 'h')); $maxHeight = getConfig('max_height', 2000); if (isset($sizes[$newHeight])) { $newHeight = $sizes[$newHeight]; } if ($newHeight[strlen($newHeight)-1] == '%') { is_numeric(substr($newHeight, 0, -1)) or errorPage('Height % out of range.', 404); } else { is_null($newHeight) or ($newHeight > 10 && $newHeight <= $maxHeight) or errorPage('Height out of range.', 404); } verbose("new height = $newHeight"); $aspectRatio = get(array('aspect-ratio', 'ar')); $aspectRatioConstant = getConfig('aspect_ratio_constant', function () { return array( '3:1' => 3/1, '3:2' => 3/2, '4:3' => 4/3, '8:5' => 8/5, '16:10' => 16/10, '16:9' => 16/9, 'golden' => 1.618, ); }); $aspectRatios = call_user_func($aspectRatioConstant); $negateAspectRatio = ($aspectRatio[0] == '!') ? true : false; $aspectRatio = $negateAspectRatio ? substr($aspectRatio, 1) : $aspectRatio; if (isset($aspectRatios[$aspectRatio])) { $aspectRatio = $aspectRatios[$aspectRatio]; } if ($negateAspectRatio) { $aspectRatio = 1 / $aspectRatio; } is_null($aspectRatio) or is_numeric($aspectRatio) or errorPage('Aspect ratio out of range', 404); verbose("aspect ratio = $aspectRatio"); $cropToFit = getDefined(array('crop-to-fit', 'cf'), true, false); verbose("crop to fit = $cropToFit"); $backgroundColor = getConfig('background_color', null); if ($backgroundColor) { $img->setDefaultBackgroundColor($backgroundColor); verbose("Using default background_color = $backgroundColor"); } $bgColor = get(array('bgColor', 'bg-color', 'bgc'), null); verbose("bgColor = $bgColor"); $resizeStrategy = getDefined(array('no-resample'), true, false); if ($resizeStrategy) { $img->setCopyResizeStrategy($img::RESIZE); verbose("Setting = Resize instead of resample"); } $fillToFit = get(array('fill-to-fit', 'ff'), null); verbose("fill-to-fit = $fillToFit"); if ($fillToFit !== null) { if (!empty($fillToFit)) { $bgColor = $fillToFit; verbose("fillToFit changed bgColor to = $bgColor"); } $fillToFit = true; verbose("fill-to-fit (fixed) = $fillToFit"); } $keepRatio = getDefined(array('no-ratio', 'nr', 'stretch'), false, true); verbose("keep ratio = $keepRatio"); $crop = get(array('crop', 'c')); verbose("crop = $crop"); $area = get(array('area', 'a')); verbose("area = $area"); $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { verbose("use original is default ON"); $useOriginal = true; } verbose("use original = $useOriginal"); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $quality = get(array('quality', 'q')); $qualityDefault = getConfig('jpg_quality', null); is_null($quality) or ($quality > 0 and $quality <= 100) or errorPage('Quality out of range', 404); if (is_null($quality) && !is_null($qualityDefault)) { $quality = $qualityDefault; } verbose("quality = $quality"); $compress = get(array('compress', 'co')); $compressDefault = getConfig('png_compression', null); is_null($compress) or ($compress > 0 and $compress <= 9) or errorPage('Compress out of range', 404); if (is_null($compress) && !is_null($compressDefault)) { $compress = $compressDefault; } verbose("compress = $compress"); $saveAs = get(array('save-as', 'sa')); verbose("save as = $saveAs"); $scale = get(array('scale', 's')); is_null($scale) or ($scale >= 0 and $scale <= 400) or errorPage('Scale out of range', 404); verbose("scale = $scale"); $palette = getDefined(array('palette', 'p'), true, false); verbose("palette = $palette"); $sharpen = getDefined('sharpen', true, null); verbose("sharpen = $sharpen"); $emboss = getDefined('emboss', true, null); verbose("emboss = $emboss"); $blur = getDefined('blur', true, null); verbose("blur = $blur"); $rotateBefore = get(array('rotateBefore', 'rotate-before', 'rb')); is_null($rotateBefore) or ($rotateBefore >= -360 and $rotateBefore <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateBefore = $rotateBefore"); $rotateAfter = get(array('rotateAfter', 'rotate-after', 'ra', 'rotate', 'r')); is_null($rotateAfter) or ($rotateAfter >= -360 and $rotateAfter <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateAfter = $rotateAfter"); $autoRotate = getDefined(array('autoRotate', 'auto-rotate', 'aro'), true, false); verbose("autoRotate = $autoRotate"); $filters = array(); $filter = get(array('filter', 'f')); if ($filter) { $filters[] = $filter; } for ($i = 0; $i < 10; $i++) { $filter = get(array("filter{$i}", "f{$i}")); if ($filter) { $filters[] = $filter; } } verbose("filters = " . print_r($filters, 1)); $outputFormat = getDefined('json', 'json', null); $outputFormat = getDefined('ascii', 'ascii', $outputFormat); verbose("outputformat = $outputFormat"); if ($outputFormat == 'ascii') { $defaultOptions = getConfig( 'ascii-options', array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ) ); $options = get('ascii'); $options = explode(',', $options); if (isset($options[0]) && !empty($options[0])) { $defaultOptions['characterSet'] = $options[0]; } if (isset($options[1]) && !empty($options[1])) { $defaultOptions['scale'] = $options[1]; } if (isset($options[2]) && !empty($options[2])) { $defaultOptions['luminanceStrategy'] = $options[2]; } if (count($options) > 3) { unset($options[0]); unset($options[1]); unset($options[2]); $characterString = implode($options); $defaultOptions['customCharacterSet'] = $characterString; } $img->setAsciiOptions($defaultOptions); } $dpr = get(array('ppi', 'dpr', 'device-pixel-ratio'), 1); verbose("dpr = $dpr"); $convolve = get('convolve', null); $convolutionConstant = getConfig('convolution_constant', array()); if ($convolve && isset($convolutionConstant)) { $img->addConvolveExpressions($convolutionConstant); verbose("convolve constant = " . print_r($convolutionConstant, 1)); } verbose("convolve = " . print_r($convolve, 1)); $upscale = getDefined(array('no-upscale', 'nu'), false, true); verbose("upscale = $upscale"); $postProcessing = getConfig('postprocessing', array( 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', 'png_deflate' => false, 'png_deflate_cmd' => '/usr/local/bin/pngout -q', 'jpeg_optimize' => false, 'jpeg_optimize_cmd' => '/usr/local/bin/jpegtran -copy none -optimize', )); $alias = get('alias', null); $aliasPath = getConfig('alias_path', null); $validAliasname = getConfig('valid_aliasname', '#^[a-z0-9A-Z-_]+$#'); $aliasTarget = null; if ($alias && $aliasPath && $passwordMatch) { $aliasTarget = $aliasPath . $alias; $useCache = false; is_writable($aliasPath) or errorPage("Directory for alias is not writable.", 403); preg_match($validAliasname, $alias) or errorPage('Filename for alias contains invalid characters. Do not add extension.', 404); } elseif ($alias) { errorPage('Alias is not enabled in the config file or password not matching.', 403); } verbose("alias = $alias"); $cacheControl = getConfig('cache_control', null); if ($cacheControl) { verbose("cacheControl = $cacheControl"); $img->addHTTPHeader("Cache-Control", $cacheControl); } if ($dummyImage === true) { $dummyDir = $cache->getPathToSubdir("dummy"); $img->setSaveFolder($dummyDir) ->setSource($dummyFilename, $dummyDir) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'bgColor' => $bgColor, ) ) ->setJpegQuality($quality) ->setPngCompression($compress) ->createDummyImage() ->generateFilename(null, false) ->save(null, null, false); $srcImage = $img->getTarget(); $imagePath = null; verbose("src (updated) = $srcImage"); } $srgbDefault = getConfig('srgb_default', false); $srgbColorProfile = getConfig('srgb_colorprofile', __DIR__ . '/../icc/sRGB_IEC61966-2-1_black_scaled.icc'); $srgb = getDefined('srgb', true, null); if ($srgb || $srgbDefault) { $filename = $img->convert2sRGBColorSpace( $srcImage, $imagePath, $cache->getPathToSubdir("srgb"), $srgbColorProfile, $useCache ); if ($filename) { $srcImage = $img->getTarget(); $imagePath = null; verbose("srgb conversion and saved to cache = $srcImage"); } else { verbose("srgb not op"); } } if ($status) { $text = "img.php version = $version\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; $res = $cache->getStatusOfSubdir(""); $text .= "Cache $res\n"; $res = $cache->getStatusOfSubdir("remote"); $text .= "Cache remote $res\n"; $res = $cache->getStatusOfSubdir("dummy"); $text .= "Cache dummy $res\n"; $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; $text .= "Extension exif is $no loaded.
"; $no = extension_loaded('curl') ? null : 'NOT'; $text .= "Extension curl is $no loaded.
"; $no = extension_loaded('imagick') ? null : 'NOT'; $text .= "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; if (!$no) { $text .= print_r(gd_info(), 1); } echo << 613, 'w2' => 630, ); $gridColumnWidth = 30; $gridGutterWidth = 10; $gridColumns = 24; for ($i = 1; $i <= $gridColumns; $i++) { $sizes['c' . $i] = ($gridColumnWidth + $gridGutterWidth) * $i - $gridGutterWidth; } return $sizes; }); $sizes = call_user_func($sizeConstant); $newWidth = get(array('width', 'w')); $maxWidth = getConfig('max_width', 2000); if (isset($sizes[$newWidth])) { $newWidth = $sizes[$newWidth]; } if ($newWidth[strlen($newWidth)-1] == '%') { is_numeric(substr($newWidth, 0, -1)) or errorPage('Width % not numeric.', 404); } else { is_null($newWidth) or ($newWidth > 10 && $newWidth <= $maxWidth) or errorPage('Width out of range.', 404); } verbose("new width = $newWidth"); $newHeight = get(array('height', 'h')); $maxHeight = getConfig('max_height', 2000); if (isset($sizes[$newHeight])) { $newHeight = $sizes[$newHeight]; } if ($newHeight[strlen($newHeight)-1] == '%') { is_numeric(substr($newHeight, 0, -1)) or errorPage('Height % out of range.', 404); } else { is_null($newHeight) or ($newHeight > 10 && $newHeight <= $maxHeight) or errorPage('Height out of range.', 404); } verbose("new height = $newHeight"); $aspectRatio = get(array('aspect-ratio', 'ar')); $aspectRatioConstant = getConfig('aspect_ratio_constant', function () { return array( '3:1' => 3/1, '3:2' => 3/2, '4:3' => 4/3, '8:5' => 8/5, '16:10' => 16/10, '16:9' => 16/9, 'golden' => 1.618, ); }); $aspectRatios = call_user_func($aspectRatioConstant); $negateAspectRatio = ($aspectRatio[0] == '!') ? true : false; $aspectRatio = $negateAspectRatio ? substr($aspectRatio, 1) : $aspectRatio; if (isset($aspectRatios[$aspectRatio])) { $aspectRatio = $aspectRatios[$aspectRatio]; } if ($negateAspectRatio) { $aspectRatio = 1 / $aspectRatio; } is_null($aspectRatio) or is_numeric($aspectRatio) or errorPage('Aspect ratio out of range', 404); verbose("aspect ratio = $aspectRatio"); $cropToFit = getDefined(array('crop-to-fit', 'cf'), true, false); verbose("crop to fit = $cropToFit"); $backgroundColor = getConfig('background_color', null); if ($backgroundColor) { $img->setDefaultBackgroundColor($backgroundColor); verbose("Using default background_color = $backgroundColor"); } $bgColor = get(array('bgColor', 'bg-color', 'bgc'), null); verbose("bgColor = $bgColor"); $resizeStrategy = getDefined(array('no-resample'), true, false); if ($resizeStrategy) { $img->setCopyResizeStrategy($img::RESIZE); verbose("Setting = Resize instead of resample"); } $fillToFit = get(array('fill-to-fit', 'ff'), null); verbose("fill-to-fit = $fillToFit"); if ($fillToFit !== null) { if (!empty($fillToFit)) { $bgColor = $fillToFit; verbose("fillToFit changed bgColor to = $bgColor"); } $fillToFit = true; verbose("fill-to-fit (fixed) = $fillToFit"); } $keepRatio = getDefined(array('no-ratio', 'nr', 'stretch'), false, true); verbose("keep ratio = $keepRatio"); $crop = get(array('crop', 'c')); verbose("crop = $crop"); $area = get(array('area', 'a')); verbose("area = $area"); $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { verbose("skip original is default ON"); $useOriginal = false; } verbose("use original = $useOriginal"); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $quality = get(array('quality', 'q')); $qualityDefault = getConfig('jpg_quality', null); is_null($quality) or ($quality > 0 and $quality <= 100) or errorPage('Quality out of range', 404); if (is_null($quality) && !is_null($qualityDefault)) { $quality = $qualityDefault; } verbose("quality = $quality"); $compress = get(array('compress', 'co')); $compressDefault = getConfig('png_compression', null); is_null($compress) or ($compress > 0 and $compress <= 9) or errorPage('Compress out of range', 404); if (is_null($compress) && !is_null($compressDefault)) { $compress = $compressDefault; } verbose("compress = $compress"); $saveAs = get(array('save-as', 'sa')); verbose("save as = $saveAs"); $scale = get(array('scale', 's')); is_null($scale) or ($scale >= 0 and $scale <= 400) or errorPage('Scale out of range', 404); verbose("scale = $scale"); $palette = getDefined(array('palette', 'p'), true, false); verbose("palette = $palette"); $sharpen = getDefined('sharpen', true, null); verbose("sharpen = $sharpen"); $emboss = getDefined('emboss', true, null); verbose("emboss = $emboss"); $blur = getDefined('blur', true, null); verbose("blur = $blur"); $rotateBefore = get(array('rotateBefore', 'rotate-before', 'rb')); is_null($rotateBefore) or ($rotateBefore >= -360 and $rotateBefore <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateBefore = $rotateBefore"); $rotateAfter = get(array('rotateAfter', 'rotate-after', 'ra', 'rotate', 'r')); is_null($rotateAfter) or ($rotateAfter >= -360 and $rotateAfter <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateAfter = $rotateAfter"); $autoRotate = getDefined(array('autoRotate', 'auto-rotate', 'aro'), true, false); verbose("autoRotate = $autoRotate"); $filters = array(); $filter = get(array('filter', 'f')); if ($filter) { $filters[] = $filter; } for ($i = 0; $i < 10; $i++) { $filter = get(array("filter{$i}", "f{$i}")); if ($filter) { $filters[] = $filter; } } verbose("filters = " . print_r($filters, 1)); $outputFormat = getDefined('json', 'json', null); $outputFormat = getDefined('ascii', 'ascii', $outputFormat); verbose("outputformat = $outputFormat"); if ($outputFormat == 'ascii') { $defaultOptions = getConfig( 'ascii-options', array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ) ); $options = get('ascii'); $options = explode(',', $options); if (isset($options[0]) && !empty($options[0])) { $defaultOptions['characterSet'] = $options[0]; } if (isset($options[1]) && !empty($options[1])) { $defaultOptions['scale'] = $options[1]; } if (isset($options[2]) && !empty($options[2])) { $defaultOptions['luminanceStrategy'] = $options[2]; } if (count($options) > 3) { unset($options[0]); unset($options[1]); unset($options[2]); $characterString = implode($options); $defaultOptions['customCharacterSet'] = $characterString; } $img->setAsciiOptions($defaultOptions); } $dpr = get(array('ppi', 'dpr', 'device-pixel-ratio'), 1); verbose("dpr = $dpr"); $convolve = get('convolve', null); $convolutionConstant = getConfig('convolution_constant', array()); if ($convolve && isset($convolutionConstant)) { $img->addConvolveExpressions($convolutionConstant); verbose("convolve constant = " . print_r($convolutionConstant, 1)); } verbose("convolve = " . print_r($convolve, 1)); $upscale = getDefined(array('no-upscale', 'nu'), false, true); verbose("upscale = $upscale"); $postProcessing = getConfig('postprocessing', array( 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', 'png_deflate' => false, 'png_deflate_cmd' => '/usr/local/bin/pngout -q', 'jpeg_optimize' => false, 'jpeg_optimize_cmd' => '/usr/local/bin/jpegtran -copy none -optimize', )); $alias = get('alias', null); $aliasPath = getConfig('alias_path', null); $validAliasname = getConfig('valid_aliasname', '#^[a-z0-9A-Z-_]+$#'); $aliasTarget = null; if ($alias && $aliasPath && $passwordMatch) { $aliasTarget = $aliasPath . $alias; $useCache = false; is_writable($aliasPath) or errorPage("Directory for alias is not writable.", 403); preg_match($validAliasname, $alias) or errorPage('Filename for alias contains invalid characters. Do not add extension.', 404); } elseif ($alias) { errorPage('Alias is not enabled in the config file or password not matching.', 403); } verbose("alias = $alias"); $cacheControl = getConfig('cache_control', null); if ($cacheControl) { verbose("cacheControl = $cacheControl"); $img->addHTTPHeader("Cache-Control", $cacheControl); } if ($dummyImage === true) { $dummyDir = $cache->getPathToSubdir("dummy"); $img->setSaveFolder($dummyDir) ->setSource($dummyFilename, $dummyDir) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'bgColor' => $bgColor, ) ) ->setJpegQuality($quality) ->setPngCompression($compress) ->createDummyImage() ->generateFilename(null, false) ->save(null, null, false); $srcImage = $img->getTarget(); $imagePath = null; verbose("src (updated) = $srcImage"); } $srgbDefault = getConfig('srgb_default', false); $srgbColorProfile = getConfig('srgb_colorprofile', __DIR__ . '/../icc/sRGB_IEC61966-2-1_black_scaled.icc'); $srgb = getDefined('srgb', true, null); if ($srgb || $srgbDefault) { $filename = $img->convert2sRGBColorSpace( $srcImage, $imagePath, $cache->getPathToSubdir("srgb"), $srgbColorProfile, $useCache ); if ($filename) { $srcImage = $img->getTarget(); $imagePath = null; verbose("srgb conversion and saved to cache = $srcImage"); } else { verbose("srgb not op"); } } if ($status) { $text = "img.php version = $version\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; $res = $cache->getStatusOfSubdir(""); $text .= "Cache $res\n"; $res = $cache->getStatusOfSubdir("remote"); $text .= "Cache remote $res\n"; $res = $cache->getStatusOfSubdir("dummy"); $text .= "Cache dummy $res\n"; $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; $text .= "Extension exif is $no loaded.
"; $no = extension_loaded('curl') ? null : 'NOT'; $text .= "Extension curl is $no loaded.
"; $no = extension_loaded('imagick') ? null : 'NOT'; $text .= "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; if (!$no) { $text .= print_r(gd_info(), 1); } echo << From 8ad324b4f5665f675379f0ee6e683876c31ba5cb Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 18 Apr 2016 16:09:49 +0200 Subject: [PATCH 13/50] update readme with latest version number --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index da2b357..3392cee 100644 --- a/README.md +++ b/README.md @@ -46,14 +46,14 @@ There are several ways of installing. You either install the whole project which The [sourcode is available on GitHub](https://github.com/mosbth/cimage). Clone, fork or [download as zip](https://github.com/mosbth/cimage/archive/master.zip). -**Latest stable version is v0.7.10 released 2016-04-01.** +**Latest stable version is v0.7.11 released 2016-04-18.** I prefer cloning like this. Do switch to the latest stable version. ```bash git clone git://github.com/mosbth/cimage.git cd cimage -git checkout v0.7.10 +git checkout v0.7.11 ``` Make the cache-directory writable by the webserver. @@ -76,7 +76,7 @@ There are some all-included bundles of `img.php` that can be downloaded and used Dowload the version of your choice like this. ```bash -wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.10/webroot/imgp.php +wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.11/webroot/imgp.php ``` Open up the file in your editor and edit the array `$config`. Ensure that the paths to the image directory and the cache directory matches your environment, or create an own config-file for the script. From 9088647d3a7e4ad5edabcada7c314673dcd69d06 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Wed, 1 Jun 2016 09:30:18 +0200 Subject: [PATCH 14/50] Fixed background color for option , #144. --- CImage.php | 39 ++++++++++++++++++------ REVISION.md | 6 ++++ webroot/img/apple.jpg | Bin 0 -> 16822 bytes webroot/img_config.php | 2 +- webroot/test/test_option-no-upscale.php | 27 +++++++++------- 5 files changed, 53 insertions(+), 21 deletions(-) create mode 100644 webroot/img/apple.jpg diff --git a/CImage.php b/CImage.php index 604bc76..c7a233b 100644 --- a/CImage.php +++ b/CImage.php @@ -1099,6 +1099,7 @@ class CImage $this->log("New height was set."); } + // Get image dimensions for pre-resize image. if ($this->cropToFit || $this->fillToFit) { @@ -1696,25 +1697,45 @@ class CImage // Resize by crop to fit $this->log("Resizing using strategy - Crop to fit"); - if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { + if (!$this->upscale + && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); - $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); - $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); + //$cropX = round(($this->cropWidth/2) - ($this->width/2)); + //$cropY = round(($this->cropHeight/2) - ($this->height/2)); $posX = 0; $posY = 0; + $cropX = 0; + $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } + if ($this->newWidth < $this->width) { + $cropX = round(($this->width/2) - ($this->newWidth/2)); + } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } + if ($this->newHeight < $this->height) { + $cropY = round(($this->height/2) - ($this->newHeight/2)); + } + $this->log(" cwidth: $this->cropWidth"); + $this->log(" cheight: $this->cropHeight"); + $this->log(" nwidth: $this->newWidth"); + $this->log(" nheight: $this->newHeight"); + $this->log(" width: $this->width"); + $this->log(" height: $this->height"); + $this->log(" posX: $posX"); + $this->log(" posY: $posY"); + $this->log(" cropX: $cropX"); + $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->newWidth, $this->newHeight); + //imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); + imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); @@ -1747,14 +1768,14 @@ class CImage } if (!$this->upscale - && ($this->width < $this->newWidth || $this->height < $this->newHeight) + && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); - $posX = round(($this->fillWidth - $this->width) / 2); - $posY = round(($this->fillHeight - $this->height) / 2); + $posX = round(($this->newWidth - $this->width) / 2); + $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); + imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); @@ -1798,7 +1819,7 @@ class CImage //$this->log("posX=$posX, posY=$posY, cropX=$cropX, cropY=$cropY."); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->newWidth, $this->newHeight); + imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; diff --git a/REVISION.md b/REVISION.md index 5b41d5e..76aaabd 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,6 +5,12 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) +v0.7.12 (2016-05-31) +------------------------------------- + +* Fixed background color for option `no-upscale`, #144. + + v0.7.11 (2016-04-18) ------------------------------------- diff --git a/webroot/img/apple.jpg b/webroot/img/apple.jpg new file mode 100644 index 0000000000000000000000000000000000000000..efdf81012043e6ff41896c0c97181be79ac30287 GIT binary patch literal 16822 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

$epzZ-Vl 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%0AXll`jXWVC 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 'production', - //'mode' => 'development', + 'mode' => 'development', //'mode' => 'strict', diff --git a/webroot/test/test_option-no-upscale.php b/webroot/test/test_option-no-upscale.php index e355cff..897ad73 100644 --- a/webroot/test/test_option-no-upscale.php +++ b/webroot/test/test_option-no-upscale.php @@ -17,12 +17,13 @@ $description = "Do not upscale image when original image (slice) is smaller than // Use these images in the test $images = array( 'car.png', + 'apple.jpg', ); // For each image, apply these testcases -$nc = null; //"&nc"; //null; //&nc'; +$nc = "&bgc=660000"; //null; //"&nc"; //null; //&nc'; $testcase = array( $nc . '&w=600', $nc . '&w=600&no-upscale', @@ -34,16 +35,20 @@ $testcase = array( $nc . '&w=700&h=400&no-upscale&stretch', $nc . '&w=700&h=200&stretch', $nc . '&w=700&h=200&no-upscale&stretch', - $nc . '&w=300&h=400&stretch', - $nc . '&w=300&h=400&no-upscale&stretch', - $nc . '&w=600&h=400&crop-to-fit', - $nc . '&w=600&h=400&no-upscale&crop-to-fit', - $nc . '&w=600&h=200&crop-to-fit', - $nc . '&w=600&h=200&no-upscale&crop-to-fit', - $nc . '&w=300&h=400&crop-to-fit', - $nc . '&w=300&h=400&no-upscale&crop-to-fit', - $nc . '&w=600&h=400&fill-to-fit', - $nc . '&w=600&h=400&no-upscale&fill-to-fit', + $nc . '&w=250&h=400&stretch', + $nc . '&w=250&h=400&no-upscale&stretch', + $nc . '&w=700&h=400&crop-to-fit', + $nc . '&w=700&h=400&no-upscale&crop-to-fit', + $nc . '&w=700&h=200&crop-to-fit', + $nc . '&w=700&h=200&no-upscale&crop-to-fit', + $nc . '&w=250&h=400&crop-to-fit', + $nc . '&w=250&h=400&no-upscale&crop-to-fit', + $nc . '&w=600&h=500&fill-to-fit', + $nc . '&w=600&h=500&no-upscale&fill-to-fit', + $nc . '&w=250&h=400&fill-to-fit', + $nc . '&w=250&h=400&no-upscale&fill-to-fit', + $nc . '&w=700&h=400&fill-to-fit', + $nc . '&w=700&h=400&no-upscale&fill-to-fit', /* $nc . '&w=600&ar=1.6', $nc . '&w=600&ar=1.6&no-upscale', From 9e9c44c9356484882055cf3475ae1944e2d09bd8 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Wed, 1 Jun 2016 09:31:28 +0200 Subject: [PATCH 15/50] Fixed to correctly display image when using a resize strategy without height or width. --- CImage.php | 5 +++++ REVISION.md | 1 + 2 files changed, 6 insertions(+) diff --git a/CImage.php b/CImage.php index c7a233b..3f8e3c8 100644 --- a/CImage.php +++ b/CImage.php @@ -1098,6 +1098,11 @@ class CImage $this->newWidth = round($factor * $width); $this->log("New height was set."); + } else { + + // Use existing width and height as new width and height. + $this->newWidth = $width; + $this->newHeight = $height; } diff --git a/REVISION.md b/REVISION.md index 76aaabd..218469e 100644 --- a/REVISION.md +++ b/REVISION.md @@ -8,6 +8,7 @@ Revision history v0.7.12 (2016-05-31) ------------------------------------- +* Fixed to correctly display image when using a resize strategy without height or width. * Fixed background color for option `no-upscale`, #144. From 5edbfc9b544671ec329b99ea3ffc5288ab295863 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Wed, 1 Jun 2016 09:34:30 +0200 Subject: [PATCH 16/50] prepare to tag v0.7.12 --- webroot/img.php | 2 +- webroot/img_config.php | 2 +- webroot/imgd.php | 44 +++++++++++++++++++++++++++++++++--------- webroot/imgp.php | 44 +++++++++++++++++++++++++++++++++--------- webroot/imgs.php | 2 +- 5 files changed, 73 insertions(+), 21 deletions(-) diff --git a/webroot/img.php b/webroot/img.php index 747e352..ad39874 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -8,7 +8,7 @@ * */ -$version = "v0.7.11 (2016-04-18)"; +$version = "v0.7.12 (2016-05-31)"; // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/$version"); diff --git a/webroot/img_config.php b/webroot/img_config.php index db6e05e..5eb59a0 100644 --- a/webroot/img_config.php +++ b/webroot/img_config.php @@ -23,7 +23,7 @@ return array( * mode: 'production' */ //'mode' => 'production', - 'mode' => 'development', + //'mode' => 'development', //'mode' => 'strict', diff --git a/webroot/imgd.php b/webroot/imgd.php index 4ae806b..313cafa 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -2022,7 +2022,13 @@ class CImage $this->newWidth = round($factor * $width); $this->log("New height was set."); + } else { + + // Use existing width and height as new width and height. + $this->newWidth = $width; + $this->newHeight = $height; } + // Get image dimensions for pre-resize image. if ($this->cropToFit || $this->fillToFit) { @@ -2620,25 +2626,45 @@ class CImage // Resize by crop to fit $this->log("Resizing using strategy - Crop to fit"); - if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { + if (!$this->upscale + && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); - $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); - $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); + //$cropX = round(($this->cropWidth/2) - ($this->width/2)); + //$cropY = round(($this->cropHeight/2) - ($this->height/2)); $posX = 0; $posY = 0; + $cropX = 0; + $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } + if ($this->newWidth < $this->width) { + $cropX = round(($this->width/2) - ($this->newWidth/2)); + } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } + if ($this->newHeight < $this->height) { + $cropY = round(($this->height/2) - ($this->newHeight/2)); + } + $this->log(" cwidth: $this->cropWidth"); + $this->log(" cheight: $this->cropHeight"); + $this->log(" nwidth: $this->newWidth"); + $this->log(" nheight: $this->newHeight"); + $this->log(" width: $this->width"); + $this->log(" height: $this->height"); + $this->log(" posX: $posX"); + $this->log(" posY: $posY"); + $this->log(" cropX: $cropX"); + $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->newWidth, $this->newHeight); + //imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); + imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); @@ -2671,14 +2697,14 @@ class CImage } if (!$this->upscale - && ($this->width < $this->newWidth || $this->height < $this->newHeight) + && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); - $posX = round(($this->fillWidth - $this->width) / 2); - $posY = round(($this->fillHeight - $this->height) / 2); + $posX = round(($this->newWidth - $this->width) / 2); + $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); + imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); @@ -2722,7 +2748,7 @@ class CImage //$this->log("posX=$posX, posY=$posY, cropX=$cropX, cropY=$cropY."); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->newWidth, $this->newHeight); + imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; diff --git a/webroot/imgp.php b/webroot/imgp.php index e252e42..06e70b1 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -2022,7 +2022,13 @@ class CImage $this->newWidth = round($factor * $width); $this->log("New height was set."); + } else { + + // Use existing width and height as new width and height. + $this->newWidth = $width; + $this->newHeight = $height; } + // Get image dimensions for pre-resize image. if ($this->cropToFit || $this->fillToFit) { @@ -2620,25 +2626,45 @@ class CImage // Resize by crop to fit $this->log("Resizing using strategy - Crop to fit"); - if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { + if (!$this->upscale + && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); - $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); - $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); + //$cropX = round(($this->cropWidth/2) - ($this->width/2)); + //$cropY = round(($this->cropHeight/2) - ($this->height/2)); $posX = 0; $posY = 0; + $cropX = 0; + $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } + if ($this->newWidth < $this->width) { + $cropX = round(($this->width/2) - ($this->newWidth/2)); + } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } + if ($this->newHeight < $this->height) { + $cropY = round(($this->height/2) - ($this->newHeight/2)); + } + $this->log(" cwidth: $this->cropWidth"); + $this->log(" cheight: $this->cropHeight"); + $this->log(" nwidth: $this->newWidth"); + $this->log(" nheight: $this->newHeight"); + $this->log(" width: $this->width"); + $this->log(" height: $this->height"); + $this->log(" posX: $posX"); + $this->log(" posY: $posY"); + $this->log(" cropX: $cropX"); + $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->newWidth, $this->newHeight); + //imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); + imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); @@ -2671,14 +2697,14 @@ class CImage } if (!$this->upscale - && ($this->width < $this->newWidth || $this->height < $this->newHeight) + && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); - $posX = round(($this->fillWidth - $this->width) / 2); - $posY = round(($this->fillHeight - $this->height) / 2); + $posX = round(($this->newWidth - $this->width) / 2); + $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); + imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); @@ -2722,7 +2748,7 @@ class CImage //$this->log("posX=$posX, posY=$posY, cropX=$cropX, cropY=$cropY."); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->newWidth, $this->newHeight); + imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; diff --git a/webroot/imgs.php b/webroot/imgs.php index 9a8cee6..bb4f099 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -1,6 +1,6 @@ 'strict', ); class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header

", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at - http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType, $this->attr) = getimagesize($file); if (empty($info)) { throw new Exception("The file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . image_type_to_mime_type($this->fileType)); } return $this; } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails($this->pathToImage); $this->image = imagecreatefromstring(file_get_contents($this->pathToImage)); if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $posX = 0; $posY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->newWidth, $this->newHeight); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->fillWidth - $this->width) / 2); $posY = round(($this->fillHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->newWidth, $this->newHeight); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with + http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType, $this->attr) = getimagesize($file); if (empty($info)) { throw new Exception("The file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . image_type_to_mime_type($this->fileType)); } return $this; } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } else { $this->newWidth = $width; $this->newHeight = $height; } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails($this->pathToImage); $this->image = imagecreatefromstring(file_get_contents($this->pathToImage)); if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newWidth < $this->width) { $cropX = round(($this->width/2) - ($this->newWidth/2)); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } if ($this->newHeight < $this->height) { $cropY = round(($this->height/2) - ($this->newHeight/2)); } $this->log(" cwidth: $this->cropWidth"); $this->log(" cheight: $this->cropHeight"); $this->log(" nwidth: $this->newWidth"); $this->log(" nheight: $this->newHeight"); $this->log(" width: $this->width"); $this->log(" height: $this->height"); $this->log(" posX: $posX"); $this->log(" posY: $posY"); $this->log(" cropX: $cropX"); $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with 11 float values. Got $expression." ); } array_walk($part, function ($item, $key) { if (!is_numeric($item)) { throw new Exception("Argument to convolve expression should be float but is not."); } }); return array( array( array($part[0], $part[1], $part[2]), array($part[3], $part[4], $part[5]), array($part[6], $part[7], $part[8]), ), $part[9], $part[10], ); } public function addConvolveExpressions($options) { $this->convolves = array_merge($this->convolves, $options); return $this; } public function imageConvolution($options = null) { $options = $options ? $options : $this->convolve; $this->log("Convolution with '$options'"); $options = explode(":", $options); foreach ($options as $option) { list($matrix, $divisor, $offset) = $this->createConvolveArguments($option); imageconvolution($this->image, $matrix, $divisor, $offset); } return $this; } public function setDefaultBackgroundColor($color) { $this->log("Setting default background color to '$color'."); if (!(strlen($color) == 6 || strlen($color) == 8)) { throw new Exception( "Background color needs a hex value of 6 or 8 digits. 000000-FFFFFF or 00000000-FFFFFF7F. Current value was: '$color'." ); } $red = hexdec(substr($color, 0, 2)); $green = hexdec(substr($color, 2, 2)); $blue = hexdec(substr($color, 4, 2)); $alpha = (strlen($color) == 8) ? hexdec(substr($color, 6, 2)) : null; if (($red < 0 || $red > 255) || ($green < 0 || $green > 255) || ($blue < 0 || $blue > 255) || ($alpha < 0 || $alpha > 127) ) { throw new Exception( "Background color out of range. Red, green blue From cde8bab6e7b55c52fbc335d10fc4877c54dd3c6a Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Wed, 1 Jun 2016 09:37:28 +0200 Subject: [PATCH 17/50] tagging v0.7.12 --- README.md | 7 ++++--- REVISION.md | 2 +- webroot/img.php | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3392cee..f1600cb 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ http://dbwebb.se/opensource/cimage + Requirements -------------------------------------- @@ -46,14 +47,14 @@ There are several ways of installing. You either install the whole project which The [sourcode is available on GitHub](https://github.com/mosbth/cimage). Clone, fork or [download as zip](https://github.com/mosbth/cimage/archive/master.zip). -**Latest stable version is v0.7.11 released 2016-04-18.** +**Latest stable version is v0.7.12 released 2016-06-01.** I prefer cloning like this. Do switch to the latest stable version. ```bash git clone git://github.com/mosbth/cimage.git cd cimage -git checkout v0.7.11 +git checkout v0.7.12 ``` Make the cache-directory writable by the webserver. @@ -76,7 +77,7 @@ There are some all-included bundles of `img.php` that can be downloaded and used Dowload the version of your choice like this. ```bash -wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.11/webroot/imgp.php +wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.12/webroot/imgp.php ``` Open up the file in your editor and edit the array `$config`. Ensure that the paths to the image directory and the cache directory matches your environment, or create an own config-file for the script. diff --git a/REVISION.md b/REVISION.md index 218469e..1be8858 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,7 +5,7 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) -v0.7.12 (2016-05-31) +v0.7.12 (2016-06-01) ------------------------------------- * Fixed to correctly display image when using a resize strategy without height or width. diff --git a/webroot/img.php b/webroot/img.php index ad39874..b9edcd2 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -8,7 +8,7 @@ * */ -$version = "v0.7.12 (2016-05-31)"; +$version = "v0.7.12 (2016-06-01)"; // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/$version"); From 32a23894d1ac34facf7b036777e89e6b50a6913f Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Wed, 1 Jun 2016 10:11:44 +0200 Subject: [PATCH 18/50] cleanup, removed code comments, codestyle --- CImage.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/CImage.php b/CImage.php index 3f8e3c8..d30b33e 100644 --- a/CImage.php +++ b/CImage.php @@ -1706,9 +1706,6 @@ class CImage && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); - //$cropX = round(($this->cropWidth/2) - ($this->width/2)); - //$cropY = round(($this->cropHeight/2) - ($this->height/2)); - $posX = 0; $posY = 0; $cropX = 0; @@ -1739,7 +1736,6 @@ class CImage $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - //imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); @@ -1822,7 +1818,6 @@ class CImage $cropX = round(($this->width - $this->newWidth) / 2); } - //$this->log("posX=$posX, posY=$posY, cropX=$cropX, cropY=$cropY."); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; From 6118f298ff06f4802b87585a5bd34a5aaab4cd1a Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Sun, 10 Jul 2016 22:54:11 +0200 Subject: [PATCH 19/50] prepare to test fast track cache --- CFastTrackCache.php | 231 +++++++++++++++++++++++++++++++++++++++++ CImage.php | 55 ++++++++-- cache/README.md | 0 webroot/img.php | 62 +++++++++-- webroot/img_config.php | 38 +++++-- 5 files changed, 362 insertions(+), 24 deletions(-) create mode 100644 CFastTrackCache.php delete mode 100644 cache/README.md diff --git a/CFastTrackCache.php b/CFastTrackCache.php new file mode 100644 index 0000000..39ff7b5 --- /dev/null +++ b/CFastTrackCache.php @@ -0,0 +1,231 @@ +enabled = $enabled; + return $this; + } + + + + /** + * Set the path to the cache dir which must exist. + * + * @param string $path to the cache dir. + * + * @throws Exception when $path is not a directory. + * + * @return $this + */ + public function setCacheDir($path) + { + if (!is_dir($path)) { + throw new Exception("Cachedir is not a directory."); + } + + $this->path = rtrim($path, "/"); + + return $this; + } + + + + /** + * Set the filename to store in cache, use the querystring to create that + * filename. + * + * @param array $clear items to clear in $_GET when creating the filename. + * + * @return string as filename created. + */ + public function setFilename($clear) + { + $query = $_GET; + + // Remove parts from querystring that should not be part of filename + foreach ($clear as $value) { + unset($query[$value]); + } + + arsort($query); + $queryAsString = http_build_query($query); + + $this->filename = md5($queryAsString); + $this->container["query-string"] = $queryAsString; + + return $this->filename; + } + + + + /** + * Add header items. + * + * @param string $header add this as header. + * + * @return $this + */ + public function addHeader($header) + { + $this->container["header"][] = $header; + return $this; + } + + + + /** + * Add header items on output, these are not output when 304. + * + * @param string $header add this as header. + * + * @return $this + */ + public function addHeaderOnOutput($header) + { + $this->container["header-output"][] = $header; + return $this; + } + + + + /** + * Set path to source image to. + * + * @param string $source path to source image file. + * + * @return $this + */ + public function setSource($source) + { + $this->container["source"] = $source; + return $this; + } + + + + /** + * Set last modified of source image, use to check for 304. + * + * @param string $lastModified + * + * @return $this + */ + public function setLastModified($lastModified) + { + $this->container["last-modified"] = $lastModified; + return $this; + } + + + + /** + * Get filename of cached item. + * + * @return string as filename. + */ + public function getFilename() + { + return $this->path . "/" . $this->filename; + } + + + + /** + * Write current item to cache. + * + * @return boolean if cache file was written. + */ + public function writeToCache() + { + if (!$this->enabled) { + return false; + } + + if (is_dir($this->path) && is_writable($this->path)) { + $filename = $this->getFilename(); + return file_put_contents($filename, json_encode($this->container)) !== false; + } + + return false; + } + + + + /** + * Output current item from cache, if available. + * + * @return void + */ + public function output() + { + $filename = $this->getFilename(); + if (!is_readable($filename)) { + return; + } + + $item = json_decode(file_get_contents($filename), true); + + if (!is_readable($item["source"])) { + return; + } + + foreach ($item["header"] as $value) { + header($value); + } + + if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) + && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { + header("HTTP/1.0 304 Not Modified"); + debug("fast track 304"); + exit; + } + + foreach ($item["header-output"] as $value) { + header($value); + } + + readfile($item["source"]); + debug("fast track 200"); + exit; + } +} diff --git a/CImage.php b/CImage.php index d30b33e..d0db1d2 100644 --- a/CImage.php +++ b/CImage.php @@ -379,6 +379,12 @@ class CImage private $useCache = true; + /** + * Disable the fasttrackCacke to start with, inject an object to enable it. + */ + private $fastTrackCache = null; + + /* * Set whitelist for valid hostnames from where remote source can be @@ -446,6 +452,25 @@ class CImage + /** + * Inject object and use it, must be available as member. + * + * @param string $property to set as object. + * @param object $object to set to property. + * + * @return $this + */ + public function injectDependency($property, $object) + { + if (!property_exists($this, $property)) { + $this->raiseError("Injecting unknown property."); + } + $this->$property = $object; + return $this; + } + + + /** * Set verbose mode. * @@ -2520,7 +2545,7 @@ class CImage /** - * Add HTTP header for putputting together with image. + * Add HTTP header for output together with image. * * @param string $type the header type such as "Cache-Control" * @param string $value the value to use @@ -2571,14 +2596,20 @@ class CImage // Get image modification time clearstatcache(); $lastModified = filemtime($file); - $gmdate = gmdate("D, d M Y H:i:s", $lastModified); + $lastModifiedFormat = "D, d M Y H:i:s"; + $gmdate = gmdate($lastModifiedFormat, $lastModified); if (!$this->verbose) { - header('Last-Modified: ' . $gmdate . " GMT"); + $header = "Last-Modified: $gmdate GMT"; + header($header); + $this->fastTrackCache->addHeader($header); + $this->fastTrackCache->setLastModified($lastModified); } - foreach($this->HTTPHeader as $key => $val) { - header("$key: $val"); + foreach ($this->HTTPHeader as $key => $val) { + $header = "$key: $val"; + header($header); + $this->fastTrackCache->addHeader($header); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { @@ -2590,6 +2621,7 @@ class CImage } header("HTTP/1.0 304 Not Modified"); + debug("standard 304"); } else { @@ -2610,9 +2642,18 @@ class CImage } } - header("Content-type: $mime"); - header("Content-length: $size"); + $header = "Content-type: $mime"; + header($header); + $this->fastTrackCache->addHeaderOnOutput($header); + + $header = "Content-length: $size"; + header($header); + $this->fastTrackCache->addHeaderOnOutput($header); + + $this->fastTrackCache->setSource($file); + $this->fastTrackCache->writeToCache(); readfile($file); + debug("standard 200"); } exit; diff --git a/cache/README.md b/cache/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/webroot/img.php b/webroot/img.php index b9edcd2..e416808 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -14,6 +14,17 @@ $version = "v0.7.12 (2016-06-01)"; define("CIMAGE_USER_AGENT", "CImage/$version"); +// Include debug functions +function debug($msg) +{ + $file = "/tmp/cimage"; + $msg .= ":" . count(get_included_files()); + $msg .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; + $msg .= ":" . (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 6) . "ms"; + file_put_contents($file, "$msg\n", FILE_APPEND); + +} + /** * Display error message. @@ -348,7 +359,8 @@ if ($autoloader) { /** * Create the class for the image. */ -$img = new CImage(); +$CImage = getConfig('CImage', 'CImage'); +$img = new $CImage(); $img->setVerbose($verbose || $verboseFile); @@ -356,12 +368,46 @@ $img->setVerbose($verbose || $verboseFile); /** * Get the cachepath from config. */ +$CCache = getConfig('CCache', 'CCache'); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); -$cache = new CCache(); +$cache = new $CCache(); $cache->setDir($cachePath); +/** + * no-cache, nc - skip the cached version and process and create a new version in cache. + */ +$useCache = getDefined(array('no-cache', 'nc'), false, true); + +verbose("use cache = $useCache"); + + + +/** + * Prepare fast track cache for swriting cache items. + */ +$fastTrackCache = "fasttrack"; +$allowFastTrackCache = getConfig('fast_track_allow', false); + +$CFastTrackCache = getConfig('CFastTrackCache', 'CFastTrackCache'); +$ftc = new $CFastTrackCache(); +$ftc->setCacheDir($cache->getPathToSubdir($fastTrackCache)) + ->enable($allowFastTrackCache) + ->setFilename(array('no-cache', 'nc')); +$img->injectDependency("fastTrackCache", $ftc); + + + +/** + * Load and output images from fast track cache, if items are available + * in cache. + */ +if ($useCache && $allowFastTrackCache) { + $ftc->output(); +} + + /** * Allow or disallow remote download of images from other servers. @@ -707,15 +753,6 @@ verbose("use original = $useOriginal"); -/** - * no-cache, nc - skip the cached version and process and create a new version in cache. - */ -$useCache = getDefined(array('no-cache', 'nc'), false, true); - -verbose("use cache = $useCache"); - - - /** * quality, q - set level of quality for jpeg images */ @@ -1082,6 +1119,9 @@ if ($status) { $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; + $res = $cache->getStatusOfSubdir($fasttrackCache); + $text .= "Cache fasttrack $res\n"; + $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; diff --git a/webroot/img_config.php b/webroot/img_config.php index 5eb59a0..1f3ca27 100644 --- a/webroot/img_config.php +++ b/webroot/img_config.php @@ -23,7 +23,7 @@ return array( * mode: 'production' */ //'mode' => 'production', - //'mode' => 'development', + 'mode' => 'development', //'mode' => 'strict', @@ -45,16 +45,42 @@ return array( * End all paths with a slash. * * Default values: - * image_path: __DIR__ . '/img/' - * cache_path: __DIR__ . '/../cache/' - * alias_path: null + * image_path: __DIR__ . '/img/' + * cache_path: __DIR__ . '/../cache/' + * alias_path: null */ - 'image_path' => __DIR__ . '/img/', - 'cache_path' => __DIR__ . '/../cache/', + 'image_path' => __DIR__ . '/img/', + 'cache_path' => __DIR__ . '/../cache/', //'alias_path' => __DIR__ . '/img/alias/', + /** + * Fast track cache. Save a json representation of the image as a + * fast track to the cached version of the image. This avoids some + * processing and allows for quicker load times of cached images. + * + * Default values: + * fast_track_allow: false + */ + 'fast_track_allow' => true, + + + + /** + * Class names to use, to ease dependency injection. + * + * Default values: + * CImage: CImage + * CCache: CCache + * CFastTrackCache: CFastTrackCache + */ + //'CImage' => 'CImage', + //'CCache' => 'CCache', + //'CFastTrackCache' => 'CFastTrackCache', + + + /** * Use password to protect from missusage, send &pwd=... or &password=.. * with the request to match the password or set to false to disable. From 9a0a9429dbfe57b4086e85c484b0f1079988b8f2 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Sun, 10 Jul 2016 22:57:58 +0200 Subject: [PATCH 20/50] make debug depend on file exists --- webroot/img.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/webroot/img.php b/webroot/img.php index e416808..7b1c9cd 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -18,6 +18,9 @@ define("CIMAGE_USER_AGENT", "CImage/$version"); function debug($msg) { $file = "/tmp/cimage"; + if (!is_writable($file)) { + return; + } $msg .= ":" . count(get_included_files()); $msg .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $msg .= ":" . (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 6) . "ms"; From 0dd562aa61193385da734ae6b918b6190d4dbade Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 18 Jul 2016 00:44:46 +0200 Subject: [PATCH 21/50] add really fast track cache script --- webroot/imgf.php | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 webroot/imgf.php diff --git a/webroot/imgf.php b/webroot/imgf.php new file mode 100644 index 0000000..c812f38 --- /dev/null +++ b/webroot/imgf.php @@ -0,0 +1,60 @@ + Date: Mon, 18 Jul 2016 01:00:55 +0200 Subject: [PATCH 22/50] added and fixed fast track cache script version --- webroot/imgf.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/webroot/imgf.php b/webroot/imgf.php index c812f38..34a9f42 100644 --- a/webroot/imgf.php +++ b/webroot/imgf.php @@ -4,7 +4,7 @@ * the ordinary way. */ // Include debug functions -function debug($msg) +function debug1($msg) { $file = "/tmp/cimage"; if (!is_writable($file)) { @@ -17,7 +17,7 @@ function debug($msg) } - +$cachePath = __DIR__ . "/../cache/fasttrack"; $query = $_GET; // Remove parts from querystring that should not be part of filename @@ -30,6 +30,7 @@ arsort($query); $queryAsString = http_build_query($query); $filename = md5($queryAsString); +$filename = "$cachePath/$filename"; if (is_readable($filename)) { $item = json_decode(file_get_contents($filename), true); @@ -41,7 +42,7 @@ if (is_readable($filename)) { if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); - debug("really fast track 304"); + debug1("really fast track 304"); exit; } @@ -50,7 +51,7 @@ if (is_readable($filename)) { } readfile($item["source"]); - debug("really fast track 200"); + debug1("really fast track 200"); exit; } } From c637fa23ef3b2af4cec76b96151748394eabfa85 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 18 Jul 2016 16:38:57 +0200 Subject: [PATCH 23/50] test with imgf --- CFastTrackCache.php | 2 +- CImage.php | 2 +- webroot/imgf.php | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CFastTrackCache.php b/CFastTrackCache.php index 39ff7b5..9b71022 100644 --- a/CFastTrackCache.php +++ b/CFastTrackCache.php @@ -224,8 +224,8 @@ class CFastTrackCache header($value); } - readfile($item["source"]); debug("fast track 200"); + readfile($item["source"]); exit; } } diff --git a/CImage.php b/CImage.php index d0db1d2..bf9d984 100644 --- a/CImage.php +++ b/CImage.php @@ -2652,8 +2652,8 @@ class CImage $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); - readfile($file); debug("standard 200"); + readfile($file); } exit; diff --git a/webroot/imgf.php b/webroot/imgf.php index 34a9f42..7f5e2b9 100644 --- a/webroot/imgf.php +++ b/webroot/imgf.php @@ -16,6 +16,8 @@ function debug1($msg) file_put_contents($file, "$msg\n", FILE_APPEND); } +//$useCache = getDefined(array('no-cache', 'nc'), false, true); + $cachePath = __DIR__ . "/../cache/fasttrack"; $query = $_GET; @@ -50,8 +52,8 @@ if (is_readable($filename)) { header($value); } - readfile($item["source"]); debug1("really fast track 200"); + readfile($item["source"]); exit; } } From b1d0cb1506d15ad75a664ca02cba7f6efc7e143c Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 09:29:26 +0200 Subject: [PATCH 24/50] prepare to test --- CFastTrackCache.php | 3 - CImage.php | 2 - README.md | 26 +- REVISION.md | 11 + autoload.php | 7 +- bin/create-img-single.bash | 12 + composer.json | 7 +- defines.php | 6 + functions.php | 164 +++++++++ webroot/img.php | 190 +--------- webroot/img_config.php | 8 +- webroot/img_header.php | 1 + webroot/imgd.php | 690 +++++++++++++++++++++++++++---------- webroot/imgf.php | 42 +-- webroot/imgp.php | 690 +++++++++++++++++++++++++++---------- webroot/imgs.php | 8 +- 16 files changed, 1273 insertions(+), 594 deletions(-) create mode 100644 defines.php create mode 100644 functions.php diff --git a/CFastTrackCache.php b/CFastTrackCache.php index 9b71022..d53353e 100644 --- a/CFastTrackCache.php +++ b/CFastTrackCache.php @@ -91,7 +91,6 @@ class CFastTrackCache $queryAsString = http_build_query($query); $this->filename = md5($queryAsString); - $this->container["query-string"] = $queryAsString; return $this->filename; } @@ -216,7 +215,6 @@ class CFastTrackCache if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); - debug("fast track 304"); exit; } @@ -224,7 +222,6 @@ class CFastTrackCache header($value); } - debug("fast track 200"); readfile($item["source"]); exit; } diff --git a/CImage.php b/CImage.php index bf9d984..933023a 100644 --- a/CImage.php +++ b/CImage.php @@ -2621,7 +2621,6 @@ class CImage } header("HTTP/1.0 304 Not Modified"); - debug("standard 304"); } else { @@ -2652,7 +2651,6 @@ class CImage $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); - debug("standard 200"); readfile($file); } diff --git a/README.md b/README.md index f1600cb..7f42932 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Image conversion on the fly using PHP About ------------------------------------- - + `CImage` is a PHP class enabling resizing of images through scaling, cropping and filtering effects -- using PHP GD. The script `img.php` uses `CImage` to enable server-side image processing utilizing caching and optimization of the processed images. @@ -99,7 +99,7 @@ Lets take some use cases to let you know when and how `img.php` might be useful. ### Make a thumbnail - + Lets say you have a larger image and you want to make a smaller thumbnail of it with a size of 80x80 pixels. You simply take the image and add constraints on `width`, `height` and you use the resize strategy `crop-to-fit` to crops out the parts of the image that does not fit. @@ -113,7 +113,7 @@ To produce such a thumbnail, create a link like this: Perhaps you got an image from a friend. The image was taken with the iPhone and thus rotated. - + The original image is looking like this one, scaled down to a width of 250 pixels. @@ -126,7 +126,7 @@ Lets call this *the URL-Photoshopper*. This is how the magic looks like. > `img.php?src=issue36/me-270.jpg&w=100&h=100&cf&aro` > `&rb=-25&a=8,30,30,38&f=grayscale&convolve=sharpen-alt` - + For myself, I use `img.php` to put up all images on my website, it gives me the power of affecting the resulting images - without opening up a photo-editing application. @@ -145,7 +145,7 @@ Try it out by pointing your browser to the test file `webroot/test/test.php`. It ###Process your first image - + Try it yourself by opening up an image in your browser. Start with @@ -199,7 +199,7 @@ Open an image through `img.php` by using its `src` attribute. It looks like this. - + All images are stored in a directory structure and you access them as: @@ -213,7 +213,7 @@ Create a thumbnail of the image by applying constraints on width and height, or | `&width=150` | `&height=150` | `&w=150&h=150` | |---------------------|---------------------|---------------------| -| | | | +| | | | By setting `width`, `height` or both, the image gets resized to be *not larger* than the defined dimensions *and* keeping its original aspect ratio. @@ -228,10 +228,10 @@ Creating a thumbnail with a certain dimension of width and height, usually invol | What | The image | |---------------------|---------------------| -| **Original.** The original image resized with a max width and max height.
`?w=300&h=150` | | -| **Stretch.** Stretch the image so that the resulting image has the defined width and height.
`?w=300&h=150&stretch` | | -| **Crop to fit.** Keep the aspect ratio and crop out the parts of the image that does not fit.
`?w=300&h=150&crop-to-fit` | | -| **Fill to fit.** Keep the aspect ratio and fill then blank space with a background color.
`?w=300&h=150&fill-to-fit=006600` | | +| **Original.** The original image resized with a max width and max height.
`?w=300&h=150` | | +| **Stretch.** Stretch the image so that the resulting image has the defined width and height.
`?w=300&h=150&stretch` | | +| **Crop to fit.** Keep the aspect ratio and crop out the parts of the image that does not fit.
`?w=300&h=150&crop-to-fit` | | +| **Fill to fit.** Keep the aspect ratio and fill then blank space with a background color.
`?w=300&h=150&fill-to-fit=006600` | | Learn to crop your images, creative cropping can make wonderful images from appearingly useless originals. @@ -248,7 +248,7 @@ Fill to fit is useful when you have some image that must fit in a certain dimens > `img.php?src=kodim13.png&w=600&aspect-ratio=4` > `&crop-to-fit&sharpen&save-as=jpg&q=30` - + Here is a list of all parameters that you can use together with `img.php`, grouped by its basic intent of usage. @@ -431,7 +431,7 @@ For example, the following image is created like this: > `&w=300&save-as=jpg` - + Its JSON-representation is retrieved like this: diff --git a/REVISION.md b/REVISION.md index 1be8858..74cd57a 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,6 +5,17 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) +v0.7.13 (2016-08-08) +------------------------------------- + +* Moved functions from img.php to `functions.php`. +* Added function `trace()` to measure speed and memory consumption, only for development. +* Added fast cache #149. +* Added `imgf.php` as shortcut to check for fast cache, before loading `img.php` as usual. +* Created `defines.php` and moved definition av version there. +* Fixed images in README, #148. + + v0.7.12 (2016-06-01) ------------------------------------- diff --git a/autoload.php b/autoload.php index b65d4e1..833deb4 100644 --- a/autoload.php +++ b/autoload.php @@ -3,9 +3,10 @@ * Autoloader for CImage and related class files. * */ -//include __DIR__ . "/../CHttpGet.php"; -//include __DIR__ . "/../CRemoteImage.php"; -//include __DIR__ . "/../CImage.php"; +require __DIR__ . "/defines.php"; +require __DIR__ . "/functions.php"; + + /** * Autoloader for classes. diff --git a/bin/create-img-single.bash b/bin/create-img-single.bash index c2d9895..02a7f2c 100755 --- a/bin/create-img-single.bash +++ b/bin/create-img-single.bash @@ -34,12 +34,15 @@ fi $ECHO "Creating '$TARGET_D', '$TARGET_P' and '$TARGET_S' by combining the following files:" $ECHO "\n" $ECHO "\n webroot/img_header.php" +$ECHO "\n defines.php" +$ECHO "\n functions.php" $ECHO "\n CHttpGet.php" $ECHO "\n CRemoteImage.php" $ECHO "\n CWhitelist.php" $ECHO "\n CAsciiArt.php" $ECHO "\n CImage.php" $ECHO "\n CCache.php" +$ECHO "\n CFastTrackCache.php" $ECHO "\n webroot/img.php" $ECHO "\n" $ECHO "\n'$TARGET_D' is for development mode." @@ -60,6 +63,12 @@ cat webroot/img_header.php | sed "s|//'mode' => 'production',|'mode' $ECHO "$NEWLINES" | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null +tail -n +2 defines.php | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null +$ECHO "$NEWLINES" | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null + +tail -n +2 functions.php | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null +$ECHO "$NEWLINES" | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null + tail -n +2 CHttpGet.php | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null $ECHO "$NEWLINES" | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null @@ -78,6 +87,9 @@ $ECHO "$NEWLINES" | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null tail -n +2 CCache.php | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null $ECHO "$NEWLINES" | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null +tail -n +2 CFastTrackCache.php | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null +$ECHO "$NEWLINES" | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null + tail -n +2 webroot/img.php | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null $ECHO "$NEWLINES" | tee -a $TARGET_D $TARGET_P $TARGET_S > /dev/null diff --git a/composer.json b/composer.json index c06f689..a6e24ab 100644 --- a/composer.json +++ b/composer.json @@ -25,13 +25,18 @@ "ext-exif": "*" }, "autoload": { - "classmap": [ + "files": [ + "defines.php", + "functions.php" + ], + "classmap": [ "CImage.php", "CHttpGet.php", "CRemoteImage.php", "CWhitelist.php", "CAsciiArt.php", "CCache.php" + "CFastTrackCache.php" ] } } diff --git a/defines.php b/defines.php new file mode 100644 index 0000000..b64ecbe --- /dev/null +++ b/defines.php @@ -0,0 +1,6 @@ +img.php: Uncaught exception:

" + . $exception->getMessage() + . "

"
+        . $exception->getTraceAsString()
+        . "
", + 500 + ); +}); + + + +/** + * Get input from query string or return default value if not set. + * + * @param mixed $key as string or array of string values to look for in $_GET. + * @param mixed $default value to return when $key is not set in $_GET. + * + * @return mixed value from $_GET or default value. + */ +function get($key, $default = null) +{ + if (is_array($key)) { + foreach ($key as $val) { + if (isset($_GET[$val])) { + return $_GET[$val]; + } + } + } elseif (isset($_GET[$key])) { + return $_GET[$key]; + } + return $default; +} + + + +/** + * Get input from query string and set to $defined if defined or else $undefined. + * + * @param mixed $key as string or array of string values to look for in $_GET. + * @param mixed $defined value to return when $key is set in $_GET. + * @param mixed $undefined value to return when $key is not set in $_GET. + * + * @return mixed value as $defined or $undefined. + */ +function getDefined($key, $defined, $undefined) +{ + return get($key) === null ? $undefined : $defined; +} + + + +/** + * Get value from config array or default if key is not set in config array. + * + * @param string $key the key in the config array. + * @param mixed $default value to be default if $key is not set in config. + * + * @return mixed value as $config[$key] or $default. + */ +function getConfig($key, $default) +{ + global $config; + return isset($config[$key]) + ? $config[$key] + : $default; +} + + + +/** + * Log when verbose mode, when used without argument it returns the result. + * + * @param string $msg to log. + * + * @return void or array. + */ +function verbose($msg = null) +{ + global $verbose, $verboseFile; + static $log = array(); + + if (!($verbose || $verboseFile)) { + return; + } + + if (is_null($msg)) { + return $log; + } + + $log[] = $msg; +} diff --git a/webroot/img.php b/webroot/img.php index 7b1c9cd..c653243 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -8,165 +8,6 @@ * */ -$version = "v0.7.12 (2016-06-01)"; - -// For CRemoteImage -define("CIMAGE_USER_AGENT", "CImage/$version"); - - -// Include debug functions -function debug($msg) -{ - $file = "/tmp/cimage"; - if (!is_writable($file)) { - return; - } - $msg .= ":" . count(get_included_files()); - $msg .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; - $msg .= ":" . (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 6) . "ms"; - file_put_contents($file, "$msg\n", FILE_APPEND); - -} - - -/** - * Display error message. - * - * @param string $msg to display. - * @param int $type of HTTP error to display. - * - * @return void - */ -function errorPage($msg, $type = 500) -{ - global $mode; - - switch ($type) { - case 403: - $header = "403 Forbidden"; - break; - case 404: - $header = "404 Not Found"; - break; - default: - $header = "500 Internal Server Error"; - } - - if ($mode == "strict") { - $header = "404 Not Found"; - } - - header("HTTP/1.0 $header"); - - if ($mode == "development") { - die("[img.php] $msg"); - } - - error_log("[img.php] $msg"); - die("HTTP/1.0 $header"); -} - - - -/** - * Custom exception handler. - */ -set_exception_handler(function ($exception) { - errorPage( - "

img.php: Uncaught exception:

" - . $exception->getMessage() - . "

"
-        . $exception->getTraceAsString()
-        . "
", - 500 - ); -}); - - - -/** - * Get input from query string or return default value if not set. - * - * @param mixed $key as string or array of string values to look for in $_GET. - * @param mixed $default value to return when $key is not set in $_GET. - * - * @return mixed value from $_GET or default value. - */ -function get($key, $default = null) -{ - if (is_array($key)) { - foreach ($key as $val) { - if (isset($_GET[$val])) { - return $_GET[$val]; - } - } - } elseif (isset($_GET[$key])) { - return $_GET[$key]; - } - return $default; -} - - - -/** - * Get input from query string and set to $defined if defined or else $undefined. - * - * @param mixed $key as string or array of string values to look for in $_GET. - * @param mixed $defined value to return when $key is set in $_GET. - * @param mixed $undefined value to return when $key is not set in $_GET. - * - * @return mixed value as $defined or $undefined. - */ -function getDefined($key, $defined, $undefined) -{ - return get($key) === null ? $undefined : $defined; -} - - - -/** - * Get value from config array or default if key is not set in config array. - * - * @param string $key the key in the config array. - * @param mixed $default value to be default if $key is not set in config. - * - * @return mixed value as $config[$key] or $default. - */ -function getConfig($key, $default) -{ - global $config; - return isset($config[$key]) - ? $config[$key] - : $default; -} - - - -/** - * Log when verbose mode, when used without argument it returns the result. - * - * @param string $msg to log. - * - * @return void or array. - */ -function verbose($msg = null) -{ - global $verbose, $verboseFile; - static $log = array(); - - if (!($verbose || $verboseFile)) { - return; - } - - if (is_null($msg)) { - return $log; - } - - $log[] = $msg; -} - - - /** * Get configuration options from file, if the file exists, else use $config * if its defined or create an empty $config. @@ -181,13 +22,26 @@ if (is_file($configFile)) { +/** + * Setup the autoloader, but not when using a bundle. + */ +if (!defined("CIMAGE_BUNDLE")) { + if (!isset($config["autoloader"])) { + die("CImage: Missing autoloader."); + } + + require $config["autoloader"]; +} + + + /** * verbose, v - do a verbose dump of what happens * vf - do verbose dump to file */ $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); -verbose("img.php version = $version"); +verbose("img.php version = " . CIMAGE_VERSION); @@ -345,20 +199,6 @@ verbose("referer host = $refererHost"); -/** - * Get the source files. - */ -$autoloader = getConfig('autoloader', false); -$cimageClass = getConfig('cimage_class', false); - -if ($autoloader) { - require $autoloader; -} elseif ($cimageClass) { - require $cimageClass; -} - - - /** * Create the class for the image. */ @@ -1105,7 +945,7 @@ if ($srgb || $srgbDefault) { * Display status */ if ($status) { - $text = "img.php version = $version\n"; + $text = "img.php version = " . CIMAGE_VERSION . "\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; diff --git a/webroot/img_config.php b/webroot/img_config.php index 1f3ca27..e5a66e6 100644 --- a/webroot/img_config.php +++ b/webroot/img_config.php @@ -29,14 +29,12 @@ return array( /** - * Where are the sources for the class files. + * Where to find the autoloader. * * Default values: - * autoloader: null // used from v0.6.2 - * cimage_class: null // used until v0.6.1 + * autoloader: null */ 'autoloader' => __DIR__ . '/../autoload.php', - //'cimage_class' => __DIR__ . '/../CImage.php', @@ -63,7 +61,7 @@ return array( * Default values: * fast_track_allow: false */ - 'fast_track_allow' => true, + //'fast_track_allow' => true, diff --git a/webroot/img_header.php b/webroot/img_header.php index 3946030..62648c9 100644 --- a/webroot/img_header.php +++ b/webroot/img_header.php @@ -10,6 +10,7 @@ * @link https://github.com/mosbth/cimage * */ +define("CIMAGE_BUNDLE", true); /** diff --git a/webroot/imgd.php b/webroot/imgd.php index 313cafa..17069b4 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -10,6 +10,7 @@ * @link https://github.com/mosbth/cimage * */ +define("CIMAGE_BUNDLE", true); /** @@ -36,6 +37,180 @@ $config = array( +// Version of cimage and img.php +define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); + +// For CRemoteImage +define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); + + + +/** + * General functions to use in img.php. + */ + + + +/** + * Trace and log execution to logfile, useful for debugging and development. + * + * @param string $msg message to log to file. + * + * @return void + */ +function trace($msg) +{ + $file = "/tmp/cimage"; + if (!is_writable($file)) { + die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); + } + + $msg .= ":" . count(get_included_files()); + $msg .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; + $msg .= ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; + file_put_contents($file, "$msg\n", FILE_APPEND); +} + + + +/** + * Display error message. + * + * @param string $msg to display. + * @param int $type of HTTP error to display. + * + * @return void + */ +function errorPage($msg, $type = 500) +{ + global $mode; + + switch ($type) { + case 403: + $header = "403 Forbidden"; + break; + case 404: + $header = "404 Not Found"; + break; + default: + $header = "500 Internal Server Error"; + } + + if ($mode == "strict") { + $header = "404 Not Found"; + } + + header("HTTP/1.0 $header"); + + if ($mode == "development") { + die("[img.php] $msg"); + } + + error_log("[img.php] $msg"); + die("HTTP/1.0 $header"); +} + + + +/** + * Custom exception handler. + */ +set_exception_handler(function ($exception) { + errorPage( + "

img.php: Uncaught exception:

" + . $exception->getMessage() + . "

"
+        . $exception->getTraceAsString()
+        . "
", + 500 + ); +}); + + + +/** + * Get input from query string or return default value if not set. + * + * @param mixed $key as string or array of string values to look for in $_GET. + * @param mixed $default value to return when $key is not set in $_GET. + * + * @return mixed value from $_GET or default value. + */ +function get($key, $default = null) +{ + if (is_array($key)) { + foreach ($key as $val) { + if (isset($_GET[$val])) { + return $_GET[$val]; + } + } + } elseif (isset($_GET[$key])) { + return $_GET[$key]; + } + return $default; +} + + + +/** + * Get input from query string and set to $defined if defined or else $undefined. + * + * @param mixed $key as string or array of string values to look for in $_GET. + * @param mixed $defined value to return when $key is set in $_GET. + * @param mixed $undefined value to return when $key is not set in $_GET. + * + * @return mixed value as $defined or $undefined. + */ +function getDefined($key, $defined, $undefined) +{ + return get($key) === null ? $undefined : $defined; +} + + + +/** + * Get value from config array or default if key is not set in config array. + * + * @param string $key the key in the config array. + * @param mixed $default value to be default if $key is not set in config. + * + * @return mixed value as $config[$key] or $default. + */ +function getConfig($key, $default) +{ + global $config; + return isset($config[$key]) + ? $config[$key] + : $default; +} + + + +/** + * Log when verbose mode, when used without argument it returns the result. + * + * @param string $msg to log. + * + * @return void or array. + */ +function verbose($msg = null) +{ + global $verbose, $verboseFile; + static $log = array(); + + if (!($verbose || $verboseFile)) { + return; + } + + if (is_null($msg)) { + return $log; + } + + $log[] = $msg; +} + + + /** * Get a image from a remote server using HTTP GET and If-Modified-Since. * @@ -1303,6 +1478,12 @@ class CImage private $useCache = true; + /** + * Disable the fasttrackCacke to start with, inject an object to enable it. + */ + private $fastTrackCache = null; + + /* * Set whitelist for valid hostnames from where remote source can be @@ -1370,6 +1551,25 @@ class CImage + /** + * Inject object and use it, must be available as member. + * + * @param string $property to set as object. + * @param object $object to set to property. + * + * @return $this + */ + public function injectDependency($property, $object) + { + if (!property_exists($this, $property)) { + $this->raiseError("Injecting unknown property."); + } + $this->$property = $object; + return $this; + } + + + /** * Set verbose mode. * @@ -2630,9 +2830,6 @@ class CImage && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); - //$cropX = round(($this->cropWidth/2) - ($this->width/2)); - //$cropY = round(($this->cropHeight/2) - ($this->height/2)); - $posX = 0; $posY = 0; $cropX = 0; @@ -2663,7 +2860,6 @@ class CImage $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - //imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); @@ -2746,7 +2942,6 @@ class CImage $cropX = round(($this->width - $this->newWidth) / 2); } - //$this->log("posX=$posX, posY=$posY, cropX=$cropX, cropY=$cropY."); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; @@ -3449,7 +3644,7 @@ class CImage /** - * Add HTTP header for putputting together with image. + * Add HTTP header for output together with image. * * @param string $type the header type such as "Cache-Control" * @param string $value the value to use @@ -3500,14 +3695,20 @@ class CImage // Get image modification time clearstatcache(); $lastModified = filemtime($file); - $gmdate = gmdate("D, d M Y H:i:s", $lastModified); + $lastModifiedFormat = "D, d M Y H:i:s"; + $gmdate = gmdate($lastModifiedFormat, $lastModified); if (!$this->verbose) { - header('Last-Modified: ' . $gmdate . " GMT"); + $header = "Last-Modified: $gmdate GMT"; + header($header); + $this->fastTrackCache->addHeader($header); + $this->fastTrackCache->setLastModified($lastModified); } - foreach($this->HTTPHeader as $key => $val) { - header("$key: $val"); + foreach ($this->HTTPHeader as $key => $val) { + $header = "$key: $val"; + header($header); + $this->fastTrackCache->addHeader($header); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { @@ -3539,8 +3740,16 @@ class CImage } } - header("Content-type: $mime"); - header("Content-length: $size"); + $header = "Content-type: $mime"; + header($header); + $this->fastTrackCache->addHeaderOnOutput($header); + + $header = "Content-length: $size"; + header($header); + $this->fastTrackCache->addHeaderOnOutput($header); + + $this->fastTrackCache->setSource($file); + $this->fastTrackCache->writeToCache(); readfile($file); } @@ -3834,6 +4043,236 @@ class CCache +/** + * Enable a fast track cache with a json representation of the image delivery. + * + */ +class CFastTrackCache +{ + /** + * Cache is disabled to start with. + */ + private $enabled = false; + + + + /** + * Path to the cache directory. + */ + private $path; + + + + /** + * Filename of current cache item. + */ + private $filename; + + + + /** + * Container with items to store as cached item. + */ + private $container; + + + + /** + * Enable or disable cache. + * + * @param boolean $enable set to true to enable, false to disable + * + * @return $this + */ + public function enable($enabled) + { + $this->enabled = $enabled; + return $this; + } + + + + /** + * Set the path to the cache dir which must exist. + * + * @param string $path to the cache dir. + * + * @throws Exception when $path is not a directory. + * + * @return $this + */ + public function setCacheDir($path) + { + if (!is_dir($path)) { + throw new Exception("Cachedir is not a directory."); + } + + $this->path = rtrim($path, "/"); + + return $this; + } + + + + /** + * Set the filename to store in cache, use the querystring to create that + * filename. + * + * @param array $clear items to clear in $_GET when creating the filename. + * + * @return string as filename created. + */ + public function setFilename($clear) + { + $query = $_GET; + + // Remove parts from querystring that should not be part of filename + foreach ($clear as $value) { + unset($query[$value]); + } + + arsort($query); + $queryAsString = http_build_query($query); + + $this->filename = md5($queryAsString); + + return $this->filename; + } + + + + /** + * Add header items. + * + * @param string $header add this as header. + * + * @return $this + */ + public function addHeader($header) + { + $this->container["header"][] = $header; + return $this; + } + + + + /** + * Add header items on output, these are not output when 304. + * + * @param string $header add this as header. + * + * @return $this + */ + public function addHeaderOnOutput($header) + { + $this->container["header-output"][] = $header; + return $this; + } + + + + /** + * Set path to source image to. + * + * @param string $source path to source image file. + * + * @return $this + */ + public function setSource($source) + { + $this->container["source"] = $source; + return $this; + } + + + + /** + * Set last modified of source image, use to check for 304. + * + * @param string $lastModified + * + * @return $this + */ + public function setLastModified($lastModified) + { + $this->container["last-modified"] = $lastModified; + return $this; + } + + + + /** + * Get filename of cached item. + * + * @return string as filename. + */ + public function getFilename() + { + return $this->path . "/" . $this->filename; + } + + + + /** + * Write current item to cache. + * + * @return boolean if cache file was written. + */ + public function writeToCache() + { + if (!$this->enabled) { + return false; + } + + if (is_dir($this->path) && is_writable($this->path)) { + $filename = $this->getFilename(); + return file_put_contents($filename, json_encode($this->container)) !== false; + } + + return false; + } + + + + /** + * Output current item from cache, if available. + * + * @return void + */ + public function output() + { + $filename = $this->getFilename(); + if (!is_readable($filename)) { + return; + } + + $item = json_decode(file_get_contents($filename), true); + + if (!is_readable($item["source"])) { + return; + } + + foreach ($item["header"] as $value) { + header($value); + } + + if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) + && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { + header("HTTP/1.0 304 Not Modified"); + exit; + } + + foreach ($item["header-output"] as $value) { + header($value); + } + + readfile($item["source"]); + exit; + } +} + + + /** * Resize and crop images on the fly, store generated images in a cache. * @@ -3843,151 +4282,6 @@ class CCache * */ -$version = "v0.7.11 (2016-04-18)"; - -// For CRemoteImage -define("CIMAGE_USER_AGENT", "CImage/$version"); - - - -/** - * Display error message. - * - * @param string $msg to display. - * @param int $type of HTTP error to display. - * - * @return void - */ -function errorPage($msg, $type = 500) -{ - global $mode; - - switch ($type) { - case 403: - $header = "403 Forbidden"; - break; - case 404: - $header = "404 Not Found"; - break; - default: - $header = "500 Internal Server Error"; - } - - if ($mode == "strict") { - $header = "404 Not Found"; - } - - header("HTTP/1.0 $header"); - - if ($mode == "development") { - die("[img.php] $msg"); - } - - error_log("[img.php] $msg"); - die("HTTP/1.0 $header"); -} - - - -/** - * Custom exception handler. - */ -set_exception_handler(function ($exception) { - errorPage( - "

img.php: Uncaught exception:

" - . $exception->getMessage() - . "

"
-        . $exception->getTraceAsString()
-        . "
", - 500 - ); -}); - - - -/** - * Get input from query string or return default value if not set. - * - * @param mixed $key as string or array of string values to look for in $_GET. - * @param mixed $default value to return when $key is not set in $_GET. - * - * @return mixed value from $_GET or default value. - */ -function get($key, $default = null) -{ - if (is_array($key)) { - foreach ($key as $val) { - if (isset($_GET[$val])) { - return $_GET[$val]; - } - } - } elseif (isset($_GET[$key])) { - return $_GET[$key]; - } - return $default; -} - - - -/** - * Get input from query string and set to $defined if defined or else $undefined. - * - * @param mixed $key as string or array of string values to look for in $_GET. - * @param mixed $defined value to return when $key is set in $_GET. - * @param mixed $undefined value to return when $key is not set in $_GET. - * - * @return mixed value as $defined or $undefined. - */ -function getDefined($key, $defined, $undefined) -{ - return get($key) === null ? $undefined : $defined; -} - - - -/** - * Get value from config array or default if key is not set in config array. - * - * @param string $key the key in the config array. - * @param mixed $default value to be default if $key is not set in config. - * - * @return mixed value as $config[$key] or $default. - */ -function getConfig($key, $default) -{ - global $config; - return isset($config[$key]) - ? $config[$key] - : $default; -} - - - -/** - * Log when verbose mode, when used without argument it returns the result. - * - * @param string $msg to log. - * - * @return void or array. - */ -function verbose($msg = null) -{ - global $verbose, $verboseFile; - static $log = array(); - - if (!($verbose || $verboseFile)) { - return; - } - - if (is_null($msg)) { - return $log; - } - - $log[] = $msg; -} - - - /** * Get configuration options from file, if the file exists, else use $config * if its defined or create an empty $config. @@ -4002,13 +4296,26 @@ if (is_file($configFile)) { +/** + * Setup the autoloader, but not when using a bundle. + */ +if (!defined("CIMAGE_BUNDLE")) { + if (!isset($config["autoloader"])) { + die("CImage: Missing autoloader."); + } + + require $config["autoloader"]; +} + + + /** * verbose, v - do a verbose dump of what happens * vf - do verbose dump to file */ $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); -verbose("img.php version = $version"); +verbose("img.php version = " . CIMAGE_VERSION); @@ -4166,24 +4473,11 @@ verbose("referer host = $refererHost"); -/** - * Get the source files. - */ -$autoloader = getConfig('autoloader', false); -$cimageClass = getConfig('cimage_class', false); - -if ($autoloader) { - require $autoloader; -} elseif ($cimageClass) { - require $cimageClass; -} - - - /** * Create the class for the image. */ -$img = new CImage(); +$CImage = getConfig('CImage', 'CImage'); +$img = new $CImage(); $img->setVerbose($verbose || $verboseFile); @@ -4191,12 +4485,46 @@ $img->setVerbose($verbose || $verboseFile); /** * Get the cachepath from config. */ +$CCache = getConfig('CCache', 'CCache'); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); -$cache = new CCache(); +$cache = new $CCache(); $cache->setDir($cachePath); +/** + * no-cache, nc - skip the cached version and process and create a new version in cache. + */ +$useCache = getDefined(array('no-cache', 'nc'), false, true); + +verbose("use cache = $useCache"); + + + +/** + * Prepare fast track cache for swriting cache items. + */ +$fastTrackCache = "fasttrack"; +$allowFastTrackCache = getConfig('fast_track_allow', false); + +$CFastTrackCache = getConfig('CFastTrackCache', 'CFastTrackCache'); +$ftc = new $CFastTrackCache(); +$ftc->setCacheDir($cache->getPathToSubdir($fastTrackCache)) + ->enable($allowFastTrackCache) + ->setFilename(array('no-cache', 'nc')); +$img->injectDependency("fastTrackCache", $ftc); + + + +/** + * Load and output images from fast track cache, if items are available + * in cache. + */ +if ($useCache && $allowFastTrackCache) { + $ftc->output(); +} + + /** * Allow or disallow remote download of images from other servers. @@ -4542,15 +4870,6 @@ verbose("use original = $useOriginal"); -/** - * no-cache, nc - skip the cached version and process and create a new version in cache. - */ -$useCache = getDefined(array('no-cache', 'nc'), false, true); - -verbose("use cache = $useCache"); - - - /** * quality, q - set level of quality for jpeg images */ @@ -4900,7 +5219,7 @@ if ($srgb || $srgbDefault) { * Display status */ if ($status) { - $text = "img.php version = $version\n"; + $text = "img.php version = " . CIMAGE_VERSION . "\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; @@ -4917,6 +5236,9 @@ if ($status) { $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; + $res = $cache->getStatusOfSubdir($fasttrackCache); + $text .= "Cache fasttrack $res\n"; + $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; diff --git a/webroot/imgf.php b/webroot/imgf.php index 7f5e2b9..72c95d7 100644 --- a/webroot/imgf.php +++ b/webroot/imgf.php @@ -3,37 +3,42 @@ * Fast track cache, read entries from the cache before processing image * the ordinary way. */ - // Include debug functions -function debug1($msg) -{ - $file = "/tmp/cimage"; - if (!is_writable($file)) { - return; - } - $msg .= ":" . count(get_included_files()); - $msg .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; - $msg .= ":" . (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 6) . "ms"; - file_put_contents($file, "$msg\n", FILE_APPEND); + +// Load the config file or use defaults +$configFile = __DIR__ + . "/" + . basename(__FILE__, ".php") + . "_config.php"; + +if (is_file($configFile) && is_readable($configFile)) { + $config = require $configFile; +} elseif (!isset($config)) { + $config = array( + "cache_path" => __DIR__ . "/../cache/", + ); } -//$useCache = getDefined(array('no-cache', 'nc'), false, true); - - -$cachePath = __DIR__ . "/../cache/fasttrack"; +// Prepare to check if fast cache should be used +$cachePath = $config["cache_path"] . "/fasttrack"; $query = $_GET; +// Do not use cache when no-cache is active +$useCache = !(array_key_exists("no-cache", $query) || array_key_exists("nc", $query)); + // Remove parts from querystring that should not be part of filename $clear = array("nc", "no-cache"); foreach ($clear as $value) { unset($query[$value]); } +// Create the cache filename arsort($query); $queryAsString = http_build_query($query); - $filename = md5($queryAsString); $filename = "$cachePath/$filename"; -if (is_readable($filename)) { + +// Check cached item, if any +if ($useCache && is_readable($filename)) { $item = json_decode(file_get_contents($filename), true); if (is_readable($item["source"])) { @@ -44,7 +49,6 @@ if (is_readable($filename)) { if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); - debug1("really fast track 304"); exit; } @@ -52,12 +56,10 @@ if (is_readable($filename)) { header($value); } - debug1("really fast track 200"); readfile($item["source"]); exit; } } - // No fast track cache, proceed as usual include __DIR__ . "/img.php"; diff --git a/webroot/imgp.php b/webroot/imgp.php index 06e70b1..02da057 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -10,6 +10,7 @@ * @link https://github.com/mosbth/cimage * */ +define("CIMAGE_BUNDLE", true); /** @@ -36,6 +37,180 @@ $config = array( +// Version of cimage and img.php +define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); + +// For CRemoteImage +define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); + + + +/** + * General functions to use in img.php. + */ + + + +/** + * Trace and log execution to logfile, useful for debugging and development. + * + * @param string $msg message to log to file. + * + * @return void + */ +function trace($msg) +{ + $file = "/tmp/cimage"; + if (!is_writable($file)) { + die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); + } + + $msg .= ":" . count(get_included_files()); + $msg .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; + $msg .= ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; + file_put_contents($file, "$msg\n", FILE_APPEND); +} + + + +/** + * Display error message. + * + * @param string $msg to display. + * @param int $type of HTTP error to display. + * + * @return void + */ +function errorPage($msg, $type = 500) +{ + global $mode; + + switch ($type) { + case 403: + $header = "403 Forbidden"; + break; + case 404: + $header = "404 Not Found"; + break; + default: + $header = "500 Internal Server Error"; + } + + if ($mode == "strict") { + $header = "404 Not Found"; + } + + header("HTTP/1.0 $header"); + + if ($mode == "development") { + die("[img.php] $msg"); + } + + error_log("[img.php] $msg"); + die("HTTP/1.0 $header"); +} + + + +/** + * Custom exception handler. + */ +set_exception_handler(function ($exception) { + errorPage( + "

img.php: Uncaught exception:

" + . $exception->getMessage() + . "

"
+        . $exception->getTraceAsString()
+        . "
", + 500 + ); +}); + + + +/** + * Get input from query string or return default value if not set. + * + * @param mixed $key as string or array of string values to look for in $_GET. + * @param mixed $default value to return when $key is not set in $_GET. + * + * @return mixed value from $_GET or default value. + */ +function get($key, $default = null) +{ + if (is_array($key)) { + foreach ($key as $val) { + if (isset($_GET[$val])) { + return $_GET[$val]; + } + } + } elseif (isset($_GET[$key])) { + return $_GET[$key]; + } + return $default; +} + + + +/** + * Get input from query string and set to $defined if defined or else $undefined. + * + * @param mixed $key as string or array of string values to look for in $_GET. + * @param mixed $defined value to return when $key is set in $_GET. + * @param mixed $undefined value to return when $key is not set in $_GET. + * + * @return mixed value as $defined or $undefined. + */ +function getDefined($key, $defined, $undefined) +{ + return get($key) === null ? $undefined : $defined; +} + + + +/** + * Get value from config array or default if key is not set in config array. + * + * @param string $key the key in the config array. + * @param mixed $default value to be default if $key is not set in config. + * + * @return mixed value as $config[$key] or $default. + */ +function getConfig($key, $default) +{ + global $config; + return isset($config[$key]) + ? $config[$key] + : $default; +} + + + +/** + * Log when verbose mode, when used without argument it returns the result. + * + * @param string $msg to log. + * + * @return void or array. + */ +function verbose($msg = null) +{ + global $verbose, $verboseFile; + static $log = array(); + + if (!($verbose || $verboseFile)) { + return; + } + + if (is_null($msg)) { + return $log; + } + + $log[] = $msg; +} + + + /** * Get a image from a remote server using HTTP GET and If-Modified-Since. * @@ -1303,6 +1478,12 @@ class CImage private $useCache = true; + /** + * Disable the fasttrackCacke to start with, inject an object to enable it. + */ + private $fastTrackCache = null; + + /* * Set whitelist for valid hostnames from where remote source can be @@ -1370,6 +1551,25 @@ class CImage + /** + * Inject object and use it, must be available as member. + * + * @param string $property to set as object. + * @param object $object to set to property. + * + * @return $this + */ + public function injectDependency($property, $object) + { + if (!property_exists($this, $property)) { + $this->raiseError("Injecting unknown property."); + } + $this->$property = $object; + return $this; + } + + + /** * Set verbose mode. * @@ -2630,9 +2830,6 @@ class CImage && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); - //$cropX = round(($this->cropWidth/2) - ($this->width/2)); - //$cropY = round(($this->cropHeight/2) - ($this->height/2)); - $posX = 0; $posY = 0; $cropX = 0; @@ -2663,7 +2860,6 @@ class CImage $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); - //imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); @@ -2746,7 +2942,6 @@ class CImage $cropX = round(($this->width - $this->newWidth) / 2); } - //$this->log("posX=$posX, posY=$posY, cropX=$cropX, cropY=$cropY."); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; @@ -3449,7 +3644,7 @@ class CImage /** - * Add HTTP header for putputting together with image. + * Add HTTP header for output together with image. * * @param string $type the header type such as "Cache-Control" * @param string $value the value to use @@ -3500,14 +3695,20 @@ class CImage // Get image modification time clearstatcache(); $lastModified = filemtime($file); - $gmdate = gmdate("D, d M Y H:i:s", $lastModified); + $lastModifiedFormat = "D, d M Y H:i:s"; + $gmdate = gmdate($lastModifiedFormat, $lastModified); if (!$this->verbose) { - header('Last-Modified: ' . $gmdate . " GMT"); + $header = "Last-Modified: $gmdate GMT"; + header($header); + $this->fastTrackCache->addHeader($header); + $this->fastTrackCache->setLastModified($lastModified); } - foreach($this->HTTPHeader as $key => $val) { - header("$key: $val"); + foreach ($this->HTTPHeader as $key => $val) { + $header = "$key: $val"; + header($header); + $this->fastTrackCache->addHeader($header); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { @@ -3539,8 +3740,16 @@ class CImage } } - header("Content-type: $mime"); - header("Content-length: $size"); + $header = "Content-type: $mime"; + header($header); + $this->fastTrackCache->addHeaderOnOutput($header); + + $header = "Content-length: $size"; + header($header); + $this->fastTrackCache->addHeaderOnOutput($header); + + $this->fastTrackCache->setSource($file); + $this->fastTrackCache->writeToCache(); readfile($file); } @@ -3834,6 +4043,236 @@ class CCache +/** + * Enable a fast track cache with a json representation of the image delivery. + * + */ +class CFastTrackCache +{ + /** + * Cache is disabled to start with. + */ + private $enabled = false; + + + + /** + * Path to the cache directory. + */ + private $path; + + + + /** + * Filename of current cache item. + */ + private $filename; + + + + /** + * Container with items to store as cached item. + */ + private $container; + + + + /** + * Enable or disable cache. + * + * @param boolean $enable set to true to enable, false to disable + * + * @return $this + */ + public function enable($enabled) + { + $this->enabled = $enabled; + return $this; + } + + + + /** + * Set the path to the cache dir which must exist. + * + * @param string $path to the cache dir. + * + * @throws Exception when $path is not a directory. + * + * @return $this + */ + public function setCacheDir($path) + { + if (!is_dir($path)) { + throw new Exception("Cachedir is not a directory."); + } + + $this->path = rtrim($path, "/"); + + return $this; + } + + + + /** + * Set the filename to store in cache, use the querystring to create that + * filename. + * + * @param array $clear items to clear in $_GET when creating the filename. + * + * @return string as filename created. + */ + public function setFilename($clear) + { + $query = $_GET; + + // Remove parts from querystring that should not be part of filename + foreach ($clear as $value) { + unset($query[$value]); + } + + arsort($query); + $queryAsString = http_build_query($query); + + $this->filename = md5($queryAsString); + + return $this->filename; + } + + + + /** + * Add header items. + * + * @param string $header add this as header. + * + * @return $this + */ + public function addHeader($header) + { + $this->container["header"][] = $header; + return $this; + } + + + + /** + * Add header items on output, these are not output when 304. + * + * @param string $header add this as header. + * + * @return $this + */ + public function addHeaderOnOutput($header) + { + $this->container["header-output"][] = $header; + return $this; + } + + + + /** + * Set path to source image to. + * + * @param string $source path to source image file. + * + * @return $this + */ + public function setSource($source) + { + $this->container["source"] = $source; + return $this; + } + + + + /** + * Set last modified of source image, use to check for 304. + * + * @param string $lastModified + * + * @return $this + */ + public function setLastModified($lastModified) + { + $this->container["last-modified"] = $lastModified; + return $this; + } + + + + /** + * Get filename of cached item. + * + * @return string as filename. + */ + public function getFilename() + { + return $this->path . "/" . $this->filename; + } + + + + /** + * Write current item to cache. + * + * @return boolean if cache file was written. + */ + public function writeToCache() + { + if (!$this->enabled) { + return false; + } + + if (is_dir($this->path) && is_writable($this->path)) { + $filename = $this->getFilename(); + return file_put_contents($filename, json_encode($this->container)) !== false; + } + + return false; + } + + + + /** + * Output current item from cache, if available. + * + * @return void + */ + public function output() + { + $filename = $this->getFilename(); + if (!is_readable($filename)) { + return; + } + + $item = json_decode(file_get_contents($filename), true); + + if (!is_readable($item["source"])) { + return; + } + + foreach ($item["header"] as $value) { + header($value); + } + + if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) + && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { + header("HTTP/1.0 304 Not Modified"); + exit; + } + + foreach ($item["header-output"] as $value) { + header($value); + } + + readfile($item["source"]); + exit; + } +} + + + /** * Resize and crop images on the fly, store generated images in a cache. * @@ -3843,151 +4282,6 @@ class CCache * */ -$version = "v0.7.11 (2016-04-18)"; - -// For CRemoteImage -define("CIMAGE_USER_AGENT", "CImage/$version"); - - - -/** - * Display error message. - * - * @param string $msg to display. - * @param int $type of HTTP error to display. - * - * @return void - */ -function errorPage($msg, $type = 500) -{ - global $mode; - - switch ($type) { - case 403: - $header = "403 Forbidden"; - break; - case 404: - $header = "404 Not Found"; - break; - default: - $header = "500 Internal Server Error"; - } - - if ($mode == "strict") { - $header = "404 Not Found"; - } - - header("HTTP/1.0 $header"); - - if ($mode == "development") { - die("[img.php] $msg"); - } - - error_log("[img.php] $msg"); - die("HTTP/1.0 $header"); -} - - - -/** - * Custom exception handler. - */ -set_exception_handler(function ($exception) { - errorPage( - "

img.php: Uncaught exception:

" - . $exception->getMessage() - . "

"
-        . $exception->getTraceAsString()
-        . "
", - 500 - ); -}); - - - -/** - * Get input from query string or return default value if not set. - * - * @param mixed $key as string or array of string values to look for in $_GET. - * @param mixed $default value to return when $key is not set in $_GET. - * - * @return mixed value from $_GET or default value. - */ -function get($key, $default = null) -{ - if (is_array($key)) { - foreach ($key as $val) { - if (isset($_GET[$val])) { - return $_GET[$val]; - } - } - } elseif (isset($_GET[$key])) { - return $_GET[$key]; - } - return $default; -} - - - -/** - * Get input from query string and set to $defined if defined or else $undefined. - * - * @param mixed $key as string or array of string values to look for in $_GET. - * @param mixed $defined value to return when $key is set in $_GET. - * @param mixed $undefined value to return when $key is not set in $_GET. - * - * @return mixed value as $defined or $undefined. - */ -function getDefined($key, $defined, $undefined) -{ - return get($key) === null ? $undefined : $defined; -} - - - -/** - * Get value from config array or default if key is not set in config array. - * - * @param string $key the key in the config array. - * @param mixed $default value to be default if $key is not set in config. - * - * @return mixed value as $config[$key] or $default. - */ -function getConfig($key, $default) -{ - global $config; - return isset($config[$key]) - ? $config[$key] - : $default; -} - - - -/** - * Log when verbose mode, when used without argument it returns the result. - * - * @param string $msg to log. - * - * @return void or array. - */ -function verbose($msg = null) -{ - global $verbose, $verboseFile; - static $log = array(); - - if (!($verbose || $verboseFile)) { - return; - } - - if (is_null($msg)) { - return $log; - } - - $log[] = $msg; -} - - - /** * Get configuration options from file, if the file exists, else use $config * if its defined or create an empty $config. @@ -4002,13 +4296,26 @@ if (is_file($configFile)) { +/** + * Setup the autoloader, but not when using a bundle. + */ +if (!defined("CIMAGE_BUNDLE")) { + if (!isset($config["autoloader"])) { + die("CImage: Missing autoloader."); + } + + require $config["autoloader"]; +} + + + /** * verbose, v - do a verbose dump of what happens * vf - do verbose dump to file */ $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); -verbose("img.php version = $version"); +verbose("img.php version = " . CIMAGE_VERSION); @@ -4166,24 +4473,11 @@ verbose("referer host = $refererHost"); -/** - * Get the source files. - */ -$autoloader = getConfig('autoloader', false); -$cimageClass = getConfig('cimage_class', false); - -if ($autoloader) { - require $autoloader; -} elseif ($cimageClass) { - require $cimageClass; -} - - - /** * Create the class for the image. */ -$img = new CImage(); +$CImage = getConfig('CImage', 'CImage'); +$img = new $CImage(); $img->setVerbose($verbose || $verboseFile); @@ -4191,12 +4485,46 @@ $img->setVerbose($verbose || $verboseFile); /** * Get the cachepath from config. */ +$CCache = getConfig('CCache', 'CCache'); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); -$cache = new CCache(); +$cache = new $CCache(); $cache->setDir($cachePath); +/** + * no-cache, nc - skip the cached version and process and create a new version in cache. + */ +$useCache = getDefined(array('no-cache', 'nc'), false, true); + +verbose("use cache = $useCache"); + + + +/** + * Prepare fast track cache for swriting cache items. + */ +$fastTrackCache = "fasttrack"; +$allowFastTrackCache = getConfig('fast_track_allow', false); + +$CFastTrackCache = getConfig('CFastTrackCache', 'CFastTrackCache'); +$ftc = new $CFastTrackCache(); +$ftc->setCacheDir($cache->getPathToSubdir($fastTrackCache)) + ->enable($allowFastTrackCache) + ->setFilename(array('no-cache', 'nc')); +$img->injectDependency("fastTrackCache", $ftc); + + + +/** + * Load and output images from fast track cache, if items are available + * in cache. + */ +if ($useCache && $allowFastTrackCache) { + $ftc->output(); +} + + /** * Allow or disallow remote download of images from other servers. @@ -4542,15 +4870,6 @@ verbose("use original = $useOriginal"); -/** - * no-cache, nc - skip the cached version and process and create a new version in cache. - */ -$useCache = getDefined(array('no-cache', 'nc'), false, true); - -verbose("use cache = $useCache"); - - - /** * quality, q - set level of quality for jpeg images */ @@ -4900,7 +5219,7 @@ if ($srgb || $srgbDefault) { * Display status */ if ($status) { - $text = "img.php version = $version\n"; + $text = "img.php version = " . CIMAGE_VERSION . "\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; @@ -4917,6 +5236,9 @@ if ($status) { $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; + $res = $cache->getStatusOfSubdir($fasttrackCache); + $text .= "Cache fasttrack $res\n"; + $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; diff --git a/webroot/imgs.php b/webroot/imgs.php index bb4f099..53e6f86 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -1,17 +1,17 @@ 'strict', ); class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at + define("CIMAGE_BUNDLE", true); $config = array( 'mode' => 'strict', ); define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); function trace($msg) { $file = "/tmp/cimage"; if (!is_writable($file)) { die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); } $msg .= ":" . count(get_included_files()); $msg .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $msg .= ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; file_put_contents($file, "$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType, $this->attr) = getimagesize($file); if (empty($info)) { throw new Exception("The file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . image_type_to_mime_type($this->fileType)); } return $this; } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } else { $this->newWidth = $width; $this->newHeight = $height; } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails($this->pathToImage); $this->image = imagecreatefromstring(file_get_contents($this->pathToImage)); if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newWidth < $this->width) { $cropX = round(($this->width/2) - ($this->newWidth/2)); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } if ($this->newHeight < $this->height) { $cropY = round(($this->height/2) - ($this->newHeight/2)); } $this->log(" cwidth: $this->cropWidth"); $this->log(" cheight: $this->cropHeight"); $this->log(" nwidth: $this->newWidth"); $this->log(" nheight: $this->newHeight"); $this->log(" width: $this->width"); $this->log(" height: $this->height"); $this->log(" posX: $posX"); $this->log(" posY: $posY"); $this->log(" cropX: $cropX"); $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with 11 float values. Got $expression." ); } array_walk($part, function ($item, $key) { if (!is_numeric($item)) { throw new Exception("Argument to convolve expression should be float but is not."); } }); return array( array( array($part[0], $part[1], $part[2]), array($part[3], $part[4], $part[5]), array($part[6], $part[7], $part[8]), ), $part[9], $part[10], ); } public function addConvolveExpressions($options) { $this->convolves = array_merge($this->convolves, $options); return $this; } public function imageConvolution($options = null) { $options = $options ? $options : $this->convolve; $this->log("Convolution with '$options'"); $options = explode(":", $options); foreach ($options as $option) { list($matrix, $divisor, $offset) = $this->createConvolveArguments($option); imageconvolution($this->image, $matrix, $divisor, $offset); } return $this; } public function setDefaultBackgroundColor($color) { $this->log("Setting default background color to '$color'."); if (!(strlen($color) == 6 || strlen($color) == 8)) { throw new Exception( "Background color needs a hex value of 6 or 8 digits. 000000-FFFFFF or 00000000-FFFFFF7F. Current value was: '$color'." ); } $red = hexdec(substr($color, 0, 2)); $green = hexdec(substr($color, 2, 2)); $blue = hexdec(substr($color, 4, 2)); $alpha = (strlen($color) == 8) ? hexdec(substr($color, 6, 2)) : null; if (($red < 0 || $red > 255) || ($green < 0 || $green > 255) || ($blue < 0 || $blue > 255) || ($alpha < 0 || $alpha > 127) ) { throw new Exception( "Background color out of range. Red, green blue should be 00-FF and alpha should be 00-7F. - Current value was: '$color'." ); } $this->bgColor = strtolower($color); $this->bgColorDefault = array( 'red' => $red, 'green' => $green, 'blue' => $blue, 'alpha' => $alpha ); return $this; } private function getBackgroundColor($img = null) { $img = isset($img) ? $img : $this->image; if ($this->bgColorDefault) { $red = $this->bgColorDefault['red']; $green = $this->bgColorDefault['green']; $blue = $this->bgColorDefault['blue']; $alpha = $this->bgColorDefault['alpha']; if ($alpha) { $color = imagecolorallocatealpha($img, $red, $green, $blue, $alpha); } else { $color = imagecolorallocate($img, $red, $green, $blue); } return $color; } else { return 0; } } private function createImageKeepTransparency($width, $height) { $this->log("Creating a new working image width={$width}px, height={$height}px."); $img = imagecreatetruecolor($width, $height); imagealphablending($img, false); imagesavealpha($img, true); $index = $this->image ? imagecolortransparent($this->image) : -1; if ($index != -1) { imagealphablending($img, true); $transparent = imagecolorsforindex($this->image, $index); $color = imagecolorallocatealpha($img, $transparent['red'], $transparent['green'], $transparent['blue'], $transparent['alpha']); imagefill($img, 0, 0, $color); $index = imagecolortransparent($img, $color); $this->Log("Detected transparent color = " . implode(", ", $transparent) . " at index = $index"); } elseif ($this->bgColorDefault) { $color = $this->getBackgroundColor($img); imagefill($img, 0, 0, $color); $this->Log("Filling image with background color."); } return $img; } public function setPostProcessingOptions($options) { if (isset($options['jpeg_optimize']) && $options['jpeg_optimize']) { $this->jpegOptimizeCmd = $options['jpeg_optimize_cmd']; } else { $this->jpegOptimizeCmd = null; } if (isset($options['png_filter']) && $options['png_filter']) { $this->pngFilterCmd = $options['png_filter_cmd']; } else { $this->pngFilterCmd = null; } if (isset($options['png_deflate']) && $options['png_deflate']) { $this->pngDeflateCmd = $options['png_deflate_cmd']; } else { $this->pngDeflateCmd = null; } return $this; } protected function getTargetImageExtension() { if (isset($this->extension)) { return strtolower($this->extension); } else { return substr(image_type_to_extension($this->fileType), 1); } } public function save($src = null, $base = null, $overwrite = true) { if (isset($src)) { $this->setTarget($src, $base); } if ($overwrite === false && is_file($this->cacheFileName)) { $this->Log("Not overwriting file since its already exists and \$overwrite if false."); return; } is_writable($this->saveFolder) or $this->raiseError('Target directory is not writable.'); $type = $this->getTargetImageExtension(); $this->Log("Saving image as " . $type); switch($type) { case 'jpeg': case 'jpg': $this->Log("Saving image as JPEG to cache using quality = {$this->quality}."); imagejpeg($this->image, $this->cacheFileName, $this->quality); if ($this->jpegOptimizeCmd) { if ($this->verbose) { clearstatcache(); $this->log("Filesize before optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->jpegOptimizeCmd . " -outfile $this->cacheFileName $this->cacheFileName"; exec($cmd, $res); $this->log($cmd); $this->log($res); } break; case 'gif': $this->Log("Saving image as GIF to cache."); imagegif($this->image, $this->cacheFileName); break; case 'png': default: $this->Log("Saving image as PNG to cache using compression = {$this->compress}."); imagealphablending($this->image, false); imagesavealpha($this->image, true); imagepng($this->image, $this->cacheFileName, $this->compress); if ($this->pngFilterCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before filter optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngFilterCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } if ($this->pngDeflateCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before deflate optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngDeflateCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } break; } if ($this->verbose) { clearstatcache(); $this->log("Saved image to cache."); $this->log(" Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->ColorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index > 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function convert2sRGBColorSpace($src, $dir, $cache, $iccFile, $useCache = true) { if ($this->verbose) { $this->log("# Converting image to sRGB colorspace."); } if (!class_exists("Imagick")) { $this->log(" Ignoring since Imagemagick is not installed."); return false; } $this->setSaveFolder($cache) ->setSource($src, $dir) ->generateFilename(null, false, 'srgb_'); if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { $this->log(" Using cached version: " . $this->cacheFileName); return $this->cacheFileName; } } if (is_writable($this->saveFolder)) { $image = new Imagick($this->pathToImage); $colorspace = $image->getImageColorspace(); $this->log(" Current colorspace: " . $colorspace); $profiles = $image->getImageProfiles('*', false); $hasICCProfile = (array_search('icc', $profiles) !== false); $this->log(" Has ICC color profile: " . ($hasICCProfile ? "YES" : "NO")); if ($colorspace != Imagick::COLORSPACE_SRGB || $hasICCProfile) { $this->log(" Converting to sRGB."); $sRGBicc = file_get_contents($iccFile); $image->profileImage('icc', $sRGBicc); $image->transformImageColorspace(Imagick::COLORSPACE_SRGB); $image->writeImage($this->cacheFileName); return $this->cacheFileName; } } return false; } public function linkToCacheFile($alias) { if ($alias === null) { $this->log("Ignore creating alias."); return $this; } if (is_readable($alias)) { unlink($alias); } $res = link($this->cacheFileName, $alias); if ($res) { $this->log("Created an alias as: $alias"); } else { $this->log("Failed to create the alias: $alias"); } return $this; } public function addHTTPHeader($type, $value) { $this->HTTPHeader[$type] = $value; } public function output($file = null, $format = null) { if (is_null($file)) { $file = $this->cacheFileName; } if (is_null($format)) { $format = $this->outputFormat; } $this->log("Output format is: $format"); if (!$this->verbose && $format == 'json') { header('Content-type: application/json'); echo $this->json($file); exit; } elseif ($format == 'ascii') { header('Content-type: text/plain'); echo $this->ascii($file); exit; } $this->log("Outputting image: $file"); clearstatcache(); $lastModified = filemtime($file); $gmdate = gmdate("D, d M Y H:i:s", $lastModified); if (!$this->verbose) { header('Last-Modified: ' . $gmdate . " GMT"); } foreach($this->HTTPHeader as $key => $val) { header("$key: $val"); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { $this->log("304 not modified"); $this->verboseOutput(); exit; } header("HTTP/1.0 304 Not Modified"); } else { $info = getimagesize($file); !empty($info) or $this->raiseError("The file doesn't seem to be an image."); $mime = $info['mime']; $size = filesize($file); if ($this->verbose) { $this->log("Last-Modified: " . $gmdate . " GMT"); $this->log("Content-type: " . $mime); $this->log("Content-length: " . $size); $this->verboseOutput(); if (is_null($this->verboseFileName)) { exit; } } header("Content-type: $mime"); header("Content-length: $size"); readfile($file); } exit; } public function json($file = null) { $file = $file ? $file : $this->cacheFileName; $details = array(); clearstatcache(); $details['src'] = $this->imageSrc; $lastModified = filemtime($this->pathToImage); $details['srcGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $details['cache'] = basename($this->cacheFileName); $lastModified = filemtime($this->cacheFileName); $details['cacheGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $this->load($file); $details['filename'] = basename($file); $details['mimeType'] = image_type_to_mime_type($this->fileType); $details['width'] = $this->width; $details['height'] = $this->height; $details['aspectRatio'] = round($this->width / $this->height, 3); $details['size'] = filesize($file); $details['colors'] = $this->colorsTotal($this->image); $details['includedFiles'] = count(get_included_files()); $details['memoryPeek'] = round(memory_get_peak_usage()/1024/1024, 3) . " MB" ; $details['memoryCurrent'] = round(memory_get_usage()/1024/1024, 3) . " MB"; $details['memoryLimit'] = ini_get('memory_limit'); if (isset($_SERVER['REQUEST_TIME_FLOAT'])) { $details['loadTime'] = (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 3) . "s"; } if ($details['mimeType'] == 'image/png') { $details['pngType'] = $this->getPngTypeAsString(null, $file); } $options = null; if (defined("JSON_PRETTY_PRINT") && defined("JSON_UNESCAPED_SLASHES")) { $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES; } return json_encode($details, $options); } public function setAsciiOptions($options = array()) { $this->asciiOptions = $options; } public function ascii($file = null) { $file = $file ? $file : $this->cacheFileName; $asciiArt = new CAsciiArt(); $asciiArt->setOptions($this->asciiOptions); return $asciiArt->createFromFile($file); } public function log($message) { if ($this->verbose) { $this->log[] = $message; } return $this; } public function setVerboseToFile($fileName) { $this->log("Setting verbose output to file."); $this->verboseFileName = $fileName; } private function verboseOutput() { $log = null; $this->log("As JSON: \n" . $this->json()); $this->log("Memory peak: " . round(memory_get_peak_usage() /1024/1024) . "M"); $this->log("Memory limit: " . ini_get('memory_limit')); $included = get_included_files(); $this->log("Included files: " . count($included)); foreach ($this->log as $val) { if (is_array($val)) { foreach ($val as $val1) { $log .= htmlentities($val1) . '
'; } } else { $log .= htmlentities($val) . '
'; } } if (!is_null($this->verboseFileName)) { file_put_contents( $this->verboseFileName, str_replace("
", "\n", $log) ); } else { echo <<bgColor = strtolower($color); $this->bgColorDefault = array( 'red' => $red, 'green' => $green, 'blue' => $blue, 'alpha' => $alpha ); return $this; } private function getBackgroundColor($img = null) { $img = isset($img) ? $img : $this->image; if ($this->bgColorDefault) { $red = $this->bgColorDefault['red']; $green = $this->bgColorDefault['green']; $blue = $this->bgColorDefault['blue']; $alpha = $this->bgColorDefault['alpha']; if ($alpha) { $color = imagecolorallocatealpha($img, $red, $green, $blue, $alpha); } else { $color = imagecolorallocate($img, $red, $green, $blue); } return $color; } else { return 0; } } private function createImageKeepTransparency($width, $height) { $this->log("Creating a new working image width={$width}px, height={$height}px."); $img = imagecreatetruecolor($width, $height); imagealphablending($img, false); imagesavealpha($img, true); $index = $this->image ? imagecolortransparent($this->image) : -1; if ($index != -1) { imagealphablending($img, true); $transparent = imagecolorsforindex($this->image, $index); $color = imagecolorallocatealpha($img, $transparent['red'], $transparent['green'], $transparent['blue'], $transparent['alpha']); imagefill($img, 0, 0, $color); $index = imagecolortransparent($img, $color); $this->Log("Detected transparent color = " . implode(", ", $transparent) . " at index = $index"); } elseif ($this->bgColorDefault) { $color = $this->getBackgroundColor($img); imagefill($img, 0, 0, $color); $this->Log("Filling image with background color."); } return $img; } public function setPostProcessingOptions($options) { if (isset($options['jpeg_optimize']) && $options['jpeg_optimize']) { $this->jpegOptimizeCmd = $options['jpeg_optimize_cmd']; } else { $this->jpegOptimizeCmd = null; } if (isset($options['png_filter']) && $options['png_filter']) { $this->pngFilterCmd = $options['png_filter_cmd']; } else { $this->pngFilterCmd = null; } if (isset($options['png_deflate']) && $options['png_deflate']) { $this->pngDeflateCmd = $options['png_deflate_cmd']; } else { $this->pngDeflateCmd = null; } return $this; } protected function getTargetImageExtension() { if (isset($this->extension)) { return strtolower($this->extension); } else { return substr(image_type_to_extension($this->fileType), 1); } } public function save($src = null, $base = null, $overwrite = true) { if (isset($src)) { $this->setTarget($src, $base); } if ($overwrite === false && is_file($this->cacheFileName)) { $this->Log("Not overwriting file since its already exists and \$overwrite if false."); return; } is_writable($this->saveFolder) or $this->raiseError('Target directory is not writable.'); $type = $this->getTargetImageExtension(); $this->Log("Saving image as " . $type); switch($type) { case 'jpeg': case 'jpg': $this->Log("Saving image as JPEG to cache using quality = {$this->quality}."); imagejpeg($this->image, $this->cacheFileName, $this->quality); if ($this->jpegOptimizeCmd) { if ($this->verbose) { clearstatcache(); $this->log("Filesize before optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->jpegOptimizeCmd . " -outfile $this->cacheFileName $this->cacheFileName"; exec($cmd, $res); $this->log($cmd); $this->log($res); } break; case 'gif': $this->Log("Saving image as GIF to cache."); imagegif($this->image, $this->cacheFileName); break; case 'png': default: $this->Log("Saving image as PNG to cache using compression = {$this->compress}."); imagealphablending($this->image, false); imagesavealpha($this->image, true); imagepng($this->image, $this->cacheFileName, $this->compress); if ($this->pngFilterCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before filter optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngFilterCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } if ($this->pngDeflateCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before deflate optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngDeflateCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } break; } if ($this->verbose) { clearstatcache(); $this->log("Saved image to cache."); $this->log(" Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->ColorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index > 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function convert2sRGBColorSpace($src, $dir, $cache, $iccFile, $useCache = true) { if ($this->verbose) { $this->log("# Converting image to sRGB colorspace."); } if (!class_exists("Imagick")) { $this->log(" Ignoring since Imagemagick is not installed."); return false; } $this->setSaveFolder($cache) ->setSource($src, $dir) ->generateFilename(null, false, 'srgb_'); if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { $this->log(" Using cached version: " . $this->cacheFileName); return $this->cacheFileName; } } if (is_writable($this->saveFolder)) { $image = new Imagick($this->pathToImage); $colorspace = $image->getImageColorspace(); $this->log(" Current colorspace: " . $colorspace); $profiles = $image->getImageProfiles('*', false); $hasICCProfile = (array_search('icc', $profiles) !== false); $this->log(" Has ICC color profile: " . ($hasICCProfile ? "YES" : "NO")); if ($colorspace != Imagick::COLORSPACE_SRGB || $hasICCProfile) { $this->log(" Converting to sRGB."); $sRGBicc = file_get_contents($iccFile); $image->profileImage('icc', $sRGBicc); $image->transformImageColorspace(Imagick::COLORSPACE_SRGB); $image->writeImage($this->cacheFileName); return $this->cacheFileName; } } return false; } public function linkToCacheFile($alias) { if ($alias === null) { $this->log("Ignore creating alias."); return $this; } if (is_readable($alias)) { unlink($alias); } $res = link($this->cacheFileName, $alias); if ($res) { $this->log("Created an alias as: $alias"); } else { $this->log("Failed to create the alias: $alias"); } return $this; } public function addHTTPHeader($type, $value) { $this->HTTPHeader[$type] = $value; } public function output($file = null, $format = null) { if (is_null($file)) { $file = $this->cacheFileName; } if (is_null($format)) { $format = $this->outputFormat; } $this->log("Output format is: $format"); if (!$this->verbose && $format == 'json') { header('Content-type: application/json'); echo $this->json($file); exit; } elseif ($format == 'ascii') { header('Content-type: text/plain'); echo $this->ascii($file); exit; } $this->log("Outputting image: $file"); clearstatcache(); $lastModified = filemtime($file); $lastModifiedFormat = "D, d M Y H:i:s"; $gmdate = gmdate($lastModifiedFormat, $lastModified); if (!$this->verbose) { $header = "Last-Modified: $gmdate GMT"; header($header); $this->fastTrackCache->addHeader($header); $this->fastTrackCache->setLastModified($lastModified); } foreach ($this->HTTPHeader as $key => $val) { $header = "$key: $val"; header($header); $this->fastTrackCache->addHeader($header); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { $this->log("304 not modified"); $this->verboseOutput(); exit; } header("HTTP/1.0 304 Not Modified"); } else { $info = getimagesize($file); !empty($info) or $this->raiseError("The file doesn't seem to be an image."); $mime = $info['mime']; $size = filesize($file); if ($this->verbose) { $this->log("Last-Modified: " . $gmdate . " GMT"); $this->log("Content-type: " . $mime); $this->log("Content-length: " . $size); $this->verboseOutput(); if (is_null($this->verboseFileName)) { exit; } } $header = "Content-type: $mime"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $header = "Content-length: $size"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); readfile($file); } exit; } public function json($file = null) { $file = $file ? $file : $this->cacheFileName; $details = array(); clearstatcache(); $details['src'] = $this->imageSrc; $lastModified = filemtime($this->pathToImage); $details['srcGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $details['cache'] = basename($this->cacheFileName); $lastModified = filemtime($this->cacheFileName); $details['cacheGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $this->load($file); $details['filename'] = basename($file); $details['mimeType'] = image_type_to_mime_type($this->fileType); $details['width'] = $this->width; $details['height'] = $this->height; $details['aspectRatio'] = round($this->width / $this->height, 3); $details['size'] = filesize($file); $details['colors'] = $this->colorsTotal($this->image); $details['includedFiles'] = count(get_included_files()); $details['memoryPeek'] = round(memory_get_peak_usage()/1024/1024, 3) . " MB" ; $details['memoryCurrent'] = round(memory_get_usage()/1024/1024, 3) . " MB"; $details['memoryLimit'] = ini_get('memory_limit'); if (isset($_SERVER['REQUEST_TIME_FLOAT'])) { $details['loadTime'] = (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 3) . "s"; } if ($details['mimeType'] == 'image/png') { $details['pngType'] = $this->getPngTypeAsString(null, $file); } $options = null; if (defined("JSON_PRETTY_PRINT") && defined("JSON_UNESCAPED_SLASHES")) { $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES; } return json_encode($details, $options); } public function setAsciiOptions($options = array()) { $this->asciiOptions = $options; } public function ascii($file = null) { $file = $file ? $file : $this->cacheFileName; $asciiArt = new CAsciiArt(); $asciiArt->setOptions($this->asciiOptions); return $asciiArt->createFromFile($file); } public function log($message) { if ($this->verbose) { $this->log[] = $message; } return $this; } public function setVerboseToFile($fileName) { $this->log("Setting verbose output to file."); $this->verboseFileName = $fileName; } private function verboseOutput() { $log = null; $this->log("As JSON: \n" . $this->json()); $this->log("Memory peak: " . round(memory_get_peak_usage() /1024/1024) . "M"); $this->log("Memory limit: " . ini_get('memory_limit')); $included = get_included_files(); $this->log("Included files: " . count($included)); foreach ($this->log as $val) { if (is_array($val)) { foreach ($val as $val1) { $log .= htmlentities($val1) . '
'; } } else { $log .= htmlentities($val) . '
'; } } if (!is_null($this->verboseFileName)) { file_put_contents( $this->verboseFileName, str_replace("
", "\n", $log) ); } else { echo <<CImage Verbose Output
{$log}
EOD; -} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } $version = "v0.7.11 (2016-04-18)"; define("CIMAGE_USER_AGENT", "CImage/$version"); function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = $version"); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $autoloader = getConfig('autoloader', false); $cimageClass = getConfig('cimage_class', false); if ($autoloader) { require $autoloader; } elseif ($cimageClass) { require $cimageClass; } $img = new CImage(); $img->setVerbose($verbose || $verboseFile); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new CCache(); $cache->setDir($cachePath); $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a +} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } class CFastTrackCache { private $enabled = false; private $path; private $filename; private $container; public function enable($enabled) { $this->enabled = $enabled; return $this; } public function setCacheDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = rtrim($path, "/"); return $this; } public function setFilename($clear) { $query = $_GET; foreach ($clear as $value) { unset($query[$value]); } arsort($query); $queryAsString = http_build_query($query); $this->filename = md5($queryAsString); return $this->filename; } public function addHeader($header) { $this->container["header"][] = $header; return $this; } public function addHeaderOnOutput($header) { $this->container["header-output"][] = $header; return $this; } public function setSource($source) { $this->container["source"] = $source; return $this; } public function setLastModified($lastModified) { $this->container["last-modified"] = $lastModified; return $this; } public function getFilename() { return $this->path . "/" . $this->filename; } public function writeToCache() { if (!$this->enabled) { return false; } if (is_dir($this->path) && is_writable($this->path)) { $filename = $this->getFilename(); return file_put_contents($filename, json_encode($this->container)) !== false; } return false; } public function output() { $filename = $this->getFilename(); if (!is_readable($filename)) { return; } $item = json_decode(file_get_contents($filename), true); if (!is_readable($item["source"])) { return; } foreach ($item["header"] as $value) { header($value); } if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); exit; } foreach ($item["header-output"] as $value) { header($value); } readfile($item["source"]); exit; } } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } if (!defined("CIMAGE_BUNDLE")) { if (!isset($config["autoloader"])) { die("CImage: Missing autoloader."); } require $config["autoloader"]; } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = " . CIMAGE_VERSION); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $CImage = getConfig('CImage', 'CImage'); $img = new $CImage(); $img->setVerbose($verbose || $verboseFile); $CCache = getConfig('CCache', 'CCache'); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new $CCache(); $cache->setDir($cachePath); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $fastTrackCache = "fasttrack"; $allowFastTrackCache = getConfig('fast_track_allow', false); $CFastTrackCache = getConfig('CFastTrackCache', 'CFastTrackCache'); $ftc = new $CFastTrackCache(); $ftc->setCacheDir($cache->getPathToSubdir($fastTrackCache)) ->enable($allowFastTrackCache) ->setFilename(array('no-cache', 'nc')); $img->injectDependency("fastTrackCache", $ftc); if ($useCache && $allowFastTrackCache) { $ftc->output(); } $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a matching file exists on the filesystem.', 404 ); } } if ($imagePathConstraint && !$dummyImage && !$remoteSource) { $imageDir = realpath($imagePath); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( 'Security constraint: Source image is not below the directory "image_path" - as specified in the config file img_config.php.', 404 ); } verbose("src = $srcImage"); $sizeConstant = getConfig('size_constant', function () { $sizes = array( 'w1' => 613, 'w2' => 630, ); $gridColumnWidth = 30; $gridGutterWidth = 10; $gridColumns = 24; for ($i = 1; $i <= $gridColumns; $i++) { $sizes['c' . $i] = ($gridColumnWidth + $gridGutterWidth) * $i - $gridGutterWidth; } return $sizes; }); $sizes = call_user_func($sizeConstant); $newWidth = get(array('width', 'w')); $maxWidth = getConfig('max_width', 2000); if (isset($sizes[$newWidth])) { $newWidth = $sizes[$newWidth]; } if ($newWidth[strlen($newWidth)-1] == '%') { is_numeric(substr($newWidth, 0, -1)) or errorPage('Width % not numeric.', 404); } else { is_null($newWidth) or ($newWidth > 10 && $newWidth <= $maxWidth) or errorPage('Width out of range.', 404); } verbose("new width = $newWidth"); $newHeight = get(array('height', 'h')); $maxHeight = getConfig('max_height', 2000); if (isset($sizes[$newHeight])) { $newHeight = $sizes[$newHeight]; } if ($newHeight[strlen($newHeight)-1] == '%') { is_numeric(substr($newHeight, 0, -1)) or errorPage('Height % out of range.', 404); } else { is_null($newHeight) or ($newHeight > 10 && $newHeight <= $maxHeight) or errorPage('Height out of range.', 404); } verbose("new height = $newHeight"); $aspectRatio = get(array('aspect-ratio', 'ar')); $aspectRatioConstant = getConfig('aspect_ratio_constant', function () { return array( '3:1' => 3/1, '3:2' => 3/2, '4:3' => 4/3, '8:5' => 8/5, '16:10' => 16/10, '16:9' => 16/9, 'golden' => 1.618, ); }); $aspectRatios = call_user_func($aspectRatioConstant); $negateAspectRatio = ($aspectRatio[0] == '!') ? true : false; $aspectRatio = $negateAspectRatio ? substr($aspectRatio, 1) : $aspectRatio; if (isset($aspectRatios[$aspectRatio])) { $aspectRatio = $aspectRatios[$aspectRatio]; } if ($negateAspectRatio) { $aspectRatio = 1 / $aspectRatio; } is_null($aspectRatio) or is_numeric($aspectRatio) or errorPage('Aspect ratio out of range', 404); verbose("aspect ratio = $aspectRatio"); $cropToFit = getDefined(array('crop-to-fit', 'cf'), true, false); verbose("crop to fit = $cropToFit"); $backgroundColor = getConfig('background_color', null); if ($backgroundColor) { $img->setDefaultBackgroundColor($backgroundColor); verbose("Using default background_color = $backgroundColor"); } $bgColor = get(array('bgColor', 'bg-color', 'bgc'), null); verbose("bgColor = $bgColor"); $resizeStrategy = getDefined(array('no-resample'), true, false); if ($resizeStrategy) { $img->setCopyResizeStrategy($img::RESIZE); verbose("Setting = Resize instead of resample"); } $fillToFit = get(array('fill-to-fit', 'ff'), null); verbose("fill-to-fit = $fillToFit"); if ($fillToFit !== null) { if (!empty($fillToFit)) { $bgColor = $fillToFit; verbose("fillToFit changed bgColor to = $bgColor"); } $fillToFit = true; verbose("fill-to-fit (fixed) = $fillToFit"); } $keepRatio = getDefined(array('no-ratio', 'nr', 'stretch'), false, true); verbose("keep ratio = $keepRatio"); $crop = get(array('crop', 'c')); verbose("crop = $crop"); $area = get(array('area', 'a')); verbose("area = $area"); $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { verbose("skip original is default ON"); $useOriginal = false; } verbose("use original = $useOriginal"); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $quality = get(array('quality', 'q')); $qualityDefault = getConfig('jpg_quality', null); is_null($quality) or ($quality > 0 and $quality <= 100) or errorPage('Quality out of range', 404); if (is_null($quality) && !is_null($qualityDefault)) { $quality = $qualityDefault; } verbose("quality = $quality"); $compress = get(array('compress', 'co')); $compressDefault = getConfig('png_compression', null); is_null($compress) or ($compress > 0 and $compress <= 9) or errorPage('Compress out of range', 404); if (is_null($compress) && !is_null($compressDefault)) { $compress = $compressDefault; } verbose("compress = $compress"); $saveAs = get(array('save-as', 'sa')); verbose("save as = $saveAs"); $scale = get(array('scale', 's')); is_null($scale) or ($scale >= 0 and $scale <= 400) or errorPage('Scale out of range', 404); verbose("scale = $scale"); $palette = getDefined(array('palette', 'p'), true, false); verbose("palette = $palette"); $sharpen = getDefined('sharpen', true, null); verbose("sharpen = $sharpen"); $emboss = getDefined('emboss', true, null); verbose("emboss = $emboss"); $blur = getDefined('blur', true, null); verbose("blur = $blur"); $rotateBefore = get(array('rotateBefore', 'rotate-before', 'rb')); is_null($rotateBefore) or ($rotateBefore >= -360 and $rotateBefore <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateBefore = $rotateBefore"); $rotateAfter = get(array('rotateAfter', 'rotate-after', 'ra', 'rotate', 'r')); is_null($rotateAfter) or ($rotateAfter >= -360 and $rotateAfter <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateAfter = $rotateAfter"); $autoRotate = getDefined(array('autoRotate', 'auto-rotate', 'aro'), true, false); verbose("autoRotate = $autoRotate"); $filters = array(); $filter = get(array('filter', 'f')); if ($filter) { $filters[] = $filter; } for ($i = 0; $i < 10; $i++) { $filter = get(array("filter{$i}", "f{$i}")); if ($filter) { $filters[] = $filter; } } verbose("filters = " . print_r($filters, 1)); $outputFormat = getDefined('json', 'json', null); $outputFormat = getDefined('ascii', 'ascii', $outputFormat); verbose("outputformat = $outputFormat"); if ($outputFormat == 'ascii') { $defaultOptions = getConfig( 'ascii-options', array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ) ); $options = get('ascii'); $options = explode(',', $options); if (isset($options[0]) && !empty($options[0])) { $defaultOptions['characterSet'] = $options[0]; } if (isset($options[1]) && !empty($options[1])) { $defaultOptions['scale'] = $options[1]; } if (isset($options[2]) && !empty($options[2])) { $defaultOptions['luminanceStrategy'] = $options[2]; } if (count($options) > 3) { unset($options[0]); unset($options[1]); unset($options[2]); $characterString = implode($options); $defaultOptions['customCharacterSet'] = $characterString; } $img->setAsciiOptions($defaultOptions); } $dpr = get(array('ppi', 'dpr', 'device-pixel-ratio'), 1); verbose("dpr = $dpr"); $convolve = get('convolve', null); $convolutionConstant = getConfig('convolution_constant', array()); if ($convolve && isset($convolutionConstant)) { $img->addConvolveExpressions($convolutionConstant); verbose("convolve constant = " . print_r($convolutionConstant, 1)); } verbose("convolve = " . print_r($convolve, 1)); $upscale = getDefined(array('no-upscale', 'nu'), false, true); verbose("upscale = $upscale"); $postProcessing = getConfig('postprocessing', array( 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', 'png_deflate' => false, 'png_deflate_cmd' => '/usr/local/bin/pngout -q', 'jpeg_optimize' => false, 'jpeg_optimize_cmd' => '/usr/local/bin/jpegtran -copy none -optimize', )); $alias = get('alias', null); $aliasPath = getConfig('alias_path', null); $validAliasname = getConfig('valid_aliasname', '#^[a-z0-9A-Z-_]+$#'); $aliasTarget = null; if ($alias && $aliasPath && $passwordMatch) { $aliasTarget = $aliasPath . $alias; $useCache = false; is_writable($aliasPath) or errorPage("Directory for alias is not writable.", 403); preg_match($validAliasname, $alias) or errorPage('Filename for alias contains invalid characters. Do not add extension.', 404); } elseif ($alias) { errorPage('Alias is not enabled in the config file or password not matching.', 403); } verbose("alias = $alias"); $cacheControl = getConfig('cache_control', null); if ($cacheControl) { verbose("cacheControl = $cacheControl"); $img->addHTTPHeader("Cache-Control", $cacheControl); } if ($dummyImage === true) { $dummyDir = $cache->getPathToSubdir("dummy"); $img->setSaveFolder($dummyDir) ->setSource($dummyFilename, $dummyDir) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'bgColor' => $bgColor, ) ) ->setJpegQuality($quality) ->setPngCompression($compress) ->createDummyImage() ->generateFilename(null, false) ->save(null, null, false); $srcImage = $img->getTarget(); $imagePath = null; verbose("src (updated) = $srcImage"); } $srgbDefault = getConfig('srgb_default', false); $srgbColorProfile = getConfig('srgb_colorprofile', __DIR__ . '/../icc/sRGB_IEC61966-2-1_black_scaled.icc'); $srgb = getDefined('srgb', true, null); if ($srgb || $srgbDefault) { $filename = $img->convert2sRGBColorSpace( $srcImage, $imagePath, $cache->getPathToSubdir("srgb"), $srgbColorProfile, $useCache ); if ($filename) { $srcImage = $img->getTarget(); $imagePath = null; verbose("srgb conversion and saved to cache = $srcImage"); } else { verbose("srgb not op"); } } if ($status) { $text = "img.php version = $version\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; $res = $cache->getStatusOfSubdir(""); $text .= "Cache $res\n"; $res = $cache->getStatusOfSubdir("remote"); $text .= "Cache remote $res\n"; $res = $cache->getStatusOfSubdir("dummy"); $text .= "Cache dummy $res\n"; $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; $text .= "Extension exif is $no loaded.
"; $no = extension_loaded('curl') ? null : 'NOT'; $text .= "Extension curl is $no loaded.
"; $no = extension_loaded('imagick') ? null : 'NOT'; $text .= "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; if (!$no) { $text .= print_r(gd_info(), 1); } echo << 613, 'w2' => 630, ); $gridColumnWidth = 30; $gridGutterWidth = 10; $gridColumns = 24; for ($i = 1; $i <= $gridColumns; $i++) { $sizes['c' . $i] = ($gridColumnWidth + $gridGutterWidth) * $i - $gridGutterWidth; } return $sizes; }); $sizes = call_user_func($sizeConstant); $newWidth = get(array('width', 'w')); $maxWidth = getConfig('max_width', 2000); if (isset($sizes[$newWidth])) { $newWidth = $sizes[$newWidth]; } if ($newWidth[strlen($newWidth)-1] == '%') { is_numeric(substr($newWidth, 0, -1)) or errorPage('Width % not numeric.', 404); } else { is_null($newWidth) or ($newWidth > 10 && $newWidth <= $maxWidth) or errorPage('Width out of range.', 404); } verbose("new width = $newWidth"); $newHeight = get(array('height', 'h')); $maxHeight = getConfig('max_height', 2000); if (isset($sizes[$newHeight])) { $newHeight = $sizes[$newHeight]; } if ($newHeight[strlen($newHeight)-1] == '%') { is_numeric(substr($newHeight, 0, -1)) or errorPage('Height % out of range.', 404); } else { is_null($newHeight) or ($newHeight > 10 && $newHeight <= $maxHeight) or errorPage('Height out of range.', 404); } verbose("new height = $newHeight"); $aspectRatio = get(array('aspect-ratio', 'ar')); $aspectRatioConstant = getConfig('aspect_ratio_constant', function () { return array( '3:1' => 3/1, '3:2' => 3/2, '4:3' => 4/3, '8:5' => 8/5, '16:10' => 16/10, '16:9' => 16/9, 'golden' => 1.618, ); }); $aspectRatios = call_user_func($aspectRatioConstant); $negateAspectRatio = ($aspectRatio[0] == '!') ? true : false; $aspectRatio = $negateAspectRatio ? substr($aspectRatio, 1) : $aspectRatio; if (isset($aspectRatios[$aspectRatio])) { $aspectRatio = $aspectRatios[$aspectRatio]; } if ($negateAspectRatio) { $aspectRatio = 1 / $aspectRatio; } is_null($aspectRatio) or is_numeric($aspectRatio) or errorPage('Aspect ratio out of range', 404); verbose("aspect ratio = $aspectRatio"); $cropToFit = getDefined(array('crop-to-fit', 'cf'), true, false); verbose("crop to fit = $cropToFit"); $backgroundColor = getConfig('background_color', null); if ($backgroundColor) { $img->setDefaultBackgroundColor($backgroundColor); verbose("Using default background_color = $backgroundColor"); } $bgColor = get(array('bgColor', 'bg-color', 'bgc'), null); verbose("bgColor = $bgColor"); $resizeStrategy = getDefined(array('no-resample'), true, false); if ($resizeStrategy) { $img->setCopyResizeStrategy($img::RESIZE); verbose("Setting = Resize instead of resample"); } $fillToFit = get(array('fill-to-fit', 'ff'), null); verbose("fill-to-fit = $fillToFit"); if ($fillToFit !== null) { if (!empty($fillToFit)) { $bgColor = $fillToFit; verbose("fillToFit changed bgColor to = $bgColor"); } $fillToFit = true; verbose("fill-to-fit (fixed) = $fillToFit"); } $keepRatio = getDefined(array('no-ratio', 'nr', 'stretch'), false, true); verbose("keep ratio = $keepRatio"); $crop = get(array('crop', 'c')); verbose("crop = $crop"); $area = get(array('area', 'a')); verbose("area = $area"); $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { verbose("skip original is default ON"); $useOriginal = false; } verbose("use original = $useOriginal"); $quality = get(array('quality', 'q')); $qualityDefault = getConfig('jpg_quality', null); is_null($quality) or ($quality > 0 and $quality <= 100) or errorPage('Quality out of range', 404); if (is_null($quality) && !is_null($qualityDefault)) { $quality = $qualityDefault; } verbose("quality = $quality"); $compress = get(array('compress', 'co')); $compressDefault = getConfig('png_compression', null); is_null($compress) or ($compress > 0 and $compress <= 9) or errorPage('Compress out of range', 404); if (is_null($compress) && !is_null($compressDefault)) { $compress = $compressDefault; } verbose("compress = $compress"); $saveAs = get(array('save-as', 'sa')); verbose("save as = $saveAs"); $scale = get(array('scale', 's')); is_null($scale) or ($scale >= 0 and $scale <= 400) or errorPage('Scale out of range', 404); verbose("scale = $scale"); $palette = getDefined(array('palette', 'p'), true, false); verbose("palette = $palette"); $sharpen = getDefined('sharpen', true, null); verbose("sharpen = $sharpen"); $emboss = getDefined('emboss', true, null); verbose("emboss = $emboss"); $blur = getDefined('blur', true, null); verbose("blur = $blur"); $rotateBefore = get(array('rotateBefore', 'rotate-before', 'rb')); is_null($rotateBefore) or ($rotateBefore >= -360 and $rotateBefore <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateBefore = $rotateBefore"); $rotateAfter = get(array('rotateAfter', 'rotate-after', 'ra', 'rotate', 'r')); is_null($rotateAfter) or ($rotateAfter >= -360 and $rotateAfter <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateAfter = $rotateAfter"); $autoRotate = getDefined(array('autoRotate', 'auto-rotate', 'aro'), true, false); verbose("autoRotate = $autoRotate"); $filters = array(); $filter = get(array('filter', 'f')); if ($filter) { $filters[] = $filter; } for ($i = 0; $i < 10; $i++) { $filter = get(array("filter{$i}", "f{$i}")); if ($filter) { $filters[] = $filter; } } verbose("filters = " . print_r($filters, 1)); $outputFormat = getDefined('json', 'json', null); $outputFormat = getDefined('ascii', 'ascii', $outputFormat); verbose("outputformat = $outputFormat"); if ($outputFormat == 'ascii') { $defaultOptions = getConfig( 'ascii-options', array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ) ); $options = get('ascii'); $options = explode(',', $options); if (isset($options[0]) && !empty($options[0])) { $defaultOptions['characterSet'] = $options[0]; } if (isset($options[1]) && !empty($options[1])) { $defaultOptions['scale'] = $options[1]; } if (isset($options[2]) && !empty($options[2])) { $defaultOptions['luminanceStrategy'] = $options[2]; } if (count($options) > 3) { unset($options[0]); unset($options[1]); unset($options[2]); $characterString = implode($options); $defaultOptions['customCharacterSet'] = $characterString; } $img->setAsciiOptions($defaultOptions); } $dpr = get(array('ppi', 'dpr', 'device-pixel-ratio'), 1); verbose("dpr = $dpr"); $convolve = get('convolve', null); $convolutionConstant = getConfig('convolution_constant', array()); if ($convolve && isset($convolutionConstant)) { $img->addConvolveExpressions($convolutionConstant); verbose("convolve constant = " . print_r($convolutionConstant, 1)); } verbose("convolve = " . print_r($convolve, 1)); $upscale = getDefined(array('no-upscale', 'nu'), false, true); verbose("upscale = $upscale"); $postProcessing = getConfig('postprocessing', array( 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', 'png_deflate' => false, 'png_deflate_cmd' => '/usr/local/bin/pngout -q', 'jpeg_optimize' => false, 'jpeg_optimize_cmd' => '/usr/local/bin/jpegtran -copy none -optimize', )); $alias = get('alias', null); $aliasPath = getConfig('alias_path', null); $validAliasname = getConfig('valid_aliasname', '#^[a-z0-9A-Z-_]+$#'); $aliasTarget = null; if ($alias && $aliasPath && $passwordMatch) { $aliasTarget = $aliasPath . $alias; $useCache = false; is_writable($aliasPath) or errorPage("Directory for alias is not writable.", 403); preg_match($validAliasname, $alias) or errorPage('Filename for alias contains invalid characters. Do not add extension.', 404); } elseif ($alias) { errorPage('Alias is not enabled in the config file or password not matching.', 403); } verbose("alias = $alias"); $cacheControl = getConfig('cache_control', null); if ($cacheControl) { verbose("cacheControl = $cacheControl"); $img->addHTTPHeader("Cache-Control", $cacheControl); } if ($dummyImage === true) { $dummyDir = $cache->getPathToSubdir("dummy"); $img->setSaveFolder($dummyDir) ->setSource($dummyFilename, $dummyDir) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'bgColor' => $bgColor, ) ) ->setJpegQuality($quality) ->setPngCompression($compress) ->createDummyImage() ->generateFilename(null, false) ->save(null, null, false); $srcImage = $img->getTarget(); $imagePath = null; verbose("src (updated) = $srcImage"); } $srgbDefault = getConfig('srgb_default', false); $srgbColorProfile = getConfig('srgb_colorprofile', __DIR__ . '/../icc/sRGB_IEC61966-2-1_black_scaled.icc'); $srgb = getDefined('srgb', true, null); if ($srgb || $srgbDefault) { $filename = $img->convert2sRGBColorSpace( $srcImage, $imagePath, $cache->getPathToSubdir("srgb"), $srgbColorProfile, $useCache ); if ($filename) { $srcImage = $img->getTarget(); $imagePath = null; verbose("srgb conversion and saved to cache = $srcImage"); } else { verbose("srgb not op"); } } if ($status) { $text = "img.php version = " . CIMAGE_VERSION . "\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; $res = $cache->getStatusOfSubdir(""); $text .= "Cache $res\n"; $res = $cache->getStatusOfSubdir("remote"); $text .= "Cache remote $res\n"; $res = $cache->getStatusOfSubdir("dummy"); $text .= "Cache dummy $res\n"; $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; $res = $cache->getStatusOfSubdir($fasttrackCache); $text .= "Cache fasttrack $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; $text .= "Extension exif is $no loaded.
"; $no = extension_loaded('curl') ? null : 'NOT'; $text .= "Extension curl is $no loaded.
"; $no = extension_loaded('imagick') ? null : 'NOT'; $text .= "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; if (!$no) { $text .= print_r(gd_info(), 1); } echo << From 72c04632b8b4f87308b5fc38b80ca1f7dae04a23 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 10:39:11 +0200 Subject: [PATCH 25/50] more test --- CFastTrackCache.php | 10 ++++++++++ CImage.php | 6 ++++++ REVISION.md | 2 ++ autoload.php | 4 ++-- composer.json | 2 +- defines.php | 6 ++++++ functions.php | 10 +++++----- webroot/img.php | 3 +++ webroot/img_config.php | 4 +++- webroot/imgd.php | 35 ++++++++++++++++++++++++++++++----- webroot/imgf.php | 20 +++++++++++++++++++- webroot/imgp.php | 35 ++++++++++++++++++++++++++++++----- webroot/imgs.php | 6 +++--- 13 files changed, 120 insertions(+), 23 deletions(-) diff --git a/CFastTrackCache.php b/CFastTrackCache.php index d53353e..8fbf489 100644 --- a/CFastTrackCache.php +++ b/CFastTrackCache.php @@ -92,6 +92,10 @@ class CFastTrackCache $this->filename = md5($queryAsString); + if (CIMAGE_DEBUG) { + $this->container["query-string"] = $queryAsString; + } + return $this->filename; } @@ -215,6 +219,9 @@ class CFastTrackCache if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 304"); + } exit; } @@ -222,6 +229,9 @@ class CFastTrackCache header($value); } + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 200"); + } readfile($item["source"]); exit; } diff --git a/CImage.php b/CImage.php index 933023a..38a1cb0 100644 --- a/CImage.php +++ b/CImage.php @@ -2621,6 +2621,9 @@ class CImage } header("HTTP/1.0 304 Not Modified"); + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 304"); + } } else { @@ -2651,6 +2654,9 @@ class CImage $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 200"); + } readfile($file); } diff --git a/REVISION.md b/REVISION.md index 74cd57a..91fe28c 100644 --- a/REVISION.md +++ b/REVISION.md @@ -14,6 +14,8 @@ v0.7.13 (2016-08-08) * Added `imgf.php` as shortcut to check for fast cache, before loading `img.php` as usual. * Created `defines.php` and moved definition av version there. * Fixed images in README, #148. +* Initiated dependency injection to `CImage`, class names can be set in config file and will be injected to `CImage` from `img.php`. Not implemented for all classes. #151. +* Enabled debug mode to make it easeier to trace what actually happens while processing the image, #150. v0.7.12 (2016-06-01) diff --git a/autoload.php b/autoload.php index 833deb4..e168104 100644 --- a/autoload.php +++ b/autoload.php @@ -3,8 +3,8 @@ * Autoloader for CImage and related class files. * */ -require __DIR__ . "/defines.php"; -require __DIR__ . "/functions.php"; +require_once __DIR__ . "/defines.php"; +require_once __DIR__ . "/functions.php"; diff --git a/composer.json b/composer.json index a6e24ab..dc30c2e 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "CRemoteImage.php", "CWhitelist.php", "CAsciiArt.php", - "CCache.php" + "CCache.php", "CFastTrackCache.php" ] } diff --git a/defines.php b/defines.php index b64ecbe..2667912 100644 --- a/defines.php +++ b/defines.php @@ -4,3 +4,9 @@ define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); + +// Change to true to enable debug mode which logs additional information +// to file. Only use for test and development. +define("CIMAGE_DEBUG", true); +define("CIMAGE_DEBUG_FILE", "/tmp/cimage"); +//define("CIMAGE_DEBUG", false); diff --git a/functions.php b/functions.php index 148262c..b4e17c4 100644 --- a/functions.php +++ b/functions.php @@ -14,15 +14,15 @@ */ function trace($msg) { - $file = "/tmp/cimage"; + $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); } - $msg .= ":" . count(get_included_files()); - $msg .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; - $msg .= ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; - file_put_contents($file, "$msg\n", FILE_APPEND); + $details = ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; + $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; + $details .= ":" . count(get_included_files()); + file_put_contents($file, "$details:$msg\n", FILE_APPEND); } diff --git a/webroot/img.php b/webroot/img.php index c653243..63e0399 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -247,6 +247,9 @@ $img->injectDependency("fastTrackCache", $ftc); * in cache. */ if ($useCache && $allowFastTrackCache) { + if (CIMAGE_DEBUG) { + trace("img.php fast track cache enabled and used"); + } $ftc->output(); } diff --git a/webroot/img_config.php b/webroot/img_config.php index e5a66e6..a3dfe21 100644 --- a/webroot/img_config.php +++ b/webroot/img_config.php @@ -66,7 +66,9 @@ return array( /** - * Class names to use, to ease dependency injection. + * Class names to use, to ease dependency injection. You can change Class + * name if you want to use your own class instead. This is a way to extend + * the codebase. * * Default values: * CImage: CImage diff --git a/webroot/imgd.php b/webroot/imgd.php index 17069b4..de537c8 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -43,6 +43,12 @@ define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); +// Change to true to enable debug mode which logs additional information +// to file. Only use for test and development. +define("CIMAGE_DEBUG", true); +define("CIMAGE_DEBUG_FILE", "/tmp/cimage"); +//define("CIMAGE_DEBUG", false); + /** @@ -60,15 +66,15 @@ define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); */ function trace($msg) { - $file = "/tmp/cimage"; + $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); } - $msg .= ":" . count(get_included_files()); - $msg .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; - $msg .= ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; - file_put_contents($file, "$msg\n", FILE_APPEND); + $details = ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; + $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; + $details .= ":" . count(get_included_files()); + file_put_contents($file, "$details:$msg\n", FILE_APPEND); } @@ -3720,6 +3726,9 @@ class CImage } header("HTTP/1.0 304 Not Modified"); + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 304"); + } } else { @@ -3750,6 +3759,9 @@ class CImage $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 200"); + } readfile($file); } @@ -4136,6 +4148,10 @@ class CFastTrackCache $this->filename = md5($queryAsString); + if (CIMAGE_DEBUG) { + $this->container["query-string"] = $queryAsString; + } + return $this->filename; } @@ -4259,6 +4275,9 @@ class CFastTrackCache if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 304"); + } exit; } @@ -4266,6 +4285,9 @@ class CFastTrackCache header($value); } + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 200"); + } readfile($item["source"]); exit; } @@ -4521,6 +4543,9 @@ $img->injectDependency("fastTrackCache", $ftc); * in cache. */ if ($useCache && $allowFastTrackCache) { + if (CIMAGE_DEBUG) { + trace("img.php fast track cache enabled and used"); + } $ftc->output(); } diff --git a/webroot/imgf.php b/webroot/imgf.php index 72c95d7..85b80b8 100644 --- a/webroot/imgf.php +++ b/webroot/imgf.php @@ -3,7 +3,6 @@ * Fast track cache, read entries from the cache before processing image * the ordinary way. */ - // Load the config file or use defaults $configFile = __DIR__ . "/" @@ -14,10 +13,23 @@ if (is_file($configFile) && is_readable($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array( + "debug" => false, + "autoloader" => __DIR__ . "/../autoload.php", "cache_path" => __DIR__ . "/../cache/", ); } +// Debug mode needs additional functions +if (CIMAGE_DEBUG) { + require $config["autoloader"]; +} + +// Cache path must be valid +$cacheIsReadable = is_dir($config["cache_path"]) && is_readable($config["cache_path"]); +if (!$cacheIsReadable) { + die("imgf.php: Cache is not readable, check path in configfile."); +} + // Prepare to check if fast cache should be used $cachePath = $config["cache_path"] . "/fasttrack"; $query = $_GET; @@ -49,6 +61,9 @@ if ($useCache && is_readable($filename)) { if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); + if (CIMAGE_DEBUG) { + trace("imgf 304"); + } exit; } @@ -56,6 +71,9 @@ if ($useCache && is_readable($filename)) { header($value); } + if (CIMAGE_DEBUG) { + trace("imgf 200"); + } readfile($item["source"]); exit; } diff --git a/webroot/imgp.php b/webroot/imgp.php index 02da057..64a2844 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -43,6 +43,12 @@ define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); +// Change to true to enable debug mode which logs additional information +// to file. Only use for test and development. +define("CIMAGE_DEBUG", true); +define("CIMAGE_DEBUG_FILE", "/tmp/cimage"); +//define("CIMAGE_DEBUG", false); + /** @@ -60,15 +66,15 @@ define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); */ function trace($msg) { - $file = "/tmp/cimage"; + $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); } - $msg .= ":" . count(get_included_files()); - $msg .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; - $msg .= ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; - file_put_contents($file, "$msg\n", FILE_APPEND); + $details = ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; + $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; + $details .= ":" . count(get_included_files()); + file_put_contents($file, "$details:$msg\n", FILE_APPEND); } @@ -3720,6 +3726,9 @@ class CImage } header("HTTP/1.0 304 Not Modified"); + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 304"); + } } else { @@ -3750,6 +3759,9 @@ class CImage $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 200"); + } readfile($file); } @@ -4136,6 +4148,10 @@ class CFastTrackCache $this->filename = md5($queryAsString); + if (CIMAGE_DEBUG) { + $this->container["query-string"] = $queryAsString; + } + return $this->filename; } @@ -4259,6 +4275,9 @@ class CFastTrackCache if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 304"); + } exit; } @@ -4266,6 +4285,9 @@ class CFastTrackCache header($value); } + if (CIMAGE_DEBUG) { + trace(__CLASS__ . " 200"); + } readfile($item["source"]); exit; } @@ -4521,6 +4543,9 @@ $img->injectDependency("fastTrackCache", $ftc); * in cache. */ if ($useCache && $allowFastTrackCache) { + if (CIMAGE_DEBUG) { + trace("img.php fast track cache enabled and used"); + } $ftc->output(); } diff --git a/webroot/imgs.php b/webroot/imgs.php index 53e6f86..fce3bca 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -1,15 +1,15 @@ 'strict', ); define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); function trace($msg) { $file = "/tmp/cimage"; if (!is_writable($file)) { die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); } $msg .= ":" . count(get_included_files()); $msg .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $msg .= ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; file_put_contents($file, "$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at + define("CIMAGE_BUNDLE", true); $config = array( 'mode' => 'strict', ); define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); define("CIMAGE_DEBUG", true); define("CIMAGE_DEBUG_FILE", "/tmp/cimage"); function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); } $details = ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType, $this->attr) = getimagesize($file); if (empty($info)) { throw new Exception("The file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . image_type_to_mime_type($this->fileType)); } return $this; } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } else { $this->newWidth = $width; $this->newHeight = $height; } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails($this->pathToImage); $this->image = imagecreatefromstring(file_get_contents($this->pathToImage)); if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newWidth < $this->width) { $cropX = round(($this->width/2) - ($this->newWidth/2)); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } if ($this->newHeight < $this->height) { $cropY = round(($this->height/2) - ($this->newHeight/2)); } $this->log(" cwidth: $this->cropWidth"); $this->log(" cheight: $this->cropHeight"); $this->log(" nwidth: $this->newWidth"); $this->log(" nheight: $this->newHeight"); $this->log(" width: $this->width"); $this->log(" height: $this->height"); $this->log(" posX: $posX"); $this->log(" posY: $posY"); $this->log(" cropX: $cropX"); $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with 11 float values. Got $expression." ); } array_walk($part, function ($item, $key) { if (!is_numeric($item)) { throw new Exception("Argument to convolve expression should be float but is not."); } }); return array( array( array($part[0], $part[1], $part[2]), array($part[3], $part[4], $part[5]), array($part[6], $part[7], $part[8]), ), $part[9], $part[10], ); } public function addConvolveExpressions($options) { $this->convolves = array_merge($this->convolves, $options); return $this; } public function imageConvolution($options = null) { $options = $options ? $options : $this->convolve; $this->log("Convolution with '$options'"); $options = explode(":", $options); foreach ($options as $option) { list($matrix, $divisor, $offset) = $this->createConvolveArguments($option); imageconvolution($this->image, $matrix, $divisor, $offset); } return $this; } public function setDefaultBackgroundColor($color) { $this->log("Setting default background color to '$color'."); if (!(strlen($color) == 6 || strlen($color) == 8)) { throw new Exception( "Background color needs a hex value of 6 or 8 digits. 000000-FFFFFF or 00000000-FFFFFF7F. Current value was: '$color'." ); } $red = hexdec(substr($color, 0, 2)); $green = hexdec(substr($color, 2, 2)); $blue = hexdec(substr($color, 4, 2)); $alpha = (strlen($color) == 8) ? hexdec(substr($color, 6, 2)) : null; if (($red < 0 || $red > 255) || ($green < 0 || $green > 255) || ($blue < 0 || $blue > 255) || ($alpha < 0 || $alpha > 127) ) { throw new Exception( "Background color out of range. Red, green blue should be 00-FF and alpha should be 00-7F. - Current value was: '$color'." ); } $this->bgColor = strtolower($color); $this->bgColorDefault = array( 'red' => $red, 'green' => $green, 'blue' => $blue, 'alpha' => $alpha ); return $this; } private function getBackgroundColor($img = null) { $img = isset($img) ? $img : $this->image; if ($this->bgColorDefault) { $red = $this->bgColorDefault['red']; $green = $this->bgColorDefault['green']; $blue = $this->bgColorDefault['blue']; $alpha = $this->bgColorDefault['alpha']; if ($alpha) { $color = imagecolorallocatealpha($img, $red, $green, $blue, $alpha); } else { $color = imagecolorallocate($img, $red, $green, $blue); } return $color; } else { return 0; } } private function createImageKeepTransparency($width, $height) { $this->log("Creating a new working image width={$width}px, height={$height}px."); $img = imagecreatetruecolor($width, $height); imagealphablending($img, false); imagesavealpha($img, true); $index = $this->image ? imagecolortransparent($this->image) : -1; if ($index != -1) { imagealphablending($img, true); $transparent = imagecolorsforindex($this->image, $index); $color = imagecolorallocatealpha($img, $transparent['red'], $transparent['green'], $transparent['blue'], $transparent['alpha']); imagefill($img, 0, 0, $color); $index = imagecolortransparent($img, $color); $this->Log("Detected transparent color = " . implode(", ", $transparent) . " at index = $index"); } elseif ($this->bgColorDefault) { $color = $this->getBackgroundColor($img); imagefill($img, 0, 0, $color); $this->Log("Filling image with background color."); } return $img; } public function setPostProcessingOptions($options) { if (isset($options['jpeg_optimize']) && $options['jpeg_optimize']) { $this->jpegOptimizeCmd = $options['jpeg_optimize_cmd']; } else { $this->jpegOptimizeCmd = null; } if (isset($options['png_filter']) && $options['png_filter']) { $this->pngFilterCmd = $options['png_filter_cmd']; } else { $this->pngFilterCmd = null; } if (isset($options['png_deflate']) && $options['png_deflate']) { $this->pngDeflateCmd = $options['png_deflate_cmd']; } else { $this->pngDeflateCmd = null; } return $this; } protected function getTargetImageExtension() { if (isset($this->extension)) { return strtolower($this->extension); } else { return substr(image_type_to_extension($this->fileType), 1); } } public function save($src = null, $base = null, $overwrite = true) { if (isset($src)) { $this->setTarget($src, $base); } if ($overwrite === false && is_file($this->cacheFileName)) { $this->Log("Not overwriting file since its already exists and \$overwrite if false."); return; } is_writable($this->saveFolder) or $this->raiseError('Target directory is not writable.'); $type = $this->getTargetImageExtension(); $this->Log("Saving image as " . $type); switch($type) { case 'jpeg': case 'jpg': $this->Log("Saving image as JPEG to cache using quality = {$this->quality}."); imagejpeg($this->image, $this->cacheFileName, $this->quality); if ($this->jpegOptimizeCmd) { if ($this->verbose) { clearstatcache(); $this->log("Filesize before optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->jpegOptimizeCmd . " -outfile $this->cacheFileName $this->cacheFileName"; exec($cmd, $res); $this->log($cmd); $this->log($res); } break; case 'gif': $this->Log("Saving image as GIF to cache."); imagegif($this->image, $this->cacheFileName); break; case 'png': default: $this->Log("Saving image as PNG to cache using compression = {$this->compress}."); imagealphablending($this->image, false); imagesavealpha($this->image, true); imagepng($this->image, $this->cacheFileName, $this->compress); if ($this->pngFilterCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before filter optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngFilterCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } if ($this->pngDeflateCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before deflate optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngDeflateCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } break; } if ($this->verbose) { clearstatcache(); $this->log("Saved image to cache."); $this->log(" Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->ColorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index > 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function convert2sRGBColorSpace($src, $dir, $cache, $iccFile, $useCache = true) { if ($this->verbose) { $this->log("# Converting image to sRGB colorspace."); } if (!class_exists("Imagick")) { $this->log(" Ignoring since Imagemagick is not installed."); return false; } $this->setSaveFolder($cache) ->setSource($src, $dir) ->generateFilename(null, false, 'srgb_'); if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { $this->log(" Using cached version: " . $this->cacheFileName); return $this->cacheFileName; } } if (is_writable($this->saveFolder)) { $image = new Imagick($this->pathToImage); $colorspace = $image->getImageColorspace(); $this->log(" Current colorspace: " . $colorspace); $profiles = $image->getImageProfiles('*', false); $hasICCProfile = (array_search('icc', $profiles) !== false); $this->log(" Has ICC color profile: " . ($hasICCProfile ? "YES" : "NO")); if ($colorspace != Imagick::COLORSPACE_SRGB || $hasICCProfile) { $this->log(" Converting to sRGB."); $sRGBicc = file_get_contents($iccFile); $image->profileImage('icc', $sRGBicc); $image->transformImageColorspace(Imagick::COLORSPACE_SRGB); $image->writeImage($this->cacheFileName); return $this->cacheFileName; } } return false; } public function linkToCacheFile($alias) { if ($alias === null) { $this->log("Ignore creating alias."); return $this; } if (is_readable($alias)) { unlink($alias); } $res = link($this->cacheFileName, $alias); if ($res) { $this->log("Created an alias as: $alias"); } else { $this->log("Failed to create the alias: $alias"); } return $this; } public function addHTTPHeader($type, $value) { $this->HTTPHeader[$type] = $value; } public function output($file = null, $format = null) { if (is_null($file)) { $file = $this->cacheFileName; } if (is_null($format)) { $format = $this->outputFormat; } $this->log("Output format is: $format"); if (!$this->verbose && $format == 'json') { header('Content-type: application/json'); echo $this->json($file); exit; } elseif ($format == 'ascii') { header('Content-type: text/plain'); echo $this->ascii($file); exit; } $this->log("Outputting image: $file"); clearstatcache(); $lastModified = filemtime($file); $lastModifiedFormat = "D, d M Y H:i:s"; $gmdate = gmdate($lastModifiedFormat, $lastModified); if (!$this->verbose) { $header = "Last-Modified: $gmdate GMT"; header($header); $this->fastTrackCache->addHeader($header); $this->fastTrackCache->setLastModified($lastModified); } foreach ($this->HTTPHeader as $key => $val) { $header = "$key: $val"; header($header); $this->fastTrackCache->addHeader($header); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { $this->log("304 not modified"); $this->verboseOutput(); exit; } header("HTTP/1.0 304 Not Modified"); } else { $info = getimagesize($file); !empty($info) or $this->raiseError("The file doesn't seem to be an image."); $mime = $info['mime']; $size = filesize($file); if ($this->verbose) { $this->log("Last-Modified: " . $gmdate . " GMT"); $this->log("Content-type: " . $mime); $this->log("Content-length: " . $size); $this->verboseOutput(); if (is_null($this->verboseFileName)) { exit; } } $header = "Content-type: $mime"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $header = "Content-length: $size"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); readfile($file); } exit; } public function json($file = null) { $file = $file ? $file : $this->cacheFileName; $details = array(); clearstatcache(); $details['src'] = $this->imageSrc; $lastModified = filemtime($this->pathToImage); $details['srcGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $details['cache'] = basename($this->cacheFileName); $lastModified = filemtime($this->cacheFileName); $details['cacheGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $this->load($file); $details['filename'] = basename($file); $details['mimeType'] = image_type_to_mime_type($this->fileType); $details['width'] = $this->width; $details['height'] = $this->height; $details['aspectRatio'] = round($this->width / $this->height, 3); $details['size'] = filesize($file); $details['colors'] = $this->colorsTotal($this->image); $details['includedFiles'] = count(get_included_files()); $details['memoryPeek'] = round(memory_get_peak_usage()/1024/1024, 3) . " MB" ; $details['memoryCurrent'] = round(memory_get_usage()/1024/1024, 3) . " MB"; $details['memoryLimit'] = ini_get('memory_limit'); if (isset($_SERVER['REQUEST_TIME_FLOAT'])) { $details['loadTime'] = (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 3) . "s"; } if ($details['mimeType'] == 'image/png') { $details['pngType'] = $this->getPngTypeAsString(null, $file); } $options = null; if (defined("JSON_PRETTY_PRINT") && defined("JSON_UNESCAPED_SLASHES")) { $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES; } return json_encode($details, $options); } public function setAsciiOptions($options = array()) { $this->asciiOptions = $options; } public function ascii($file = null) { $file = $file ? $file : $this->cacheFileName; $asciiArt = new CAsciiArt(); $asciiArt->setOptions($this->asciiOptions); return $asciiArt->createFromFile($file); } public function log($message) { if ($this->verbose) { $this->log[] = $message; } return $this; } public function setVerboseToFile($fileName) { $this->log("Setting verbose output to file."); $this->verboseFileName = $fileName; } private function verboseOutput() { $log = null; $this->log("As JSON: \n" . $this->json()); $this->log("Memory peak: " . round(memory_get_peak_usage() /1024/1024) . "M"); $this->log("Memory limit: " . ini_get('memory_limit')); $included = get_included_files(); $this->log("Included files: " . count($included)); foreach ($this->log as $val) { if (is_array($val)) { foreach ($val as $val1) { $log .= htmlentities($val1) . '
'; } } else { $log .= htmlentities($val) . '
'; } } if (!is_null($this->verboseFileName)) { file_put_contents( $this->verboseFileName, str_replace("
", "\n", $log) ); } else { echo <<bgColor = strtolower($color); $this->bgColorDefault = array( 'red' => $red, 'green' => $green, 'blue' => $blue, 'alpha' => $alpha ); return $this; } private function getBackgroundColor($img = null) { $img = isset($img) ? $img : $this->image; if ($this->bgColorDefault) { $red = $this->bgColorDefault['red']; $green = $this->bgColorDefault['green']; $blue = $this->bgColorDefault['blue']; $alpha = $this->bgColorDefault['alpha']; if ($alpha) { $color = imagecolorallocatealpha($img, $red, $green, $blue, $alpha); } else { $color = imagecolorallocate($img, $red, $green, $blue); } return $color; } else { return 0; } } private function createImageKeepTransparency($width, $height) { $this->log("Creating a new working image width={$width}px, height={$height}px."); $img = imagecreatetruecolor($width, $height); imagealphablending($img, false); imagesavealpha($img, true); $index = $this->image ? imagecolortransparent($this->image) : -1; if ($index != -1) { imagealphablending($img, true); $transparent = imagecolorsforindex($this->image, $index); $color = imagecolorallocatealpha($img, $transparent['red'], $transparent['green'], $transparent['blue'], $transparent['alpha']); imagefill($img, 0, 0, $color); $index = imagecolortransparent($img, $color); $this->Log("Detected transparent color = " . implode(", ", $transparent) . " at index = $index"); } elseif ($this->bgColorDefault) { $color = $this->getBackgroundColor($img); imagefill($img, 0, 0, $color); $this->Log("Filling image with background color."); } return $img; } public function setPostProcessingOptions($options) { if (isset($options['jpeg_optimize']) && $options['jpeg_optimize']) { $this->jpegOptimizeCmd = $options['jpeg_optimize_cmd']; } else { $this->jpegOptimizeCmd = null; } if (isset($options['png_filter']) && $options['png_filter']) { $this->pngFilterCmd = $options['png_filter_cmd']; } else { $this->pngFilterCmd = null; } if (isset($options['png_deflate']) && $options['png_deflate']) { $this->pngDeflateCmd = $options['png_deflate_cmd']; } else { $this->pngDeflateCmd = null; } return $this; } protected function getTargetImageExtension() { if (isset($this->extension)) { return strtolower($this->extension); } else { return substr(image_type_to_extension($this->fileType), 1); } } public function save($src = null, $base = null, $overwrite = true) { if (isset($src)) { $this->setTarget($src, $base); } if ($overwrite === false && is_file($this->cacheFileName)) { $this->Log("Not overwriting file since its already exists and \$overwrite if false."); return; } is_writable($this->saveFolder) or $this->raiseError('Target directory is not writable.'); $type = $this->getTargetImageExtension(); $this->Log("Saving image as " . $type); switch($type) { case 'jpeg': case 'jpg': $this->Log("Saving image as JPEG to cache using quality = {$this->quality}."); imagejpeg($this->image, $this->cacheFileName, $this->quality); if ($this->jpegOptimizeCmd) { if ($this->verbose) { clearstatcache(); $this->log("Filesize before optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->jpegOptimizeCmd . " -outfile $this->cacheFileName $this->cacheFileName"; exec($cmd, $res); $this->log($cmd); $this->log($res); } break; case 'gif': $this->Log("Saving image as GIF to cache."); imagegif($this->image, $this->cacheFileName); break; case 'png': default: $this->Log("Saving image as PNG to cache using compression = {$this->compress}."); imagealphablending($this->image, false); imagesavealpha($this->image, true); imagepng($this->image, $this->cacheFileName, $this->compress); if ($this->pngFilterCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before filter optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngFilterCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } if ($this->pngDeflateCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before deflate optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngDeflateCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } break; } if ($this->verbose) { clearstatcache(); $this->log("Saved image to cache."); $this->log(" Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->ColorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index > 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function convert2sRGBColorSpace($src, $dir, $cache, $iccFile, $useCache = true) { if ($this->verbose) { $this->log("# Converting image to sRGB colorspace."); } if (!class_exists("Imagick")) { $this->log(" Ignoring since Imagemagick is not installed."); return false; } $this->setSaveFolder($cache) ->setSource($src, $dir) ->generateFilename(null, false, 'srgb_'); if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { $this->log(" Using cached version: " . $this->cacheFileName); return $this->cacheFileName; } } if (is_writable($this->saveFolder)) { $image = new Imagick($this->pathToImage); $colorspace = $image->getImageColorspace(); $this->log(" Current colorspace: " . $colorspace); $profiles = $image->getImageProfiles('*', false); $hasICCProfile = (array_search('icc', $profiles) !== false); $this->log(" Has ICC color profile: " . ($hasICCProfile ? "YES" : "NO")); if ($colorspace != Imagick::COLORSPACE_SRGB || $hasICCProfile) { $this->log(" Converting to sRGB."); $sRGBicc = file_get_contents($iccFile); $image->profileImage('icc', $sRGBicc); $image->transformImageColorspace(Imagick::COLORSPACE_SRGB); $image->writeImage($this->cacheFileName); return $this->cacheFileName; } } return false; } public function linkToCacheFile($alias) { if ($alias === null) { $this->log("Ignore creating alias."); return $this; } if (is_readable($alias)) { unlink($alias); } $res = link($this->cacheFileName, $alias); if ($res) { $this->log("Created an alias as: $alias"); } else { $this->log("Failed to create the alias: $alias"); } return $this; } public function addHTTPHeader($type, $value) { $this->HTTPHeader[$type] = $value; } public function output($file = null, $format = null) { if (is_null($file)) { $file = $this->cacheFileName; } if (is_null($format)) { $format = $this->outputFormat; } $this->log("Output format is: $format"); if (!$this->verbose && $format == 'json') { header('Content-type: application/json'); echo $this->json($file); exit; } elseif ($format == 'ascii') { header('Content-type: text/plain'); echo $this->ascii($file); exit; } $this->log("Outputting image: $file"); clearstatcache(); $lastModified = filemtime($file); $lastModifiedFormat = "D, d M Y H:i:s"; $gmdate = gmdate($lastModifiedFormat, $lastModified); if (!$this->verbose) { $header = "Last-Modified: $gmdate GMT"; header($header); $this->fastTrackCache->addHeader($header); $this->fastTrackCache->setLastModified($lastModified); } foreach ($this->HTTPHeader as $key => $val) { $header = "$key: $val"; header($header); $this->fastTrackCache->addHeader($header); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { $this->log("304 not modified"); $this->verboseOutput(); exit; } header("HTTP/1.0 304 Not Modified"); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 304"); } } else { $info = getimagesize($file); !empty($info) or $this->raiseError("The file doesn't seem to be an image."); $mime = $info['mime']; $size = filesize($file); if ($this->verbose) { $this->log("Last-Modified: " . $gmdate . " GMT"); $this->log("Content-type: " . $mime); $this->log("Content-length: " . $size); $this->verboseOutput(); if (is_null($this->verboseFileName)) { exit; } } $header = "Content-type: $mime"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $header = "Content-length: $size"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 200"); } readfile($file); } exit; } public function json($file = null) { $file = $file ? $file : $this->cacheFileName; $details = array(); clearstatcache(); $details['src'] = $this->imageSrc; $lastModified = filemtime($this->pathToImage); $details['srcGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $details['cache'] = basename($this->cacheFileName); $lastModified = filemtime($this->cacheFileName); $details['cacheGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $this->load($file); $details['filename'] = basename($file); $details['mimeType'] = image_type_to_mime_type($this->fileType); $details['width'] = $this->width; $details['height'] = $this->height; $details['aspectRatio'] = round($this->width / $this->height, 3); $details['size'] = filesize($file); $details['colors'] = $this->colorsTotal($this->image); $details['includedFiles'] = count(get_included_files()); $details['memoryPeek'] = round(memory_get_peak_usage()/1024/1024, 3) . " MB" ; $details['memoryCurrent'] = round(memory_get_usage()/1024/1024, 3) . " MB"; $details['memoryLimit'] = ini_get('memory_limit'); if (isset($_SERVER['REQUEST_TIME_FLOAT'])) { $details['loadTime'] = (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 3) . "s"; } if ($details['mimeType'] == 'image/png') { $details['pngType'] = $this->getPngTypeAsString(null, $file); } $options = null; if (defined("JSON_PRETTY_PRINT") && defined("JSON_UNESCAPED_SLASHES")) { $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES; } return json_encode($details, $options); } public function setAsciiOptions($options = array()) { $this->asciiOptions = $options; } public function ascii($file = null) { $file = $file ? $file : $this->cacheFileName; $asciiArt = new CAsciiArt(); $asciiArt->setOptions($this->asciiOptions); return $asciiArt->createFromFile($file); } public function log($message) { if ($this->verbose) { $this->log[] = $message; } return $this; } public function setVerboseToFile($fileName) { $this->log("Setting verbose output to file."); $this->verboseFileName = $fileName; } private function verboseOutput() { $log = null; $this->log("As JSON: \n" . $this->json()); $this->log("Memory peak: " . round(memory_get_peak_usage() /1024/1024) . "M"); $this->log("Memory limit: " . ini_get('memory_limit')); $included = get_included_files(); $this->log("Included files: " . count($included)); foreach ($this->log as $val) { if (is_array($val)) { foreach ($val as $val1) { $log .= htmlentities($val1) . '
'; } } else { $log .= htmlentities($val) . '
'; } } if (!is_null($this->verboseFileName)) { file_put_contents( $this->verboseFileName, str_replace("
", "\n", $log) ); } else { echo <<CImage Verbose Output
{$log}
EOD; -} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } class CFastTrackCache { private $enabled = false; private $path; private $filename; private $container; public function enable($enabled) { $this->enabled = $enabled; return $this; } public function setCacheDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = rtrim($path, "/"); return $this; } public function setFilename($clear) { $query = $_GET; foreach ($clear as $value) { unset($query[$value]); } arsort($query); $queryAsString = http_build_query($query); $this->filename = md5($queryAsString); return $this->filename; } public function addHeader($header) { $this->container["header"][] = $header; return $this; } public function addHeaderOnOutput($header) { $this->container["header-output"][] = $header; return $this; } public function setSource($source) { $this->container["source"] = $source; return $this; } public function setLastModified($lastModified) { $this->container["last-modified"] = $lastModified; return $this; } public function getFilename() { return $this->path . "/" . $this->filename; } public function writeToCache() { if (!$this->enabled) { return false; } if (is_dir($this->path) && is_writable($this->path)) { $filename = $this->getFilename(); return file_put_contents($filename, json_encode($this->container)) !== false; } return false; } public function output() { $filename = $this->getFilename(); if (!is_readable($filename)) { return; } $item = json_decode(file_get_contents($filename), true); if (!is_readable($item["source"])) { return; } foreach ($item["header"] as $value) { header($value); } if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); exit; } foreach ($item["header-output"] as $value) { header($value); } readfile($item["source"]); exit; } } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } if (!defined("CIMAGE_BUNDLE")) { if (!isset($config["autoloader"])) { die("CImage: Missing autoloader."); } require $config["autoloader"]; } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = " . CIMAGE_VERSION); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $CImage = getConfig('CImage', 'CImage'); $img = new $CImage(); $img->setVerbose($verbose || $verboseFile); $CCache = getConfig('CCache', 'CCache'); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new $CCache(); $cache->setDir($cachePath); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $fastTrackCache = "fasttrack"; $allowFastTrackCache = getConfig('fast_track_allow', false); $CFastTrackCache = getConfig('CFastTrackCache', 'CFastTrackCache'); $ftc = new $CFastTrackCache(); $ftc->setCacheDir($cache->getPathToSubdir($fastTrackCache)) ->enable($allowFastTrackCache) ->setFilename(array('no-cache', 'nc')); $img->injectDependency("fastTrackCache", $ftc); if ($useCache && $allowFastTrackCache) { $ftc->output(); } $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a +} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } class CFastTrackCache { private $enabled = false; private $path; private $filename; private $container; public function enable($enabled) { $this->enabled = $enabled; return $this; } public function setCacheDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = rtrim($path, "/"); return $this; } public function setFilename($clear) { $query = $_GET; foreach ($clear as $value) { unset($query[$value]); } arsort($query); $queryAsString = http_build_query($query); $this->filename = md5($queryAsString); if (CIMAGE_DEBUG) { $this->container["query-string"] = $queryAsString; } return $this->filename; } public function addHeader($header) { $this->container["header"][] = $header; return $this; } public function addHeaderOnOutput($header) { $this->container["header-output"][] = $header; return $this; } public function setSource($source) { $this->container["source"] = $source; return $this; } public function setLastModified($lastModified) { $this->container["last-modified"] = $lastModified; return $this; } public function getFilename() { return $this->path . "/" . $this->filename; } public function writeToCache() { if (!$this->enabled) { return false; } if (is_dir($this->path) && is_writable($this->path)) { $filename = $this->getFilename(); return file_put_contents($filename, json_encode($this->container)) !== false; } return false; } public function output() { $filename = $this->getFilename(); if (!is_readable($filename)) { return; } $item = json_decode(file_get_contents($filename), true); if (!is_readable($item["source"])) { return; } foreach ($item["header"] as $value) { header($value); } if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 304"); } exit; } foreach ($item["header-output"] as $value) { header($value); } if (CIMAGE_DEBUG) { trace(__CLASS__ . " 200"); } readfile($item["source"]); exit; } } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } if (!defined("CIMAGE_BUNDLE")) { if (!isset($config["autoloader"])) { die("CImage: Missing autoloader."); } require $config["autoloader"]; } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = " . CIMAGE_VERSION); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $CImage = getConfig('CImage', 'CImage'); $img = new $CImage(); $img->setVerbose($verbose || $verboseFile); $CCache = getConfig('CCache', 'CCache'); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new $CCache(); $cache->setDir($cachePath); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $fastTrackCache = "fasttrack"; $allowFastTrackCache = getConfig('fast_track_allow', false); $CFastTrackCache = getConfig('CFastTrackCache', 'CFastTrackCache'); $ftc = new $CFastTrackCache(); $ftc->setCacheDir($cache->getPathToSubdir($fastTrackCache)) ->enable($allowFastTrackCache) ->setFilename(array('no-cache', 'nc')); $img->injectDependency("fastTrackCache", $ftc); if ($useCache && $allowFastTrackCache) { if (CIMAGE_DEBUG) { trace("img.php fast track cache enabled and used"); } $ftc->output(); } $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a matching file exists on the filesystem.', 404 ); } } if ($imagePathConstraint && !$dummyImage && !$remoteSource) { $imageDir = realpath($imagePath); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( 'Security constraint: Source image is not below the directory "image_path" as specified in the config file img_config.php.', 404 ); } verbose("src = $srcImage"); $sizeConstant = getConfig('size_constant', function () { $sizes = array( 'w1' => 613, 'w2' => 630, ); $gridColumnWidth = 30; $gridGutterWidth = 10; $gridColumns = 24; for ($i = 1; $i <= $gridColumns; $i++) { $sizes['c' . $i] = ($gridColumnWidth + $gridGutterWidth) * $i - $gridGutterWidth; } return $sizes; }); $sizes = call_user_func($sizeConstant); $newWidth = get(array('width', 'w')); $maxWidth = getConfig('max_width', 2000); if (isset($sizes[$newWidth])) { $newWidth = $sizes[$newWidth]; } if ($newWidth[strlen($newWidth)-1] == '%') { is_numeric(substr($newWidth, 0, -1)) or errorPage('Width % not numeric.', 404); } else { is_null($newWidth) or ($newWidth > 10 && $newWidth <= $maxWidth) or errorPage('Width out of range.', 404); } verbose("new width = $newWidth"); $newHeight = get(array('height', 'h')); $maxHeight = getConfig('max_height', 2000); if (isset($sizes[$newHeight])) { $newHeight = $sizes[$newHeight]; } if ($newHeight[strlen($newHeight)-1] == '%') { is_numeric(substr($newHeight, 0, -1)) or errorPage('Height % out of range.', 404); } else { is_null($newHeight) or ($newHeight > 10 && $newHeight <= $maxHeight) or errorPage('Height out of range.', 404); } verbose("new height = $newHeight"); $aspectRatio = get(array('aspect-ratio', 'ar')); $aspectRatioConstant = getConfig('aspect_ratio_constant', function () { return array( '3:1' => 3/1, '3:2' => 3/2, '4:3' => 4/3, '8:5' => 8/5, '16:10' => 16/10, '16:9' => 16/9, 'golden' => 1.618, ); }); $aspectRatios = call_user_func($aspectRatioConstant); $negateAspectRatio = ($aspectRatio[0] == '!') ? true : false; $aspectRatio = $negateAspectRatio ? substr($aspectRatio, 1) : $aspectRatio; if (isset($aspectRatios[$aspectRatio])) { $aspectRatio = $aspectRatios[$aspectRatio]; } if ($negateAspectRatio) { $aspectRatio = 1 / $aspectRatio; } is_null($aspectRatio) or is_numeric($aspectRatio) or errorPage('Aspect ratio out of range', 404); verbose("aspect ratio = $aspectRatio"); $cropToFit = getDefined(array('crop-to-fit', 'cf'), true, false); verbose("crop to fit = $cropToFit"); $backgroundColor = getConfig('background_color', null); if ($backgroundColor) { $img->setDefaultBackgroundColor($backgroundColor); verbose("Using default background_color = $backgroundColor"); } $bgColor = get(array('bgColor', 'bg-color', 'bgc'), null); verbose("bgColor = $bgColor"); $resizeStrategy = getDefined(array('no-resample'), true, false); if ($resizeStrategy) { $img->setCopyResizeStrategy($img::RESIZE); verbose("Setting = Resize instead of resample"); } $fillToFit = get(array('fill-to-fit', 'ff'), null); verbose("fill-to-fit = $fillToFit"); if ($fillToFit !== null) { if (!empty($fillToFit)) { $bgColor = $fillToFit; verbose("fillToFit changed bgColor to = $bgColor"); } $fillToFit = true; verbose("fill-to-fit (fixed) = $fillToFit"); } $keepRatio = getDefined(array('no-ratio', 'nr', 'stretch'), false, true); verbose("keep ratio = $keepRatio"); $crop = get(array('crop', 'c')); verbose("crop = $crop"); $area = get(array('area', 'a')); verbose("area = $area"); $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { verbose("skip original is default ON"); $useOriginal = false; } verbose("use original = $useOriginal"); $quality = get(array('quality', 'q')); $qualityDefault = getConfig('jpg_quality', null); is_null($quality) or ($quality > 0 and $quality <= 100) or errorPage('Quality out of range', 404); if (is_null($quality) && !is_null($qualityDefault)) { $quality = $qualityDefault; } verbose("quality = $quality"); $compress = get(array('compress', 'co')); $compressDefault = getConfig('png_compression', null); is_null($compress) or ($compress > 0 and $compress <= 9) or errorPage('Compress out of range', 404); if (is_null($compress) && !is_null($compressDefault)) { $compress = $compressDefault; } verbose("compress = $compress"); $saveAs = get(array('save-as', 'sa')); verbose("save as = $saveAs"); $scale = get(array('scale', 's')); is_null($scale) or ($scale >= 0 and $scale <= 400) or errorPage('Scale out of range', 404); verbose("scale = $scale"); $palette = getDefined(array('palette', 'p'), true, false); verbose("palette = $palette"); $sharpen = getDefined('sharpen', true, null); verbose("sharpen = $sharpen"); $emboss = getDefined('emboss', true, null); verbose("emboss = $emboss"); $blur = getDefined('blur', true, null); verbose("blur = $blur"); $rotateBefore = get(array('rotateBefore', 'rotate-before', 'rb')); is_null($rotateBefore) or ($rotateBefore >= -360 and $rotateBefore <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateBefore = $rotateBefore"); $rotateAfter = get(array('rotateAfter', 'rotate-after', 'ra', 'rotate', 'r')); is_null($rotateAfter) or ($rotateAfter >= -360 and $rotateAfter <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateAfter = $rotateAfter"); $autoRotate = getDefined(array('autoRotate', 'auto-rotate', 'aro'), true, false); verbose("autoRotate = $autoRotate"); $filters = array(); $filter = get(array('filter', 'f')); if ($filter) { $filters[] = $filter; } for ($i = 0; $i < 10; $i++) { $filter = get(array("filter{$i}", "f{$i}")); if ($filter) { $filters[] = $filter; } } verbose("filters = " . print_r($filters, 1)); $outputFormat = getDefined('json', 'json', null); $outputFormat = getDefined('ascii', 'ascii', $outputFormat); verbose("outputformat = $outputFormat"); if ($outputFormat == 'ascii') { $defaultOptions = getConfig( 'ascii-options', array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ) ); $options = get('ascii'); $options = explode(',', $options); if (isset($options[0]) && !empty($options[0])) { $defaultOptions['characterSet'] = $options[0]; } if (isset($options[1]) && !empty($options[1])) { $defaultOptions['scale'] = $options[1]; } if (isset($options[2]) && !empty($options[2])) { $defaultOptions['luminanceStrategy'] = $options[2]; } if (count($options) > 3) { unset($options[0]); unset($options[1]); unset($options[2]); $characterString = implode($options); $defaultOptions['customCharacterSet'] = $characterString; } $img->setAsciiOptions($defaultOptions); } $dpr = get(array('ppi', 'dpr', 'device-pixel-ratio'), 1); verbose("dpr = $dpr"); $convolve = get('convolve', null); $convolutionConstant = getConfig('convolution_constant', array()); if ($convolve && isset($convolutionConstant)) { $img->addConvolveExpressions($convolutionConstant); verbose("convolve constant = " . print_r($convolutionConstant, 1)); } verbose("convolve = " . print_r($convolve, 1)); $upscale = getDefined(array('no-upscale', 'nu'), false, true); verbose("upscale = $upscale"); $postProcessing = getConfig('postprocessing', array( 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', 'png_deflate' => false, 'png_deflate_cmd' => '/usr/local/bin/pngout -q', 'jpeg_optimize' => false, 'jpeg_optimize_cmd' => '/usr/local/bin/jpegtran -copy none -optimize', )); $alias = get('alias', null); $aliasPath = getConfig('alias_path', null); $validAliasname = getConfig('valid_aliasname', '#^[a-z0-9A-Z-_]+$#'); $aliasTarget = null; if ($alias && $aliasPath && $passwordMatch) { $aliasTarget = $aliasPath . $alias; $useCache = false; is_writable($aliasPath) or errorPage("Directory for alias is not writable.", 403); preg_match($validAliasname, $alias) or errorPage('Filename for alias contains invalid characters. Do not add extension.', 404); } elseif ($alias) { errorPage('Alias is not enabled in the config file or password not matching.', 403); } verbose("alias = $alias"); $cacheControl = getConfig('cache_control', null); if ($cacheControl) { verbose("cacheControl = $cacheControl"); $img->addHTTPHeader("Cache-Control", $cacheControl); } if ($dummyImage === true) { $dummyDir = $cache->getPathToSubdir("dummy"); $img->setSaveFolder($dummyDir) ->setSource($dummyFilename, $dummyDir) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'bgColor' => $bgColor, ) ) ->setJpegQuality($quality) ->setPngCompression($compress) ->createDummyImage() ->generateFilename(null, false) ->save(null, null, false); $srcImage = $img->getTarget(); $imagePath = null; verbose("src (updated) = $srcImage"); } $srgbDefault = getConfig('srgb_default', false); $srgbColorProfile = getConfig('srgb_colorprofile', __DIR__ . '/../icc/sRGB_IEC61966-2-1_black_scaled.icc'); $srgb = getDefined('srgb', true, null); if ($srgb || $srgbDefault) { $filename = $img->convert2sRGBColorSpace( $srcImage, $imagePath, $cache->getPathToSubdir("srgb"), $srgbColorProfile, $useCache ); if ($filename) { $srcImage = $img->getTarget(); $imagePath = null; verbose("srgb conversion and saved to cache = $srcImage"); } else { verbose("srgb not op"); } } if ($status) { $text = "img.php version = " . CIMAGE_VERSION . "\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; $res = $cache->getStatusOfSubdir(""); $text .= "Cache $res\n"; $res = $cache->getStatusOfSubdir("remote"); $text .= "Cache remote $res\n"; $res = $cache->getStatusOfSubdir("dummy"); $text .= "Cache dummy $res\n"; $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; $res = $cache->getStatusOfSubdir($fasttrackCache); $text .= "Cache fasttrack $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; $text .= "Extension exif is $no loaded.
"; $no = extension_loaded('curl') ? null : 'NOT'; $text .= "Extension curl is $no loaded.
"; $no = extension_loaded('imagick') ? null : 'NOT'; $text .= "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; if (!$no) { $text .= print_r(gd_info(), 1); } echo << From 493ed4531143944ad6baeb390a70ae0f023250c3 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 10:44:27 +0200 Subject: [PATCH 26/50] more test --- functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions.php b/functions.php index b4e17c4..0a55c8e 100644 --- a/functions.php +++ b/functions.php @@ -16,7 +16,7 @@ function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { - die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); + return; } $details = ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; From 689865a8b278d44acc4b8350c8cf50d529924ac6 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 11:19:53 +0200 Subject: [PATCH 27/50] even more testing --- REVISION.md | 4 ++-- defines.php | 6 ------ functions.php | 3 ++- webroot/img.php | 5 +++++ webroot/img_config.php | 20 +++++++++++++++++++- webroot/imgd.php | 16 ++++++++-------- webroot/imgf.php | 10 +++++++++- webroot/imgf_config.php | 1 + webroot/imgp.php | 16 ++++++++-------- webroot/imgs.php | 4 ++-- 10 files changed, 56 insertions(+), 29 deletions(-) create mode 120000 webroot/imgf_config.php diff --git a/REVISION.md b/REVISION.md index 91fe28c..d044825 100644 --- a/REVISION.md +++ b/REVISION.md @@ -11,11 +11,11 @@ v0.7.13 (2016-08-08) * Moved functions from img.php to `functions.php`. * Added function `trace()` to measure speed and memory consumption, only for development. * Added fast cache #149. -* Added `imgf.php` as shortcut to check for fast cache, before loading `img.php` as usual. +* Added `imgf.php` as shortcut to check for fast cache, before loading `img.php` as usual, adding `imgf_config.php` as symlink to `img_config.php`. * Created `defines.php` and moved definition av version there. * Fixed images in README, #148. * Initiated dependency injection to `CImage`, class names can be set in config file and will be injected to `CImage` from `img.php`. Not implemented for all classes. #151. -* Enabled debug mode to make it easeier to trace what actually happens while processing the image, #150. +* Enabled debug mode to make it easier to trace what actually happens while processing the image, #150. v0.7.12 (2016-06-01) diff --git a/defines.php b/defines.php index 2667912..b64ecbe 100644 --- a/defines.php +++ b/defines.php @@ -4,9 +4,3 @@ define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); - -// Change to true to enable debug mode which logs additional information -// to file. Only use for test and development. -define("CIMAGE_DEBUG", true); -define("CIMAGE_DEBUG_FILE", "/tmp/cimage"); -//define("CIMAGE_DEBUG", false); diff --git a/functions.php b/functions.php index 0a55c8e..b46ade8 100644 --- a/functions.php +++ b/functions.php @@ -19,7 +19,8 @@ function trace($msg) return; } - $details = ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; + $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); + $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); diff --git a/webroot/img.php b/webroot/img.php index 63e0399..15d4a96 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -20,6 +20,11 @@ if (is_file($configFile)) { $config = array(); } +// Make CIMAGE_DEBUG false by default, if not already defined +if (!defined("CIMAGE_DEBUG")) { + define("CIMAGE_DEBUG", false); +} + /** diff --git a/webroot/img_config.php b/webroot/img_config.php index a3dfe21..d6ea19d 100644 --- a/webroot/img_config.php +++ b/webroot/img_config.php @@ -5,6 +5,24 @@ * config-file imgtest_config.php. * */ + + + +/** + * Change to true to enable debug mode which logs additional information + * to file. Only use for test and development. You must create the logfile + * and make it writable by the webserver or log entries will silently fail. + * + * CIMAGE_DEBUG will be false by default, if its not defined. + */ +if (!defined("CIMAGE_DEBUG")) { + //define("CIMAGE_DEBUG", false); + define("CIMAGE_DEBUG", true); + define("CIMAGE_DEBUG_FILE", "/tmp/cimage"); +} + + + return array( /** @@ -61,7 +79,7 @@ return array( * Default values: * fast_track_allow: false */ - //'fast_track_allow' => true, + 'fast_track_allow' => true, diff --git a/webroot/imgd.php b/webroot/imgd.php index de537c8..a4e3891 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -43,12 +43,6 @@ define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); -// Change to true to enable debug mode which logs additional information -// to file. Only use for test and development. -define("CIMAGE_DEBUG", true); -define("CIMAGE_DEBUG_FILE", "/tmp/cimage"); -//define("CIMAGE_DEBUG", false); - /** @@ -68,10 +62,11 @@ function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { - die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); + return; } - $details = ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; + $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); + $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); @@ -4316,6 +4311,11 @@ if (is_file($configFile)) { $config = array(); } +// Make CIMAGE_DEBUG false by default, if not already defined +if (!defined("CIMAGE_DEBUG")) { + define("CIMAGE_DEBUG", false); +} + /** diff --git a/webroot/imgf.php b/webroot/imgf.php index 85b80b8..4637807 100644 --- a/webroot/imgf.php +++ b/webroot/imgf.php @@ -13,12 +13,17 @@ if (is_file($configFile) && is_readable($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array( - "debug" => false, + "fast_track_allow" => true, "autoloader" => __DIR__ . "/../autoload.php", "cache_path" => __DIR__ . "/../cache/", ); } +// Make CIMAGE_DEBUG false by default, if not already defined +if (!defined("CIMAGE_DEBUG")) { + define("CIMAGE_DEBUG", false); +} + // Debug mode needs additional functions if (CIMAGE_DEBUG) { require $config["autoloader"]; @@ -37,6 +42,9 @@ $query = $_GET; // Do not use cache when no-cache is active $useCache = !(array_key_exists("no-cache", $query) || array_key_exists("nc", $query)); +// Only use cache if enabled by configuration +$useCache = $useCache && isset($config["fast_track_allow"]) && $config["fast_track_allow"] === true; + // Remove parts from querystring that should not be part of filename $clear = array("nc", "no-cache"); foreach ($clear as $value) { diff --git a/webroot/imgf_config.php b/webroot/imgf_config.php new file mode 120000 index 0000000..eef6699 --- /dev/null +++ b/webroot/imgf_config.php @@ -0,0 +1 @@ +img_config.php \ No newline at end of file diff --git a/webroot/imgp.php b/webroot/imgp.php index 64a2844..43928f8 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -43,12 +43,6 @@ define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); -// Change to true to enable debug mode which logs additional information -// to file. Only use for test and development. -define("CIMAGE_DEBUG", true); -define("CIMAGE_DEBUG_FILE", "/tmp/cimage"); -//define("CIMAGE_DEBUG", false); - /** @@ -68,10 +62,11 @@ function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { - die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); + return; } - $details = ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; + $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); + $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); @@ -4316,6 +4311,11 @@ if (is_file($configFile)) { $config = array(); } +// Make CIMAGE_DEBUG false by default, if not already defined +if (!defined("CIMAGE_DEBUG")) { + define("CIMAGE_DEBUG", false); +} + /** diff --git a/webroot/imgs.php b/webroot/imgs.php index fce3bca..41fb381 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -1,5 +1,5 @@ 'strict', ); define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); define("CIMAGE_DEBUG", true); define("CIMAGE_DEBUG_FILE", "/tmp/cimage"); function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { die("Using trace without a writable logfile. Create the file '$file' and make it writable for the web server."); } $details = ":" . (string) round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6) . "ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at + define("CIMAGE_BUNDLE", true); $config = array( 'mode' => 'strict', ); define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { return; } $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType, $this->attr) = getimagesize($file); if (empty($info)) { throw new Exception("The file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . image_type_to_mime_type($this->fileType)); } return $this; } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } else { $this->newWidth = $width; $this->newHeight = $height; } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails($this->pathToImage); $this->image = imagecreatefromstring(file_get_contents($this->pathToImage)); if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newWidth < $this->width) { $cropX = round(($this->width/2) - ($this->newWidth/2)); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } if ($this->newHeight < $this->height) { $cropY = round(($this->height/2) - ($this->newHeight/2)); } $this->log(" cwidth: $this->cropWidth"); $this->log(" cheight: $this->cropHeight"); $this->log(" nwidth: $this->newWidth"); $this->log(" nheight: $this->newHeight"); $this->log(" width: $this->width"); $this->log(" height: $this->height"); $this->log(" posX: $posX"); $this->log(" posY: $posY"); $this->log(" cropX: $cropX"); $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with 11 float values. Got $expression." ); } array_walk($part, function ($item, $key) { if (!is_numeric($item)) { throw new Exception("Argument to convolve expression should be float but is not."); } }); return array( array( array($part[0], $part[1], $part[2]), array($part[3], $part[4], $part[5]), array($part[6], $part[7], $part[8]), ), $part[9], $part[10], ); } public function addConvolveExpressions($options) { $this->convolves = array_merge($this->convolves, $options); return $this; } public function imageConvolution($options = null) { $options = $options ? $options : $this->convolve; $this->log("Convolution with '$options'"); $options = explode(":", $options); foreach ($options as $option) { list($matrix, $divisor, $offset) = $this->createConvolveArguments($option); imageconvolution($this->image, $matrix, $divisor, $offset); } return $this; } public function setDefaultBackgroundColor($color) { $this->log("Setting default background color to '$color'."); if (!(strlen($color) == 6 || strlen($color) == 8)) { throw new Exception( "Background color needs a hex value of 6 or 8 digits. 000000-FFFFFF or 00000000-FFFFFF7F. @@ -9,7 +9,7 @@

CImage Verbose Output

{$log}
EOD; -} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } class CFastTrackCache { private $enabled = false; private $path; private $filename; private $container; public function enable($enabled) { $this->enabled = $enabled; return $this; } public function setCacheDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = rtrim($path, "/"); return $this; } public function setFilename($clear) { $query = $_GET; foreach ($clear as $value) { unset($query[$value]); } arsort($query); $queryAsString = http_build_query($query); $this->filename = md5($queryAsString); if (CIMAGE_DEBUG) { $this->container["query-string"] = $queryAsString; } return $this->filename; } public function addHeader($header) { $this->container["header"][] = $header; return $this; } public function addHeaderOnOutput($header) { $this->container["header-output"][] = $header; return $this; } public function setSource($source) { $this->container["source"] = $source; return $this; } public function setLastModified($lastModified) { $this->container["last-modified"] = $lastModified; return $this; } public function getFilename() { return $this->path . "/" . $this->filename; } public function writeToCache() { if (!$this->enabled) { return false; } if (is_dir($this->path) && is_writable($this->path)) { $filename = $this->getFilename(); return file_put_contents($filename, json_encode($this->container)) !== false; } return false; } public function output() { $filename = $this->getFilename(); if (!is_readable($filename)) { return; } $item = json_decode(file_get_contents($filename), true); if (!is_readable($item["source"])) { return; } foreach ($item["header"] as $value) { header($value); } if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 304"); } exit; } foreach ($item["header-output"] as $value) { header($value); } if (CIMAGE_DEBUG) { trace(__CLASS__ . " 200"); } readfile($item["source"]); exit; } } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } if (!defined("CIMAGE_BUNDLE")) { if (!isset($config["autoloader"])) { die("CImage: Missing autoloader."); } require $config["autoloader"]; } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = " . CIMAGE_VERSION); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $CImage = getConfig('CImage', 'CImage'); $img = new $CImage(); $img->setVerbose($verbose || $verboseFile); $CCache = getConfig('CCache', 'CCache'); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new $CCache(); $cache->setDir($cachePath); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $fastTrackCache = "fasttrack"; $allowFastTrackCache = getConfig('fast_track_allow', false); $CFastTrackCache = getConfig('CFastTrackCache', 'CFastTrackCache'); $ftc = new $CFastTrackCache(); $ftc->setCacheDir($cache->getPathToSubdir($fastTrackCache)) ->enable($allowFastTrackCache) ->setFilename(array('no-cache', 'nc')); $img->injectDependency("fastTrackCache", $ftc); if ($useCache && $allowFastTrackCache) { if (CIMAGE_DEBUG) { trace("img.php fast track cache enabled and used"); } $ftc->output(); } $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a +} } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } class CFastTrackCache { private $enabled = false; private $path; private $filename; private $container; public function enable($enabled) { $this->enabled = $enabled; return $this; } public function setCacheDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = rtrim($path, "/"); return $this; } public function setFilename($clear) { $query = $_GET; foreach ($clear as $value) { unset($query[$value]); } arsort($query); $queryAsString = http_build_query($query); $this->filename = md5($queryAsString); if (CIMAGE_DEBUG) { $this->container["query-string"] = $queryAsString; } return $this->filename; } public function addHeader($header) { $this->container["header"][] = $header; return $this; } public function addHeaderOnOutput($header) { $this->container["header-output"][] = $header; return $this; } public function setSource($source) { $this->container["source"] = $source; return $this; } public function setLastModified($lastModified) { $this->container["last-modified"] = $lastModified; return $this; } public function getFilename() { return $this->path . "/" . $this->filename; } public function writeToCache() { if (!$this->enabled) { return false; } if (is_dir($this->path) && is_writable($this->path)) { $filename = $this->getFilename(); return file_put_contents($filename, json_encode($this->container)) !== false; } return false; } public function output() { $filename = $this->getFilename(); if (!is_readable($filename)) { return; } $item = json_decode(file_get_contents($filename), true); if (!is_readable($item["source"])) { return; } foreach ($item["header"] as $value) { header($value); } if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 304"); } exit; } foreach ($item["header-output"] as $value) { header($value); } if (CIMAGE_DEBUG) { trace(__CLASS__ . " 200"); } readfile($item["source"]); exit; } } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } if (!defined("CIMAGE_DEBUG")) { define("CIMAGE_DEBUG", false); } if (!defined("CIMAGE_BUNDLE")) { if (!isset($config["autoloader"])) { die("CImage: Missing autoloader."); } require $config["autoloader"]; } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = " . CIMAGE_VERSION); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $CImage = getConfig('CImage', 'CImage'); $img = new $CImage(); $img->setVerbose($verbose || $verboseFile); $CCache = getConfig('CCache', 'CCache'); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new $CCache(); $cache->setDir($cachePath); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $fastTrackCache = "fasttrack"; $allowFastTrackCache = getConfig('fast_track_allow', false); $CFastTrackCache = getConfig('CFastTrackCache', 'CFastTrackCache'); $ftc = new $CFastTrackCache(); $ftc->setCacheDir($cache->getPathToSubdir($fastTrackCache)) ->enable($allowFastTrackCache) ->setFilename(array('no-cache', 'nc')); $img->injectDependency("fastTrackCache", $ftc); if ($useCache && $allowFastTrackCache) { if (CIMAGE_DEBUG) { trace("img.php fast track cache enabled and used"); } $ftc->output(); } $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a matching file exists on the filesystem.', 404 ); } } if ($imagePathConstraint && !$dummyImage && !$remoteSource) { $imageDir = realpath($imagePath); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( 'Security constraint: Source image is not below the directory "image_path" as specified in the config file img_config.php.', 404 ); } verbose("src = $srcImage"); $sizeConstant = getConfig('size_constant', function () { $sizes = array( 'w1' => 613, 'w2' => 630, ); $gridColumnWidth = 30; $gridGutterWidth = 10; $gridColumns = 24; for ($i = 1; $i <= $gridColumns; $i++) { $sizes['c' . $i] = ($gridColumnWidth + $gridGutterWidth) * $i - $gridGutterWidth; } return $sizes; }); $sizes = call_user_func($sizeConstant); $newWidth = get(array('width', 'w')); $maxWidth = getConfig('max_width', 2000); if (isset($sizes[$newWidth])) { $newWidth = $sizes[$newWidth]; } if ($newWidth[strlen($newWidth)-1] == '%') { is_numeric(substr($newWidth, 0, -1)) or errorPage('Width % not numeric.', 404); } else { is_null($newWidth) or ($newWidth > 10 && $newWidth <= $maxWidth) or errorPage('Width out of range.', 404); } verbose("new width = $newWidth"); $newHeight = get(array('height', 'h')); $maxHeight = getConfig('max_height', 2000); if (isset($sizes[$newHeight])) { $newHeight = $sizes[$newHeight]; } if ($newHeight[strlen($newHeight)-1] == '%') { is_numeric(substr($newHeight, 0, -1)) or errorPage('Height % out of range.', 404); } else { is_null($newHeight) or ($newHeight > 10 && $newHeight <= $maxHeight) or errorPage('Height out of range.', 404); } verbose("new height = $newHeight"); $aspectRatio = get(array('aspect-ratio', 'ar')); $aspectRatioConstant = getConfig('aspect_ratio_constant', function () { return array( '3:1' => 3/1, '3:2' => 3/2, '4:3' => 4/3, '8:5' => 8/5, '16:10' => 16/10, '16:9' => 16/9, 'golden' => 1.618, ); }); $aspectRatios = call_user_func($aspectRatioConstant); $negateAspectRatio = ($aspectRatio[0] == '!') ? true : false; $aspectRatio = $negateAspectRatio ? substr($aspectRatio, 1) : $aspectRatio; if (isset($aspectRatios[$aspectRatio])) { $aspectRatio = $aspectRatios[$aspectRatio]; } if ($negateAspectRatio) { $aspectRatio = 1 / $aspectRatio; } is_null($aspectRatio) or is_numeric($aspectRatio) or errorPage('Aspect ratio out of range', 404); verbose("aspect ratio = $aspectRatio"); $cropToFit = getDefined(array('crop-to-fit', 'cf'), true, false); verbose("crop to fit = $cropToFit"); $backgroundColor = getConfig('background_color', null); if ($backgroundColor) { $img->setDefaultBackgroundColor($backgroundColor); verbose("Using default background_color = $backgroundColor"); } $bgColor = get(array('bgColor', 'bg-color', 'bgc'), null); verbose("bgColor = $bgColor"); $resizeStrategy = getDefined(array('no-resample'), true, false); if ($resizeStrategy) { $img->setCopyResizeStrategy($img::RESIZE); verbose("Setting = Resize instead of resample"); } $fillToFit = get(array('fill-to-fit', 'ff'), null); verbose("fill-to-fit = $fillToFit"); if ($fillToFit !== null) { if (!empty($fillToFit)) { $bgColor = $fillToFit; verbose("fillToFit changed bgColor to = $bgColor"); } $fillToFit = true; verbose("fill-to-fit (fixed) = $fillToFit"); } $keepRatio = getDefined(array('no-ratio', 'nr', 'stretch'), false, true); verbose("keep ratio = $keepRatio"); $crop = get(array('crop', 'c')); verbose("crop = $crop"); $area = get(array('area', 'a')); verbose("area = $area"); $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { verbose("skip original is default ON"); $useOriginal = false; } verbose("use original = $useOriginal"); $quality = get(array('quality', 'q')); $qualityDefault = getConfig('jpg_quality', null); is_null($quality) or ($quality > 0 and $quality <= 100) or errorPage('Quality out of range', 404); if (is_null($quality) && !is_null($qualityDefault)) { $quality = $qualityDefault; } verbose("quality = $quality"); $compress = get(array('compress', 'co')); $compressDefault = getConfig('png_compression', null); is_null($compress) or ($compress > 0 and $compress <= 9) or errorPage('Compress out of range', 404); if (is_null($compress) && !is_null($compressDefault)) { $compress = $compressDefault; } verbose("compress = $compress"); $saveAs = get(array('save-as', 'sa')); verbose("save as = $saveAs"); $scale = get(array('scale', 's')); is_null($scale) or ($scale >= 0 and $scale <= 400) or errorPage('Scale out of range', 404); verbose("scale = $scale"); $palette = getDefined(array('palette', 'p'), true, false); verbose("palette = $palette"); $sharpen = getDefined('sharpen', true, null); verbose("sharpen = $sharpen"); $emboss = getDefined('emboss', true, null); verbose("emboss = $emboss"); $blur = getDefined('blur', true, null); verbose("blur = $blur"); $rotateBefore = get(array('rotateBefore', 'rotate-before', 'rb')); is_null($rotateBefore) or ($rotateBefore >= -360 and $rotateBefore <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateBefore = $rotateBefore"); $rotateAfter = get(array('rotateAfter', 'rotate-after', 'ra', 'rotate', 'r')); is_null($rotateAfter) or ($rotateAfter >= -360 and $rotateAfter <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateAfter = $rotateAfter"); $autoRotate = getDefined(array('autoRotate', 'auto-rotate', 'aro'), true, false); verbose("autoRotate = $autoRotate"); $filters = array(); $filter = get(array('filter', 'f')); if ($filter) { $filters[] = $filter; } for ($i = 0; $i < 10; $i++) { $filter = get(array("filter{$i}", "f{$i}")); if ($filter) { $filters[] = $filter; } } verbose("filters = " . print_r($filters, 1)); $outputFormat = getDefined('json', 'json', null); $outputFormat = getDefined('ascii', 'ascii', $outputFormat); verbose("outputformat = $outputFormat"); if ($outputFormat == 'ascii') { $defaultOptions = getConfig( 'ascii-options', array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ) ); $options = get('ascii'); $options = explode(',', $options); if (isset($options[0]) && !empty($options[0])) { $defaultOptions['characterSet'] = $options[0]; } if (isset($options[1]) && !empty($options[1])) { $defaultOptions['scale'] = $options[1]; } if (isset($options[2]) && !empty($options[2])) { $defaultOptions['luminanceStrategy'] = $options[2]; } if (count($options) > 3) { unset($options[0]); unset($options[1]); unset($options[2]); $characterString = implode($options); $defaultOptions['customCharacterSet'] = $characterString; } $img->setAsciiOptions($defaultOptions); } $dpr = get(array('ppi', 'dpr', 'device-pixel-ratio'), 1); verbose("dpr = $dpr"); $convolve = get('convolve', null); $convolutionConstant = getConfig('convolution_constant', array()); if ($convolve && isset($convolutionConstant)) { $img->addConvolveExpressions($convolutionConstant); verbose("convolve constant = " . print_r($convolutionConstant, 1)); } verbose("convolve = " . print_r($convolve, 1)); $upscale = getDefined(array('no-upscale', 'nu'), false, true); verbose("upscale = $upscale"); $postProcessing = getConfig('postprocessing', array( 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', 'png_deflate' => false, 'png_deflate_cmd' => '/usr/local/bin/pngout -q', 'jpeg_optimize' => false, 'jpeg_optimize_cmd' => '/usr/local/bin/jpegtran -copy none -optimize', )); $alias = get('alias', null); $aliasPath = getConfig('alias_path', null); $validAliasname = getConfig('valid_aliasname', '#^[a-z0-9A-Z-_]+$#'); $aliasTarget = null; if ($alias && $aliasPath && $passwordMatch) { $aliasTarget = $aliasPath . $alias; $useCache = false; is_writable($aliasPath) or errorPage("Directory for alias is not writable.", 403); preg_match($validAliasname, $alias) or errorPage('Filename for alias contains invalid characters. Do not add extension.', 404); } elseif ($alias) { errorPage('Alias is not enabled in the config file or password not matching.', 403); } verbose("alias = $alias"); $cacheControl = getConfig('cache_control', null); if ($cacheControl) { verbose("cacheControl = $cacheControl"); $img->addHTTPHeader("Cache-Control", $cacheControl); } if ($dummyImage === true) { $dummyDir = $cache->getPathToSubdir("dummy"); $img->setSaveFolder($dummyDir) ->setSource($dummyFilename, $dummyDir) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'bgColor' => $bgColor, ) ) ->setJpegQuality($quality) ->setPngCompression($compress) ->createDummyImage() ->generateFilename(null, false) ->save(null, null, false); $srcImage = $img->getTarget(); $imagePath = null; verbose("src (updated) = $srcImage"); } $srgbDefault = getConfig('srgb_default', false); $srgbColorProfile = getConfig('srgb_colorprofile', __DIR__ . '/../icc/sRGB_IEC61966-2-1_black_scaled.icc'); $srgb = getDefined('srgb', true, null); if ($srgb || $srgbDefault) { $filename = $img->convert2sRGBColorSpace( $srcImage, $imagePath, $cache->getPathToSubdir("srgb"), $srgbColorProfile, $useCache ); if ($filename) { $srcImage = $img->getTarget(); $imagePath = null; verbose("srgb conversion and saved to cache = $srcImage"); } else { verbose("srgb not op"); } } if ($status) { $text = "img.php version = " . CIMAGE_VERSION . "\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; $res = $cache->getStatusOfSubdir(""); $text .= "Cache $res\n"; $res = $cache->getStatusOfSubdir("remote"); $text .= "Cache remote $res\n"; $res = $cache->getStatusOfSubdir("dummy"); $text .= "Cache dummy $res\n"; $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; $res = $cache->getStatusOfSubdir($fasttrackCache); $text .= "Cache fasttrack $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; $text .= "Extension exif is $no loaded.
"; $no = extension_loaded('curl') ? null : 'NOT'; $text .= "Extension curl is $no loaded.
"; $no = extension_loaded('imagick') ? null : 'NOT'; $text .= "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; if (!$no) { $text .= print_r(gd_info(), 1); } echo << From 9a912e7f01ee6951ef7c891098c4ad8dfa4961d9 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 11:33:04 +0200 Subject: [PATCH 28/50] prepare to merge --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7f42932..d09f447 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,9 @@ Documentation -------------------------------------- Read full documentation at: -http://dbwebb.se/opensource/cimage +http://dbwebb.se/opensource/cimage + +New website is being setup at [cimage.se](https://cimage.se), to improve documentation (work is ongoing). @@ -47,14 +49,14 @@ There are several ways of installing. You either install the whole project which The [sourcode is available on GitHub](https://github.com/mosbth/cimage). Clone, fork or [download as zip](https://github.com/mosbth/cimage/archive/master.zip). -**Latest stable version is v0.7.12 released 2016-06-01.** +**Latest stable version is v0.7.13 released 2016-08-08.** I prefer cloning like this. Do switch to the latest stable version. ```bash git clone git://github.com/mosbth/cimage.git cd cimage -git checkout v0.7.12 +git checkout v0.7.13 ``` Make the cache-directory writable by the webserver. @@ -77,7 +79,7 @@ There are some all-included bundles of `img.php` that can be downloaded and used Dowload the version of your choice like this. ```bash -wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.12/webroot/imgp.php +wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.13/webroot/imgp.php ``` Open up the file in your editor and edit the array `$config`. Ensure that the paths to the image directory and the cache directory matches your environment, or create an own config-file for the script. From 9b110037b42b4be70088fad717b72ba7fcec2881 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 11:35:12 +0200 Subject: [PATCH 29/50] prepare to tag v0.7.13 --- webroot/img_config.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webroot/img_config.php b/webroot/img_config.php index d6ea19d..710b1d1 100644 --- a/webroot/img_config.php +++ b/webroot/img_config.php @@ -16,8 +16,8 @@ * CIMAGE_DEBUG will be false by default, if its not defined. */ if (!defined("CIMAGE_DEBUG")) { - //define("CIMAGE_DEBUG", false); - define("CIMAGE_DEBUG", true); + define("CIMAGE_DEBUG", false); + //define("CIMAGE_DEBUG", true); define("CIMAGE_DEBUG_FILE", "/tmp/cimage"); } @@ -41,7 +41,7 @@ return array( * mode: 'production' */ //'mode' => 'production', - 'mode' => 'development', + //'mode' => 'development', //'mode' => 'strict', From 17386803016fff8b1f79fce73cea8d27c8a73dce Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 12:19:04 +0200 Subject: [PATCH 30/50] Make fast track cache disabled by default in the config file. --- webroot/img_config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webroot/img_config.php b/webroot/img_config.php index 710b1d1..df1d5fa 100644 --- a/webroot/img_config.php +++ b/webroot/img_config.php @@ -79,7 +79,7 @@ return array( * Default values: * fast_track_allow: false */ - 'fast_track_allow' => true, + //'fast_track_allow' => true, From 8e10e9ba5c93329ab2dd36f10c1cad500bc30094 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 12:19:31 +0200 Subject: [PATCH 31/50] Re-add removed cache directory. --- cache/.gitignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cache/.gitignore diff --git a/cache/.gitignore b/cache/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/cache/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore From 43cb5b79b2e971c56bc1551db0e7b7e8523f0dde Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 12:20:01 +0200 Subject: [PATCH 32/50] prepare to tag v0.7.14 --- README.md | 6 +++--- REVISION.md | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d09f447..d23c57d 100644 --- a/README.md +++ b/README.md @@ -49,14 +49,14 @@ There are several ways of installing. You either install the whole project which The [sourcode is available on GitHub](https://github.com/mosbth/cimage). Clone, fork or [download as zip](https://github.com/mosbth/cimage/archive/master.zip). -**Latest stable version is v0.7.13 released 2016-08-08.** +**Latest stable version is v0.7.14 released 2016-08-08.** I prefer cloning like this. Do switch to the latest stable version. ```bash git clone git://github.com/mosbth/cimage.git cd cimage -git checkout v0.7.13 +git checkout v0.7.14 ``` Make the cache-directory writable by the webserver. @@ -79,7 +79,7 @@ There are some all-included bundles of `img.php` that can be downloaded and used Dowload the version of your choice like this. ```bash -wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.13/webroot/imgp.php +wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.14/webroot/imgp.php ``` Open up the file in your editor and edit the array `$config`. Ensure that the paths to the image directory and the cache directory matches your environment, or create an own config-file for the script. diff --git a/REVISION.md b/REVISION.md index d044825..2c47505 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,6 +5,12 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) +v0.7.14 (2016-08-08) +------------------------------------- + +* Re-add removed cache directory. + + v0.7.13 (2016-08-08) ------------------------------------- From 1e5de9d2254b1dbb3bc7ebb07e72425c65e9d7fa Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 14:42:12 +0200 Subject: [PATCH 33/50] Added the [Lenna/Lena sample image](http://www.cs.cmu.edu/~chuck/lennapg/) as tif and created a png, jpeg and webp version using Imagick convert `convert lena.tif lena.{png,jpg,webp}`. --- webroot/img/lena.jpg | Bin 0 -> 404330 bytes webroot/img/lena.png | Bin 0 -> 474775 bytes webroot/img/lena.tif | Bin 0 -> 786572 bytes webroot/img/lena.webp | Bin 0 -> 134142 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 webroot/img/lena.jpg create mode 100644 webroot/img/lena.png create mode 100644 webroot/img/lena.tif create mode 100644 webroot/img/lena.webp diff --git a/webroot/img/lena.jpg b/webroot/img/lena.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9db7051a936aa87f0b608e5b0cfd2f9d14cc51d1 GIT binary patch literal 404330 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 VH)~)lJB2_90_o>t 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/webroot/img/lena.png b/webroot/img/lena.png new file mode 100644 index 0000000000000000000000000000000000000000..8038fa417d7c0c302dd1d0d7fac2aa1628209618 GIT binary patch literal 474775 zcmV)XK&`)tP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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%0DfgtSWFYv!7=1U)V{}2+9Rl~QAh{i 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
|F;q#jai zCpqCYJ^n#BwLTPIXcr;^e$;B0=+(ZcbpR3px-62s)+c_8H*J-7+*&W*PCxB_Kjl6@ z%|T>_ON4f>pK8Ci;gFl=Pyltk8)>;a_BW@P-<%THdFl>C6?iQOliUH+X3dhFk3-&qflTF%ny( z+)f#%O~vU_q_hZGulXQ<6udVmyREYBLd~a4>HA#$2cSJ?g7Xo851RK@S*IC{0093t z0Px`*C>>K}twuqoS=<7(F9Vc+Rqa}!`pDWXV0#y|rfZu41ez*oHv%SF*{c6o?GRP)LMkxS%X>{=*j7 zK1{dUTeB0X-VKIm(1QZ=!IQDZ5%f}t%blr9?fI+ijDNUP9!1>p3V4eryrW`1C*t}A zbWlKo6k{APS()1De9cs$Y8q%iR&ag zf7fdMsuIo?X=X~fQ`zikJ$+n8ndIY#Sj106Y&$yqNqF={m%z#+K&bZ3-Gj(J7@Bo7 zsOYGF#mT_aPGNOkgiD^38v*Q_IDJDx+M8tc6TJ9F2;+P(?|hWv4odorD0)HWH_)_K zDT|ed;fmAa>or~$@WLCS z^D9*s&R8#9u6SKcEE62z#QqVI=oC|;y{&R*N3DW-FNk+ta9aX-2e1&sh+63dWf|-m zPmUv*aUhHVbJ`95*bN?0D;#51Ay7;0$t%6$*0|C3`&dJaeDH#;ceS|0TI|soCt@p+ zqe(aw6xnDziLJs&~dF?+zwyLZDYWhb?!C zTz-PG**A8h4`#im|8Mp|E1ja(JIWF0lBl@q7~K67aubVjBO>y4WLyI}@jjZ;E*B46 zxjgpf^4OD_?n>cPHvN8vwVufZ!AI0GH(2!s{O%O^`-zYhj`-EiG0R}=Z%19}j$Q_J zW<=~Nr|bZ9HHHDN6{g+pifzvMdlBV(5H&{;7f<=$bPc%YANk5B^hF@1JpzaysLn`C zCx-eFNB>9yghJeB8X2~$UjYG4q4g&u_CpaYF?o=dJOue4pg<%E$5QyCT;VsKXj~u} z7YfHDqHjvWq*^thfb(B528}Se6zHJiYR#BT41XNgrH=m%^PdE&b80$__kW~meqQcN3rhD-I8t{^Y)3S@EgaPu zMgD@p^@FE|#_W$x8c0YQq$T!)vy2+sPiBCMr8_p8Sx1NEXfd? zHzJdLv*!IQD4D7*pQ)=|cz*9cpWglN=!gFq{rvBN=J}3$-yS{a(})M8Jb--m3k3rr z(Vz;({%S~~ewE7ygo=JHr=JHme@LIwKhgL-l(-%ue8^1%^0R2veGKhF5IXNr02>s~ z>yhY(HscY90)KuhvvA1Dh?n4{;b~T&E4Tn zU+aSYrvv)8Q@Gz;5;p~jcKYQzN8jffnsc(d%g%II@?XnMohCz9UgitA<|b2}6&y$1 z?Vq?E;Dq+ks}R8}og&wI17MuA-qUb0tiU_+Iw|QTj{!y9c3DcJoZl^Bc1T!ndsMp$dbLwHor?(bfz0@l9x0UO!7O@l{YsErG^5Gga=yK6wzYb`wQQlK zW*(;cO+|BWil%Ja-dZ3(z_e$o`79uSX4}rqwAIbFUa)b2nqgl6T!_mvtykdZ`HrFR zDFp2Q@t~{|5m|Nt1;=3v0MCK|m;z-xL}eWDheS|@eUR~>m+@GzZm+j|yQgBimt>QZ zc#{WbiyLE|Yy2wvq~%VrzaJH?bxOpYc@*)f?_)8gDv> zJC&!LDuT(sdbU_ISEib;G|oUBpjtIup`U{-aJ3ZVFQA5;2OZd1#b2jYf0gNf6-(xF z;1xjh-JJ4GoiHIF_9x(a38*%7`2FDUdiRjhW1iWEe6sdu7g^&FQRjrI z4`AP=8SlrYKc-n9(RI&=!dqd1Qr@Be#8>9FqsM(mT3Ql!dLP6b55aJllh~SjKKnW zN4Dw_({KqZtPM{o_fM<{Pdtx~D~~2+At~ac{AB3a_%zMh!r4t@sC>N9JT}z z@K3kk74}jmQf;#CHdog`VLqqCJ)qGqg`(?1aA%|W=TRxmD$%E_Wj%Ge&QjGIne4tU z>se;bRf#^`J4JLD1JwfvhlDM2!mM{EEODZ&cEhc51Rp`n?+!7)J5x3~<@&~)#&IeT zk?DI8nY)}z4|-J{@jY`4aqf5^$enL`B3~jS8&P;z0d%3F-$kK6;9;U3`w2(wLzDU_ zq%T^=eS6Djt6G_E}i-5iL07ZwA;;$BjGZz6Yq&H(@W z7xRq_O(&2KYcYvf{e!lEhqg|M+3}9z4V6y6E`_Cw|HQGJAwJ# zF=mN#!dfJ2t!wI`;Oi_!tHsn^d8Q@J`Zlu=94jBPQk!&&+hT1gl0;f*$KT_JTkGP# z!YO!}3u?0;Zk;!2jl0DeRU1XQN#VQ{GCEY^F0HItFYScDKP-Y3yf!JjCr$eyL(!9~ z`v9>YD}*_<9sdRXTcF;n>ae8Rs=g*c2ROgdl%0A}i$w)9{6-__;9=FPXxGCCNYttq z0U8vZ3n2gM(1OWb+G5f{Bdj$|*pz8*N>#qLsNPznuZ^Zwllpb4xDkk;RvDlkAo=-L z&3UfXJ^|H*Quam(*M7k>h3=V5_*f!)A?3Z43!aF?_jtVfOy)hY;67XQNWce=c!PuvE z256t{=YKZaj{Rvk?cZIUYK7JCrK#2nKU-n>dwI6?QmIq0?c*Aq=MY-x9F=b$UT{1x z52R5Jp{d6MvK%6<$H55Wmv%6~veygh;iQQmj_lA$(D?IT%1>2iU`O1O(4`;+8_>m#|nJt*kl};7Or%F{nO2xBP zsWVXcEz`_anCGe$^OdUUYUQtT?LxU_{;X#4EJ)#vzlzkqO4-vTx_LAAhbduFl`Tx*Wgch7)ZVu#<~%x4@T@f{Vs<3jpwYTRzLE-Jg!dZ&<; zBRR##Zj6ao6;9Yml>6$fDdpvw+lHXrq+L{@m!ep4yF^)krl_G-dDGw`qi#UO?g`Zp z<(2%)%>8Ka`QkVFMZsWaQ+Vw5NGOHz?Nit%Vi}E2}X* zt;uYBAXeUHsxQYe&PT_e#>JP1QLj@IAF>6nxRORyYIAYUs|$5ca zrN_KayM@*}_}=phdleAY7K3gLkM4*ebYY1fp(-0ogZQE?Fi9o%<70ctvAwbM0ea$a z9CL`40L$O8_=GV|$_Sf3#^aB|fMm37vdW$Q@Gwu}3y8QGOE(zDebi z8u7T^G@;dg*IU176(EbB)IncNHD*+OGZ?-@S=f>~X;e+5$|j&GU>gk?fg?SxR*eV+ zBO*Qwe+F61FMLifiw!)tj&MSgUt}v1^*$WkgQxUUX+z+tVQ>IXG{j&JB_t0*NRxYakJN0o*TS!Y5K9;6Oh@Mu@@zJ3RDu0pkPz?LUi)=gw5m)t^~>diOtF&;M_z z>;J|-{b#UwzU{%pz3X2j0-&sak;(fN+CkVvNaceP;hCzdy({;@T)dPj5*gu}J3BlQegug#*yF!-#ZIoE)P21p>?M1jq zNO+o%0)^jh3IDy3-6c$H*9qIjyhc&-JB_G2UH&dl+mkDOpC;+f20y#16KHR6=BLWR z?FDBz+_bwaaN(Cjwx>lS1jus-u$@8mo+fFx4Sc})E^LDc3yt0=nOZ@p-EM>xF3% z-U6QLZ4uB1`d{~r3k`~eNBTt@{7q}4Jp<|oECA0lY?B`t`-91)vBEa7*f=GrRY z3$Ps^`9IfOI@?+{*IY8!STX~jrqY?likZf8AiP2I7sft6Tdq#q?*A8Op$pc2d8+No zRCE1QbKMlIhFj{3U8CWX?}Ey8iz>7WE^v-0umja^P~NGKbjOe^hmfq}NT9%_9}NI6 zfPS}^agQhTG>tnwrQ6)Zn_Wbk+*n|9TkDjt$~kVC181du=1%w8W1hDHBUqmVT!m@AQZ`?!U93r+ ztyTW3%Ji>l>0ecv`4Y)oQOb0N=sWCxb+Kbo+AxdonTYAc;huU2T(Ju-26-{;DRuo zxjs}$FR5H{LwGC>yVjSmB?t%b|2^>PktlXd zjNcwg-Qk7b>_J}bfnV;Jurn}uS4iY?hu|e3=W>HRooKrc{{Y$S5?+F0-77oWp<{f` z=H3X4QSA=oY;}|DgH9i+#y#Xxc;H|72yZg=^%Uu) zSnYML;YrbjS7*-;+&$NOF%3cyr$aHEbxwre9nni%P|F;nA=J9cfwt9yxZDA|xYH#+P|TrTjrK@l%Pq8me^z$nxi zL+!!gyP-cDg|z{5NO7O2Nni2tU&yferGF*Gex=Yx;u)iK`e;JZD1$Ye%o*qN$Jo3H zE*pr@qddU~q(DXNafx^w>cBGjxJ)vkl1xbW00`ofg6J~`i z;c3!*OM{w#b{uB@M(ZTt<1DapH4JNXBXahTNC2AMexb0R&HBV;!E~h~hTP~C+!h?! z9RaEW0^Iz8P%*@24zb`7AQ(wd3>ku((5E$r~tZ*f7_5}ePs94|&w6qj^e8qnvWc&P6kB6F%B6TOiVLvF@=@q}u zgS*3nyviB#PkZ$5rx=@%^rh~+t=<>n_;2*ao|>xndHG#gMR5LiDPUS|ek>MM;S%Nh zedD(v5;lVX0)%wVk+v0pXZ$+%d|$%lSl08z*hU5aqk`6>X7wl&-YFPuF#i#9JJga- zd1~m-e#jKR&q;61G`ves?aI^v@V_fvW?KXlTHE2J0A@ZmdOr{N4;=<|XBzn2HBEXR zP~$rFfcjUr8pJIoNt;Oood1?oC~zs;b<(#m{MXA`j8fqLG+E4zK>O4w-l{dtM$uc7 zyvZzt)c_2FY@IKd{Ojbl*8wO3tKrxeztBn_h~-cLd(LNp;rAg+(7ZjpuV5yeh1 zz)#Mx4=n%-utQk-5&!JNL0QNBEhhpq5Bp~v_RKowZ$9pwejv!W(@neAO9qR8?d~Zn z91@@^xYC}s)S0)@Eo-k=r9<$IFjNZ${eg`Cl0X;~aRw#aF|7^$_AOU6oef95ZnnZQ zQ?8mVH_cYSEXe$`S~^>;nJqWW)yfx68|P}IbD)4ft@>4~_^U**P{5kYmrSL?yKvID zk}=LF4JH$MVx!t4QBQ*-FF1!)or=mo5?$gLTj$BDk5u1{&wt9Rd?n9)!w^4>i3jat zy-&ogK-%pf^6hZ!6F=N7jPM3QeTS%diDJKqWL%Gtmm>IzgJgqUvh*k=#h#wDC)(<* zPW2X>oh7-riqfQlB3e;lLYdw(NqI8G;3ttfvp7ddDSJo^cmy0vkh_ZUn4tfJBd}9n@Yc$uHYfUV!(BDW6%jX@FG7iM4aE8;COLYY|&RHK>gVf~B zF_dli*h9gEsdvCNOj;XG+!m6&j|9&b(J>PLD4Mv{hrH1nwc4Gw)}66CKyeDi+ZzzG z#4dV;OC(e^S9_7Sx-#}es!s%&_ITD3{W3l6EUq51o$l1tuDDeQ%1(dQ?l7eTIz5nA zK{Zz3g+?a|ZL=q4gFnoX!hW+0TXr&RiGA?zC(tYG(5oGB%bbG$aT59eJP^M*r0fp9 zUs~B+kkOr=`?)BuFVozek<(Xf`czfim2Yg$$$62L|0b`nrM6(;UU^?b#)q2JMm4h% z8Km9oL0D=Z^_xS)Kb^z>VIRKMp1KoBT4^7*9)VtkfJHMFxG^g|XxqKAk;Iy4C@ka4 z5Mg=yJ+gPZr*CnrJsEVt3EAL=eC{9iI*ia5foY9G!z}%MG^(4%{)8fb0$NTy}RACzC@xO{ipTx2cw3Mz0T#H{=XK2j(sQ52f!T=5YFZ^L9doYDP zn3Om~XOA%GUxfnOa@G?$=n#7aZwhG~rVuzApydM<9+Q(?^A>NsZt~j(MiG zc;QOL;=}rXy}tdQ_FMnk)9^pt4RehRLzioMd92SuPQTVL04rdTpiikCl-cU=lz~X+SC-=mqbd%%X5fk5&sO_=T7ZJpp!SMS%l)obkx4{Sa;n=nAgiT1y25TK`Pj9 zi4#=9QOmuUn>~x1!*6kwFNOSfYGIE&rCZ7A)QUP}@y%jsGrSR)bsuxpAK;TM@5)eg z=i2&QUGPQ#!WWaU%OL4UlXqk)-ly5rz-AzgEltv#t^J};OcHKxJe0kWXlms&tTOW?x) zQpE>A=v$=#j(ynwzEJ31Y4lHo{3jyebE)*PM0}5e1pFT}bT<>+@E>!@A&|HQ%sjgr^;0`MT+S%*#F9Z zz%IB%2}ID@YU3|}|JP{d&MFq_B)`s>7b+z4HY2ck#wwXGu)!lR%7=h7?gNF`j*fX6 zMZV%gIPFTRbtasT7FiP>4v>XL-o zY@*5HDo^#0s2rKRlXT`$I(-|Sydj+aCsuM&op>l#fhsJqG-Tl95+^oeKNY_X8@&OG z+KeUd#h8dW#iIJO$O6d;W%5C$$dg|ruBb1$cdhhgK~xUpi16!CaYsY*%~xu*S9u3x zFJ=wc`O->m3VI*#~cku77AxoWrnq>+N7Do^Z658P^>*sVUyLm{~s#W{Y?IWoJFEYckcC9m_a#d4NI zAIB*M$ZX5)2%FsrYuv(qbMpCrE{OlMx~v zgOwTmMb`0}lJUB-(F>(xm&?E1D*0Sf_*yEyN~34m`SG_n$EGV)&p zD2p{l=Z!IwM_Jrasd1Dg9B0DKUpLNSPfA4-3XN?eEY(d&coR|u^uorWDW*0|YBk?9 z(n+InTxFh+1KUA82^}$`VbpAxFlu26G^$sP>ttgZ^@vV6A_rYBT-23cMf|TUX0Jm2 znM~^pC$u0Vy2A0@*!X@7WssgUl$bRGu|HH5;s;|1!*uKyw(M&Xd6-HXVx;uP zCH3NIaQJse(t5+teK8mynht})Ov3+eG*6YL&t0gRYq+}j{L)`9Z~v$D_OF)PQ!gHV zDK_^=c>Pil%zxm2K)+1UCz1^D`Cs`QXd?FuRDCSrX9ly2t@=ozzN5x>#!}j2NpJDQ zrxEyCw@@VjW;gkPjSI8J3%xENW`l3^TJM-Oew1BMIS-268Wg`NfVs^>xyMho%U2D2 zFz0CTZiN1@U#^{>VuxSiN~a{K@qz+!g$sJQd&*{Li+ht+yH`dgJ<_E26c)ZODDEk# zXv@iOR`6fz)33(!Pg7V~_A%6L9sq(vuSW!|K?JWx#4Pia><%dNMcrYDS`@q%HNRWQ z?A9jyJ^W|BRmi$D(w+=sPaf%Xj!a;C%G)!v?dhs_R%vI3pbKK3(Ctl=b*5_I zhn-egYbuQT#ckkxw1_(Z_?Bv8{=jY*?)l9o&6{*%YpV3MS@jyyo~gPftF+Z9Zq^%K z>4mS%x>mEe$*O|wLz_ z;E7azPr$#;=HBNDA96TQkbIYC`BH8kIcNTH1Dd=bZP(gPbqMx9QiIza+P(`9Q~v_C z=RNHr%zU8#bzccVpt;AXi?7n>UuDnRqW&fGuORkQ1U|37KV@^!`D(3Mfcbx84KUx} z=`h^_ke@PJ&&%fg0>gW?P5an#77qU@*z8AoR4gjUbREhj&g$266@MX3Hv|qZpGWq;z(|m z*lE}B8ZXQRMATJ}@OmHIZC^}-7y7m@_Gtj&PE^WmV(NXG?iD)eAz51!AjtCIn%t8# zC*qSfgwnQ03Qut}{G{1Isd(1DCKqCVXiC zep`&xMPbF2mztlJDN40|Dy6$9em^PUNCIX(Hfjx;v@1p#Vaey$r;`gb&IZ9Ti4394 zP0Ft?yL0nmON{^y{CLWaSn|%GTv1{D=|*dijI=Q{0sxE~5Y#Qfe4L}Ujgn2!X-EOQB30!|i01YF}cddKYx5;{>?N3o29uyhW^L(y^_6m7gv>pejt z%shscIp9hu`n<5D3`eBtFw{3(LAQZh;U2vj4rlk!HBN9)lh=A+R(pj0ZXdYB&;K9p z5vz~Y8FJg|YPyOGK9}bAmZc3`sDjVu^4z|&q zGh`WdZq#)igw+n{<*wns*+(rog<5hlYKa|bEBxGrw%U=f%$c;pjkwYqyTm=$foe{A9qg*Hrz8>S0JXta@J!ANra2v0teBAEapG>1LT;f=F6qXHff zp~ocRF}Y|$rkH>)Y6t?U#>I+JnRZ+(g*Sppg>q6a8q+Gq%qE*YMi0I)*b8XB8=x1g zpEPME&4x*Xd<+hMlVMCQ{;E(6^7(@R+fRw_WpO{#Qrd!J;rxFW6a|aj0etKrP$}XG zLv-{YjrN6xevb}m5B6(C1-&E3_mVJuvC*HX3Gi2aBvL-2aUalez0rg((WpKmdnlGZ z#N&Jy^QW?nb5;4Xx6ds+x$>_USAV^{yzuh&*!ALGgW|KCJD}3_3wT2?fKoy7NBvbO z8{|vAilv`K%Dxm%Z?d?XE%_85*F{fkqu`ry)Tac>tzdNSL7$}c-c%6suJZKnJh1^c^w{3dtO3MBmNn&*LTkQqDk^FEYUysIqi%q?gHdYephOQgC$3} zsZv{#A0nVuWiv?OQzcLkXtJ7LLG#OGZG_FQPSK=MzJP1L5%vNg|I#*r7eJ?OHwc>H zKh;QInPjh(un1PaQOcgHbkF7DrvU!}C@AOv#N3Bm$$daQ@T7ORl1E%lt5)(cU-`9G zH+IQ5c`JMFu6!Oi56{vUpQSB6)%=1v&qL+n1C8y>e_;95V5A`oQ*Sg~2|gda7)JpO(|pwmbh7 zNc%(72QK{6?QrM6Hr;s+zD%{9pN5S<+okE2x~b-C@F$nJM%zB#sKQgBMW=!aPXrY^ zMdTdwFR~9TI2oFI5}9+@FZ-l_o?W=rJ|yjcmt`-~xXZ)1$J?+6`2XIDt!~QAF2c?3 zoDH7b^-j9&p5@2=&LYAZLZe#H_3=+RDF`rnyS_VolnwTFv4a{a=;F#R~IZ`GVP8@oYNlho1Ufku=7} zeG##HsrYtm?DG)Jtw2V7NK&mUzQhine<-ZQ{Ji@%Fg-p42&Qw_J(8D#+T_hqHoCFzdPb$jr_KglwCW~zrMD?H8W zuT2d!Wsxn_yoxGXPC=;N;KY$T&{#*3llN02fAa}i8c5tt68o#F(;l43d7e)+TY{{x z7pCvWNnLfM?L^#KJboKm=&vXc-^wHu>;1FT?l}riLl&+4QpK%%x87gRdZ_m^CGTUB z|BN)y4CiZ}m63DlyP~4k`Qx^SkT(Zo*9Vez_{tm-Ao7BII%^FBEIE12Bxr8in z3|;9KwaPbYw;#wK<98z&hr&hnu_=4-v@KznwE=|nsKiZSCJ$PTprBTDrX(&^dL%Gz zsS{zDLk!I1S31I5f5b{h5C`KnxS=+K9PK>hPX)b9?M70$RduH^MD)J?7l>)mn7>`6;qDJz@_zk5lxal4Iz&r9)Ku|Ll*A#_)hl%+Z9r=Mk`H02$M&tUhm|hBX zfJlT9&>$8+Kp}nw1T-yvIEg*V9fMtA?@9H?3;i2+Apz>AQN zt0ki*%a}nmrdJOsY*Y7PiSR2csh7>_O=PxHL~W4-SW@&SFb3mdhiT-|xR?PZ?Hwlc znw^VflY@GrgMOo9$v&s+c8C|gUTqN(Jz>EgP~jh-GLOQ10>N=K_A>zl$8ld{siQ3B zce7!-ym0Pv^?bvH#U~dQpWps*yYg$ksn@9LmnsJoihhZrUnsVXeZ>4hsbG-JgGWFg zBdMPu`%GtjCQ*CH)OVzWRw}KD9Ctq^p$-u)-hoWo>=m;L#(-YYD-hrn#cZ=x3(*?` zsk=g$d;Dp;A`-Uvfbda$&|AAZz~mU1e$tn})l<9MGsE6r^oI{)y$gMVD{G5O;s*G~ z?M7SSPG07NU*??QMY^lYdv7uHm6dmw6t?7+10=as%zv&>UQcG{2gSv0agSW`up z97P96zO3?g80=V8;1}-5l!4@{Geh^z3`$=)Q~y8D(WjT4%ceFT~SWo z0eg%7*CXxXv(#UYVfe3Dgwy`9W&VM39+Lmh;N;gWfCT{RV9!$*US-4DccH0l0U$rk z#eaV(|J4HT0u{4wivi{^3o`en8le5pHJ|?b{67Q0PpJJu1sDonGcfb-I6K>ZWwztW zO#At%j{51gOS2u9e|B7%g0Td@!dR^Dl4?EjSfgU>90=9P*!` zg^m%qj-fdR0}AW{vk&^@9Q4jT9*}v|&w9W+ZLfFgZg10GANdXs!vTb5Pq1XGw|EDb zJDemNJgmDstL;Ls`$RmAjA^G(J^}(A*t0U`u!1+L=1rvXCbN}4bH(3_0JN+9nQxf^ z@>`8zs?zwgQZrqZHeaHisWJilXQ9G4Unl-mWBzxg{8yD?p$c9NL{r(K?*{gyDshxe z?iaE?(P*vYln2qtS3;8Nyy^M&nDjmV1t-Guj|3JU4=J~ggjQo6BI1He*cC+d4R6%V zQ2gCM{M`WTlR*5#Aj<6s!GjptgD7ELs5IYOV7A9vPtvm-+1A5U{ywb1gO?qaX7ZA& zTv*u=mdfOUYsR|sN%{Ff>QqmL!kH^^4Bg{}w)S{_Q;i85d^FV=L`C`&9zg~3ai zygP<*kfILEO5RJ4T8kp@rt%PyoRl+J_yT=ksx`1ogGfum=by{Cbm!vZJGD&(QN^?^ zSlq@So)7hOc|$d`hOs9+YK<3WlOJ(&C}~R|ZD)YuM7Y5YD?A*;fb_L3)t|4GzTH{XHgh<*GCUq1u53;E1P_*qqWl_x5^VeV1Ub>o?&E4n~ zw%if5%q?h{d-y7M$Yi3|+UUDj7|yJ-ft|xwc!ezS3jC)}&@yL}FXhd}vYrctA8X3` zFV+s;${l-nv;Si0(B?FAU!~`{i0iS6%U&(yX%NxWtX8aI2xw?-m1&u-{Kc zuW-gLb-*pN!vgJLg#&f1J%mXTS9?-cxyOQGd<`OYwI{q0WO<>gQH+`(Vil5*2i=W* zt{0DZ-u6V^aSguf5%SQ}?@d5(YiM|DSY$_ZbPqbZCmPcmjsAo}eMaH>VCPFFe4)?> zi1;tD*ac4l;Q{u)Qt3CCt|(PD zF0@oUp^=Xnu=jcD;{CwR?LMrG!$aRkMSO%(7?Jo1h3$(WLAq&_#hx^zPUTr_6u6tG z=O164d3a~MB5feeIFM=>P>Kg-wnxCAR5GYm_sdnoA}Ay9zi?p%!28S+f2MPKVp-5E z=#Hf|Qpj)7)SF?b+@rpUV2*&-y_In1_oZ$LB5d@*ZS;;_=ZW2ljNcuWvfYQWGcaMB z2Y0WBVV|G&aA3M~knylT1b(y!d@>wE60j2N9TysyZ@dMO;)8xQ>g998aFrDeP{C}H8 z`5v~tnQ1K$<~PBit!%SOS~D$eCIOu7Ee35Tyi*vYoq8!e8d{(fY*06%9lz_qe1;fr+#VBKL`G^n%ATPD1^dR2b1xi3%QL($r~;Il@@fs%2#UM6NUOd zd^c+0ss=I7{gOCs8x(^odmjeB0o%+X3>&z|l;%)V>r>Toi)QeBe zu>bw_Si1<@-pA_sr;z{D{q<10_{0K#!u*TOh1XdCYFlW^UwCT+JI^1o{OtKNe!?)TR3bW?0|l5BOBZgbY`^vc@fR_hep5D@kX zL++wdJ|@uzxvU{2XILW`)yT%I!f)yN>1@$dzT&^O->G6-_;apQ@}mqgpO6JI%v2a= zYs7PB00*R9s5AeoM)|8)Hk&V=E#OY)h`y)tCY1D1G39GY;%5rIHJ14_D)t%@U*V2{ z*nh!cWWoNRVt9Eu;Zx%rat;xA#uIhcBkZz!=nb#PhJf$~$moYbxQD(m&m$;z!#P(` z>hm%3+DKi_3A}7aSf(?j#DkgRkR;fKvigav{%W0vSntLyz-C`j);!l1T_YJYeB>JY zc##7qaUT}F+%MoaWb_tv>|S!F;M}>=h9Zhy=_=sviKTA|V7c(J31!^;s5p_V9G{q^E#8XbVZz-A(neR?_I8;ooaZ2g30m#~jI}8E?YzN1 zZlf3P6xAG%COf4RAHWrbCcLk^*i@czDUL1J9fDouhu>gB48^ST1KiOGEeS#_wGo zY&hR{x32kI{rPYtW4k?SiGAen_UP44nAMIkYk?FBC?Px43K#r3SKL~s_-$SZn>|th zDYn6lx*9=Q;z?NUN?+%mg~Zh2Q_hi?b>WG*`#nz|_P%!9^O~FAO)vBV?~o_H{xAH4 zTLPmyBg4DGZ6ly}1i~kH1Q79kc$_U=L%bG9g@VfGjjB6%I=T!+b7i-@!-L z4Pdu$Om7UjKaM^WOB$q-KE%a642-FD3eVUZqTXgBrB|H@yyk_v>K1z0CGx7B-_>LO zHyqt=yZAJN6ecSCeN^;kH2n*XIFb}UDwX_z_Q9Fr>8q!w9$ufkd3vg@sP$f0`4*cA zny}Rmw<(aYC4jirkGRPPw;qYx7yw0pl$}9|TfL!ap0vdW2E4ihzQ)78na5!Hi{Kyf z)twB=bqthl0pOc^;zrlRjgBc>U6@;Z$UyS^-3PVQ6A%Gc5@l^#&6ld8?wZ0Otud0X7TZ@GVVK#q+7@6QHnn)Q{G8v zts3#oDo}+L>FL*#-@SfBu5a?{mY#Q{As8*2O1^#iz#kr-r#lun{)R zKg;~}#0=;E+^hWAx0x{ZhnfFkBeZ%?L$(w4zubVO z2j)-b`Pt4(Ga&qeW52Z?5OA}$2fD0SC3trz zI1c0lIQh}Jhy9CBgk~S|Ej$%udm}jPU*Hg!e-K%C(!cDKfBuQ!?8Au6!=dR1eJ#5X zsr$T)JG>2lx*3iJz%od=(^Iq4L$@1|cf$XIOUT{8=vVmoE;8jahczGu`4@XsBN{aW zTv0rg1M`2$4}kxaqM~~S2fK4^^4`oUtokU zwoaD{XL2OdX1?wIFQR{C(Ld2?ZN%i)VW?Z4;k9-_#fQD~4tQnl_AEYztUMJCM4&1= zatLU#har5w)1fYesw_b6914@k(f=d61s41r@iSpuy&35Nr8In5d00$%vGMV>AP$I4k}v-2c@c5{<7Zk5OO3 zDXTVD-#P#Kg0?~HDkpA?W*m(w%d0G9~4{osOhwO#&KI0mou3IQp=O0Ur6Ug*_+aGw_(qZr-fT1Q$LE$u<> z={xb9QWq3&iyvjRFJY4hd7BqyYcPE)GGSK$eTQE(IAzv2`z~`0SmqV@n|tVTC#`Gz zb!%!9`0}#SKjh_n0m*D__UPlYqgSd&@6?VrTpWIJXXyF0o`!4BOUf0yoTFf-1YQ26 z_QYk**p(-7;0s>mj9vj-1}D-Q*VxrS_l4WOYvNkhxQ*`A4IY#g9)#bW;#Sz@2gaX8 zC0-!K)&{)-@^NxGaU1az}Z=YuYsJDUPt)XEZL1FJ>(C;Fnx`3z<4fCIv zJ`A}Rj|B_xASJ$^LjOvk_X7@&oH&w18%{_b28w<{@(54x_t=LsEKrQ`c#}fG1Wz;x zUKlvBA^fR;{12S`l1YJZRIHj%D!-*MVAOuo=!W!~QJHvDW?R&P{OhYk(9dQLFr=R`VYopSbz8g@wM0iFp@8=tbiO zXtaTZiM5H&VH-P8!OEl%Fh|jFpXLaLt4XEkz`OH7?8mJSJuZCf8q1` z*n-|`U1ef?MN@Tkit{f8v$^6a+!H z_~F-kvv-FiZuW)nXUYy=@$Nv&!4S(K?>y%S$#!3${wj|7X1V#Rc6qVaxWohdah)Uk z4^PD(p6F#x_}^V3e{&cA;d_zFYc!jCE7H4b3p=v&8n}wPNhysP8P~-6!T=I?PY`+y zn4n#l+x@jiqtlQ1*W(hNrKEHzc<(fd9v!ns&iSND>XI{?0Rf~I!eIY%uC6;x+YR%7 ztF9|U3~t|ctD*zW{4{g3nb(yHJRe<~7A8EPeFx4D=)EANtZXtWVOQI3mNx6Pz<+45 z$Xl)Ec6cdh!WsEug>C_oKh?T_S85h20Sc#|E7DHoh<>C?CN<0n4sn>3&`T$G5=gIu zLhGGE&Nzlu91bWv4A{@068p$X$B+uUkh4Chi|%0;T|%yThu-lIz7r5}-!J-UIPpaw z`hIxwy)foYwC)C0cQssGatNn8PO1*!pZAj(kH!i1V=OS|LCOpsOogjN;}~ajAeCaw zRxi2e6i(vG7aZe7Ee{A<7DC!Z5&LOMjQ46Zm3gr_R$?K4FN3l@l6i`)C8t{``EoZE zWg`W@DO%u|n3i0glXx{XDouv5YP=PBN#}}^s`HYwuAF{yCHrM=SZ?ATI{P@G)LeR@ z>_wWt+<&PP65{=v{GmJ>vcieH4v`2_fc1!^9idk5*ott%nRrotFp9R>ow(I6e4Ss| zX78}Iuu$_1`5m4JUXiNMd?+=g3_BP(q{kP&+nC4D~lyKy4P~AbwBrWUFUfm?e!(s#Qf+#PXsRm z50o42clU_@I7O{+qOEs>nSazOr;i8G|vbQI=pNE^#C#VK^QJKHM>pVob;zldC2; zl2I{#lrI?*@+ai-Q8hBGf`zYaOraiA3nvZcaYO}`t_kqP8w}$pjzU_E_z+Ci% zMFAS`3cry2 z7f8McRsB-^`#3>=RN@B!e#XbPGej>!nOD4m(cM_~YDg4&M{UBwD*$yDk+IV!VvSeO zY9K#&g|G4u9QKdhfQi}cCEAG|4!c4TBc)h6HJNZ+PdZ|l$kGFx>b zn6?2M@S7`ng_G4GtiUzkHkI{C#Is-ib)t8=_+BIbgNfavm2~Lk?OGk&`QK#%@Il*^ zVZZ$M0O2Rc(v^z#B*UY@-sI}Esalit9WdL6$fz0Z)~f;a)@Bxi;TI&2tp>C?Ne6?V zW~;WQVAqE`=9_MpOY$if1tVR|+0Wg!d)rBcbRXANIe3XQ=93l6)Ws8LdXA8VtW4 z0Nx)?d&|P})P*My@;59z)58{E@o5sg2+ZGyZ*7Y&Y>Usc7G7p9zA0U7tz2r&Ujn69 zYt=$)1#o*H^RoyKf{qLGc9=uWkGAu`c7vJ!9Bg}AVA>DY{!4RRbql>W=DOh6w~v74 zIxo%lT!jb3YzOEd;am8F^>c02zgp|z+HYS0v_L7KF83G#K1DA6(D}_hPRKsyU3A2& z@Hip=2)^*3SHV%QTp(&5^vc}hnF(&$L*5yOysZ0h$$Q*V_F^G|lC;~?y4M4IaLKzd zS-afJPZF2@PZy|Wij!xGlV+g; zR$`qkFwPVhW-G0~s`LvLhIwEC)g;YVY8I=sOVue$<;wpRAagm&pJ|d=Q~acnKQ5;Z zvdABpk-ZV&O+>;KS3;G8AHd)8cYEdS@+>&+Q|^F2f5yMcop8Y`_%clX2_d)K18!kM z?i0fA`9wbqU_AB}K8e)brWxhAIr2-Hv@BDg74n~%w8A`QWey{&w($0i>Xwq&D&Zla z(vg?W)HGB*DG0OrE<1z!mxK4eK=ODBpg=HGhcF)HPjBWLx2g#4!z6uYI{RrX*{~NA zyUq=g8-%r3!m2aGWiA1~6MR9@{<~YydQSzOe@RJ=H1P2>+PgaizYjItt@fWW?=Q*;}~;%J_XINv~eg zZ_<5ESB>PS4`*vXSDbIkwdVPI^0t8o@GSI(0{`!1#BYuO1dH0>K-=vXb-&X&v4d4?9%~=MznSKm_J?FYn@8`V(Oy>wK0iT{i4fG;7j+qRvyJ% zcO|~?^n2;+`_|K^D=4&!;NRgJ@h&jtAIbWEv&U_TVZ#$YdO&`qnQlUm)R$uOZeOeX8cEyf88Ito8YGE4$^Q?D9@ z;sD5n72*+u`)scoM7t;C*m6k^C1iY%4BgEjDzGH+7@8WS?)sHX>^) zMz#+x{0n0}O2{~Fza^>;VC8$g4JWWECvb*+o}9I3AXw8LQ!O2ck$_g*w+(vA41<7nJG5mg9 zLWfe=sps{goL&>JTPu5~WVRu~X1xJmZtv63cUii=Ok;N@+6}J&>0&@Vccm)Z;SrFe z>;kuBcdkPd50YHJXDY}z^^A90^9cUb3K>+RJw>jD-v!yx3++x+VnEu%Xq^Vv5 z?FU#u76dS%Z|xQ^SOKWs8iDpEew(a%r9q#Vkhezl8y(#Iq4T8zH9QdEU|HO#*SwVT z8#Ty7nf!rV^i->Ps6g*?#ZN>~78CVnXugyo6Bp2#2Ho5PBRJguegdaG0^$FKr{MWb zU3zR=c&b`@4E#48;2;(ovlbgu7hh*Cw&X3f=P$LNgTsI6ZN*}92>{>Vs9$I=wX>aD zFa5LLt)8>fo-aTm6l^d5T<_}^I_qGXW$_m%7I(d53%Qb}!=|H|s7ez(SLDyQdxZO@}$sVQl4TzX#aR*MT7|G+uW+ z_p?|qBoTep8pida@nmEwT|S+Oe$Pf`a#g?b^>F4-=c;E5wc!8#QIb4Ytom7OTqu#x z7aQivjq}y&rSs{3*BF+nwF@Q4Y=LYhLpo!YOe67QlGp($P_}68)X2AffmiThH4cF# zNATGPTyqZ+ijMh~!3fB~=Yj{}+*#~p7vBa!^<0#}I!v@%g zyCI^>-s}P=R<55g-I1Z##Wak5Z#I`%(Y& z_xl|jsRYRhIK!)|)Rjdsg{dT?@=PMAp5h7i%Az-u*~eL_ zoPt8dmDF&k0Lb}=MaIz7T=tDjdSRig@J8+Hdfh{#C!+H(Wr?z@v+B!vHPIXVh`)Jy z{pLVe;|d84_Evwv20Zn5*VwggH$oHMrNmFqh)VHdYxW1}PDYmb$Cn1n zvkA;ne^yl_w-iUa7{R&2GTja)0qXNMQ}UF}c*{+Ao5+6_!+9!|x1{8^UA@zC?RwLl zn|YzwsLd|n%TEUZIO2~ppn?KfeC&UnnEUY@FMhl;mF+@fpQ3P1MntbZ1CDRTD(ASB zK#V-j+~m#N6BfNWAbOQUrh7yKIq^z7_lkdPwR>opgZKHP?w6eX9=YIOVuPD-ejUDk zeZl1JU{X&|U|&#VKZX8@45&=nXENh!2xLLY-^iq|EdJ*xF0_D0NYqhA%#d9Kz_ss! zK?ezEd!k@UA|I28U>r0m7LGzGSgi#p=%^gjFp3F~0tjWJN)WinCnOR(8rqWl%@uK(4_&#>xy98cWbW9_K-r!HwZ^trM+umA0VM7dwjK+>|F{jf#9ai*794jQKG^}EkE3KC^U>_~mThrQ zIpb?}4lwQW=B#&(U*W)7aay_^Lf}s1KOITS+(LfC(pPw-o(g%QvA)YM=|5lAlabn} zHav>sH9=;^oLuEcPWNOa?hFWB?gp(BlT*NzNLDk8^-dZ8UL*aW=k*wr?{&NnDq*{d z-DXtv*bMKp^dHip zgQ`32hrAYMJM9J~7#>@buguz)dJRN?ULdl^i1?90^hgTK2i`-m z;E4(r&~gxyeJj_FHyCDanc)5phy2o$lqJABJT=Ze*DO8;_#4c8&_z246mW2qYPqn`0%G6u3lR0R!yjs9Tj2r^hkxB%3kY8-;b8v-Mc}S# zIQbWPE-!Rnp6h7%+1W4$i-7j3x$c^|ZdeLb%=KNGZ>xish+iOrZ@u^f*2HZ$X4|gK zb~NN2$HFJq$tMTG|Bn87hds+rc;_7RDul25Fgb@X1;@M!j^lHV`K28rrtQbrcDPu! zyIcNpH6MigKQ{fSSIPlw=0RNMDW8&4e&?NnA7VmZMv~t!xjkZ}UnKaZWDn_NBPRJo zvg&)9dOAb#JwrW{tDnwQOhe(T!2G=c{gEyEQK|BH75J# zyy@>!*?fU&I@9{NdWSstZT1QlH6Vd;&yKluQzrq8=ti4{@d%W`*wq%Ola^7!$k7 zHEv@FYfA`sPZ;EXQi%q$J7RE?3l2hZK3Z}lD)BHmW?fLwA3nazh|$|ZETLKFkg9Ta zR(iNucAU!H&EW2dG~zTmS0(DE;U8uy&PavFSg41My_3n>A7hTn$`zHHea&#l%iT5l zptM}Y-E3NEa*(>A?EdxaH+iH2OQ5wtc)mxz*7uNa7Lyb<+K}vu^))#`9mUxZm8t5ih|hKs1(x zXUk9E%ml6Kv&tq=!WW(lny))~-r(%9T##wWg{O^jFc9Gf_p$Q|NH;aM=6$Q_5nUm_Xf ziN+xd#1oFmWsukzks(7O<%mK#B2|s4#3MQ#Q&ARDpHB*-=rmFI$b5bUt(T8NR(&f=%TZM30sJiHLmnEc=B3oV~wmCY6?e`G4BEP@G5{D>ra zP#p7#Med9Udm9jN)x)Ra1itW?PyQin@g7X>Q9`MMU-@ajN@s`w`PDfQZ+ZA%_wa4- z2)*YO@)#fTID+?#lJF!jp*e`!6wbO9z$^2TqkBmt2*a%K4gC|t+(1;HPE7GJ7(K-% zFS+bkj0%9CJ0lZzQ7P*}{g*)+KUn9LTqrzO%C@BtCE}A&v`zlx4S@i50PVXq5S%YM z{(*SW(Rit|GAW{je~^`UQjko~Oo_?2_@?Mw%u0+rBfch2bv-?_#ON$8LCSBQYbj$@ zrT8S5DleDHtIz2#ruynho3Xyj-25P)zuuj@*Ppf06Z$pGwO-|+@x2H-lWO}`DQwS4 zejdw`Y;wi_cG?4ayT3Vk|K^SR<5<+5kQ9D#x<5y>!HK;EWA+SF9EoJC^&1^wc*@4f7W%n;&!~|kv{i%PIlwPa~(BBx2b;hK7n^>v@5R=Tp*yRrZBV(%sL z4iXq!J!987an_xNuQBVK+3QYImz|>gej<9AN7V0*%r$3)@aQ`2Zi|sl9yB$CcZvpn}z0o|OMTb@JQlK2Sz%D>DY0*yDEMo@C6e^z3 z>%bi_YO;vEuQRQq>B)m;+c%Z!8;TC9kpZRZvt0K{F8?G_e&oyEv-s~hobGsW4+F?=kxgXA z?LZ2$)0@5(&{6>QAyU_SM6LIrZ}p>Y!bPmXlGo!x*J8uDtf6*dq`(I(^wveR9P-TdHyWv4gzBhAVxj1-NNo9NZ!gM z9cqqU-HQtPw8DOr(~Zj7wUW*hNng6%@ZOuL=uJ!NN`bF12-0?@pxx=l&J=Y!6n>NS zU3z&(vbHA)ieS?ABvS{7z*4n9`)Rc+eYG&{Z?nQm7kOney)mG#t>#v^;ahZXESC0k z==mbe8dwk`twzWWA#naTg9{!NzcQ$wYt?U!NTX41=lmPh;PwS6e4|?aLZf;iS2QAu zCvxdyh4P+EbVsGWBNE-_a9_xkJyzM*9QjzaYUZYP_MRCo|NnbpU3v-)FRdN;^E?M` z{!7o2f&U3C(1jNni?4D3@A)?nKHoyrr)sgSYO$kq5jg*#bg>iOY9Z$j(B}E}+PUVc z*_P5-u)Vaxw;%$5U2x4@*QL46+IhR-rOxhr?5_LOSqGV)xsO18tAQauVE^r}2`!iG z*#9>8;iVrP*XKH}&vsugJV}60?kQsWSz-<>dG~u|!L|Rmcm6)ljJ+<|M=?+YD>;hG zgx@+$$UcZo*@;ct?`=8Y1&(0DemD4aroA12Ej$xYx&h& zC5rr%04Z-DDQ*Y6MEgf=^k?shmK^4)+@)GKJ!fYEYY$0HNX|&OE_3E9iRoFA>h#!x zq~KH|)@BY!&)`>P^3J6O=E{z9ZQ=Thc`q(1Zl?tqiq&;h*18I9S$=#GeXD=qN;?iZ zXt@hqszsZ97|TJmQ)wze&6KQv-><4V_3w3h;F(&PT@!x8bD@SII9iJJ*A8$CH2U1By6DSx^| zta72P_KsiYk{?349Lu}HLW`Y)F8YR*9U{~_cr`c@?zj?P`#|_7q%APC+dsIA6a#p) zF2KG~;y*_~_=gI>{Lhipk6}??=}-iS`^e;eA<+jSqK4_w-=GK#7wiP?2#Y-)%@}7f zC!qqIz@8Ke#}vqzP!1rt5rK3RhC%|xh)6mP=}@V1LaLku7mQLotxuZNpyT$Sjr#fD~IAGUt<%#F@;}aMBiA#Z;9fs0yzwwMm5rr?2OU0>;bjrt6cw0iHsYp z(}npzZeRKJ=*rB~>)#(-o4H^2{eJz_ora0Jg6Zm#$-?}J+|1$Bly5pM9R6Q5>aS|e z7q$MgNcK^Lev+y_@`QbCK{uP%6~}Fh6?QNfPsy=mj(+f5rf%^jZNXDFVo4i3$jjZx z8@*z-_)#{($?qEhQl2e@=*?LEP9OHJ0MTwA>0ds|Bg7(nL;*I!bif;en#!YuG{+!l z0O@xTkxh=Ajn1HowmA60WG{M+OZ-}Q>M|Vlzg`gRyb;5HWliZXPwgu&d#y{oL1R2O zCfydPb6rD<1LE}uiE%5ul-s?|`Gz+q#C0l#fO>mp)^%$5@0E$4OtSYnMZ1>QodgFy z+Lx{E1?G=U(*fcCWCT=S?J2rmo3bN4xx;?`D`49TVb0DZ5c>lBN8O#QXa&>*Kz<+y zl%(r2$iepBW&y*y0a!pUjGERY%^MpEc^()U{o{FuUa+R&+kY`+MXe>?W46?p#Od4V`+HTd7>!T$vm=x(_DSIl<-5gIQ4 z^}hh`U?2X#IslSCu=c(D15!YM0PTWMsGa{d12_N9+dtcH{_44rcgPz)8OOb#;hPN! z^8?tF!}ydvE&zoC7kuGyOu-2(JRM*oVE=CpcqH$I@DD!ufS+lvk9iOL0+V?NpLfb9 z*EyiVlX}TJ>Sl2CYg&9;9KSbF@>!zFSLlQfg5`pH~$DoZn+XP7LIPv=W# z3(?sUlb!8WZuwb?&J`)<3yg~;aNuixRazE-1yrR395fgK7IMXNnerbt{&yW~42d1( zL=Pm8`XYiG14C{&6D!>Oi}vCQV1IEE-U7T!ogih6Kkwpq0T*6-ig4M(uffIVwpZ9a zOyFIwhzH)0&%9$F2PM3T6tv3!30XO={3xKHEF*;diKA@_l%Hjoyit?8M6@ST zw4W|L#OCfz;O-PqR^mlxRk@0WN^@-<)u3=<&^GyotqBNP>r34b!rDtg&nOfQ0@PK_ z-JKY}FIwQDOJ~(;JP=zN+{LLtuDKOUwM?&QlX> zD3Ws_NPU?68qM%fncZkBc~@Kcp|I|rb*q2u4u8rH7$XNnZ}4UBB*yLVN!aVpKH$&Y z=gZqpWN-J5-{8&JPKe#?#op}3gyhLOO!NlmDd5@L2zkEL28QUGKwXIqtM_M=9V1=< z`Ii&%ws&x&Z}4kkaC2Z}cMz#Pg5DQSg5)RIaz8^VCL#XAdKMD|rMA5huj(tc3@kaQ9A)yQa(IX-SXyQkJ z4ysU&b0zQ;7*{K&>_!+cf~h7^@B-^5HGqS&Oq+D}MF52Vlar>jx(OpXW`-0fGG?|; z=z$=Oj6xPP*)j|$QCJ6q7fgi=!(IT9z&aQNVZ#FD5GQ_shrnVQfInY((jl>I0#c^w zmdWaziMp!MjC7E8!Jh^1@Jw0uk89OGpI)1JboKkaOVjrnX71Hb-nl$+rF8my{!~fI zc!qVzYWix?e1pxeTK^T%e32+VLheW)>F2`QSJ=%Gbh5ae@ya)>gw{CrT{7EpI3W5j zB4rCPW@`}5KK#c~m%CBzp)W!tIOeutNn3o#JAxxudnIo37VQs`?jee{;G_o$#n{jy zKbmQur))RY;2f0WO|>`>Ra-#<>z=skw0yUR{tTY}=NZOY7v^eD%I_{A|8^H`@Vr3b zKG)km6qx}P*lJ9>7EXJGYHrIdIZl2>gqW1WkS4`~TlRuaSR*%~O^>|S0P}(O9*KRg zN%*Yd_Q3o{E9y;^^<}F+q#?a2$h%|(K%Tp8Xtx=VKGyCuRYxk?nJRI8?23ea~4V)h!|8&Ae0Pgu}Kz*v4bP52zwHOs`Hkbuj-Wu!`0Lc8b z>cHx*>d?Rf7j4pMn@vcI1#bSD7diz*K%30EXAlR1>5yLkLL+*v)jU_K?kL0$#llBQ z`9p!=fmrlZCWhkJdmHk#+%S33JbN9TzXP-%{oju)OHXu5pm78Q#AB0v9q>45{)u(r zdGcao&cd7Q#kbi@VD)V)0;}Uf=Y^$K82(huw*l%ICOp9Thj#%8g_Z;J$L{v(xVX?> z1PXxpj*7*O+WF4%xvuKDt}6>&Rq!J4tK$-6e(aBfPIw)FwinReAR|;i*Hvrh|JYjq zH-2?qpKZT8-+e33A<+Ig9hB=5l65LD`xKa8e6t}Ade%Stgnz*azfuSP+>^d}M*^S} zkbS^A^#CU6fQRi67A^qBofykbC)++;_EAEKLqH`a@&cavz?b}n7TXe=@J=Wi&?-l@ z!Xc}EEJ-R+vTbVRp3PxbnTxHT? zHS#|oKb$lEU2R$@)6Ny4zcN(Q$>J#^cN~=ta@Zde1cd_^6!4N$3f6v_$X%tyD>VeOftsGqfbqV`7M770 zU64Y_$`jODX~n2}DtA9e=FF|mx^*eDDK9J~o1OxH|9NA5g`zZ%k|#M5OI__xUhWC4 zUfG@y{yH3MD-JnDs|}$%kg0DZaO?1tynQftb&>yt4_k%_+d_yt8Oc9IWo*R||LcPL z-6L!@p1F;XpdRufs9 zy)$vNTDtfOO{|o*MrV zBv#>({ZX`mDC%blZ6G4@6P*UbpDzsNP!w}8CT@fcq->jdgEE!3$!h>TfC3U7ef96{0&u2G& zJiGh-PW|-#+Uc8hlMfmuE|pJKWlt34jHT%YtuX&d8UoLkT>VuJ*M8YYnfil7_K_oe z&lL8>@%m!oT3F&1I{P^#{(^TXe+P_uh?H%|KWs?tiEiP;|l)pS8 z*Ar;44%kK%91cK_he-ayvbW)po%m|sfKu;B+fkfoho=^>V30-toQ1|c%{x>TK7I`M&FO-M8nv?qxc9!6*BeU&e7<<`En~ z{!{mP0rTJ9`8`c6IE~ANUez)G^qoL~@X9^pmcAR4dHOA**2onmA}Sj97%DHgqgiH=ZH?o~@eBQP1Qne&iuD zh4!zrdB~3v^k=Ddq0DA)epOo+D@=1W*2Nm_-{+H;%AgJ)nk_Q@%#i~EdPdJ2Ll}cR z>L+e=C!O-bH}Hm+?>Prt;c;Tl0k4b`u)@X_oDC{H6IAIDS%nL~;t_tuEBrDh=&DEf z^#JA#BK<)?+_P}xEjztml>8y7vPW&b6E4hf;w0{i0S+_uFA{q@N$enjF}@LNR68Va zk8)Kmi0ZU9iI|cam0Oi|wNzMO!U>rBqL_QaNn681wuVJ+j||&RW*%XP9N7HRiE2-= z*io2pjKe<06F9NeM6;fhY>O#OinO43byjp)T2yYHs46Y~f;pmGd|b{w8((6%a=37PicZ)?3|{Nyy@}wn%8#@$n7$*_>`J*IkUd0_Z;4ZHBpB|A z42{O@mb8kVvhuF#((a3Oy*G>d?>D?K^72mk7Za!#h+)vGK8IsGjAFhp>?S!S=-9_F&4cfS9epQQHIK4pULU{}W>1D}Qo(P(*hKxjll?7fI_634c#wet_hBDCrXwR=_czAo)opeWtTuwfZ%N z`IXKZrpH76A2L6q?1Yhc4uF>@xZDvA9Q*81E_W<}J;vdT2w*IOjPb>TVhspl#w1V& z(~c_j6FPK4rJV%+0|H`4P{wP=P~8}0*gz9+02;G)+ya^aElh!+BVd0D7Z`*DI^uX;0TpMJ5 z-k9ah$(BwF3cR4MWHlJxn@!qAGaUH#Q@suD^JY-JpzyBIVn$n&z~==CPh}JQL4%>y zs(hb^bKa|>{A zKRT{LQfR*GRt`*cj(g<-+36%cZMU=SfF}Tda!>eVA0q%BFy{yX5J2fiyubyYc@P61 z>j7-?UN_SoPwfV0(k-$NZnEgLqX z!%6yyWW`jb;YS)&fVDGe%9$L+4BY&SkRL_*xdQdC0`ad>)nbX}SDAXT68taf#S0mW z=PmzVm35)YZiIyV=X8ehr$sPjg5)0ktBm(PE~<+b^@0#^&4*Ne0t>ZYApfKv@Jv4d z5ul(_*Wj{Kgjz>joo8shXJCV8#AWZ$yI9hF9O*?cuRX!qsm$ormvkzV9t0;;dJ8ff z69rpBVH};XgTme(AUqIj#+#9oZ2nfV_z>TOG3QeYix`E);))7!K~f-Ja43|%FPwdl zLS5qDz@q~nZ(cHrc+=Fp)S48V?F%Z%;XO)5@akgMn z2E8vPWdtQ@&kFc^q7+A1 zh7+`03@`mSLwO`L%bAgliOq5hKj+7`9*RJYF%|nl1l#bE1HQ%U-AEv=^23mzMOGAzClSzU6@6PtO0 zSQ|tsJ4+}!9#ZW{x$Q&hGzog^Yet(cetLD|k~AW2w^!(L_u&7!0xUFYg(skcshhlF z*ZFX^;g~zI?A<=_514Q$n7ucUb0k=BI7o3eM7B4Gdn8bNAe6H^ki8>-v)w;>EtbC9 zpSdd(&=wgu+W9DHJza7xfOV0~tMjJRy9VF(41EYySt7N`FT6RB+!;>qB1gZ2kW5qz zXn#N0DbTSW>2Y6}j89BZD8_z?i2-fywS{58%KkFbP5{;~6a*t~I0 z!YDg&oCEq5@eqeQ!cQFHN=FifK;WMcNMJ88F5*t0Q2Uint5p*k)1+Dpj{_J1O`!To z`?ttA_=1g!35(Uf5jKJv1_d14s9rawLxxe!Fsd4c$-hnq681rrYDf)l0g4eBe@KB0 z$)$r5`LI9;)29)b4yk2enVCwqeXq#*aiebb`OTkCuTI^mAFC`K%gC56%ABgs`EkAa z$FqhXk8gZ`aC7=j{m)1B(~oY#BVe*JXEZNsIK?<*PWq;^eiLiHiDcj8$e1U)al&cg8bc(OK2*0lY0C;vk@P$l^DJm3*jH?7FY*+kv8BW zHsioLN8g4A^P|}{Qhzv5_?IuhpKVS7)o}hh2kLiuNOpJt2qNV;&Tj$+LCi_iIHZ7^szoI1sj@y zjjiybC!YwoNQrsMh;34Gdr%%kdOoNb-7-$EJg!ftgl2B9QT!nleV1-{muGpGtn0MN z+EUQ2Oj{3--{9L+v?CKDKr*njw3zknPytIewiu8$5WB#3*aE0Gu)Ro|EJ{dwc38A+ z78HIL_5!V7^3}?ltVX-iMWY6ce~S^!?=a`rv}qM@k}WR{nzw-cH$WFm`_iIohS;aw z2mtec=?g^AsNy$*?FB`iBa%mI^?kA8fgtg=5cogJ*D67;Mf538HF5!+zN-0k*SPoy zuKmWppDLm4yZBIR=e#{l0t&=pW76X5)PKajg>!8MORYtJcY@WudeMIEhX(;zeIfZ% zI@bz%ukv|&G^l(5EHKR#bM_xr&9|O|%ReN1=IsYNh~O*dI;#K#1R&74j=EpnaJFBB zE*NYCe)iP;eBUtJb<>W9=)5!6cYC%Ara*UobzO(^KLaF>NAao0v8iy#?{UxAgH1Vz zfde0=`Z*Bq+y@l^uiRt4aKb~#2O>bJd)+NNymh-AHCxZ>x49a(x`J>d7yh%e!KIFV z4LIuk$k^ssZaYuh%a?ydb>DQ-VUuz!SwEJlo=ii(r|7=tqcb_$pCE$Clm9GG&s3mu zh5DHyA9b18=*A-}Z@V zibMNk>Aj|NZ8E3;@aux)6+|S>g(KQWrfu}$ZzFSelI0E@y{A&RJ6gOaA<5TP7*lpm zT3sQ?$zdkj0^|uBiBUUzS=+z0w2k0V)MDZDp z@F+We7gg>m)%ltcXH;^G&p8sU_LAhXDm6Y5Yjkc}T#?$%s649`Iz<;D@IP@;kJTnc zXVqmsu2h^WNysja&NsP;1czb-2N(u-aTZQp;Gs-&5oF`VIlhuid_oR3!Qem^>?K5R z@`&2t&OYEL-5*3*>49JAiCs>N+7hBX9$Ut@-l%%;vgYbTx#fk@(vnr&Qk>tGli62M z-BVKdq3Yttd$rxQb$2w3Tt{N1duV+KsnR*H!kJW!r_}mTU&}=U&u;X;x%V)Q%G&8f zTI)#Phz$eSBOn~%(D?Ig^cEsyKbWiCVmCUmHo`E$b+@-Fo!=F&-%*Y4snGeJi!=8Fv$~*iFspu z!K6evqYz9e01Y9XM8FQOnMCB!0tSH9q+BxufKc=w1tbdZ0tN{D05uN2j%YN)8oPdL zL?-@Nk#_()8Wx@v^M3oaB+T zj6s88K%@Vv(teaHK1=M{-vPN2oC2Q{WS`>&@A$&LL|$t&;}JPtzsHNQEs(O#gSOqD zzL7xLjH7HNMy!J=oNMGJ9C@Wz1iX=L@*=JGiQeQ18W){|zv_^W=r6y-?H*}ogNi)^ za~uQBhw;koZl+^+K*VeJ;;maf6&pbf;BMIOC0l35x^mV#NB-A|yv!~5H)qCL0=m!V z7G3blX8UlVpd%iOCkql#hMMsJaSp6MFnC;jh&yfFY z)vI0`G_VWqG6Av2^wz*{Go#S+Z8j;P)%6MvbFJ!yPWuLxHS5JMA?<0=Hfl9ZsN|K! z(5Tl#)vHm5JlE>p=m7hG0^Xs~s(WLVHbM*7ta_=IH$nJED{DfPFJRTHkvvr??~4WZ z1;U3S$ukN6wF>D;)eICV#;Y_x8nm>p9KN`88ZJJmx25MPXQS9%ymKe7rr*k_BYrQq3u_I4gmxIx!zm9;CDOk z&UHcl|7z+!jQw-MEA6Ov`eBbusPTeG{TLw&7Qy@6GIx9C9rXq&K-OOOtb>@;qXg?; z&emP7y6x_oEsnY^o=LkrY!D4S;aBM3SLR8n^JhLM(VLlqu6SXeSpHeA8b%cZX7vbg zbkp<`IjX5t^n0Fpra(7Stod1>`%%c7%~H-4m}hg;@D>36_r*%(V!36p%CJ;xU98eA zK@kA_FGYsgLjKQO$@gU8lp%gxK^qiAe~6{GlS1DF1zdCUt2ylhDW<&rZUuWi3(pWr zk7A1tVk%GKYfs=WI|W^J55DCZdgHAB1Mirp!Gcan#(PakyU6w+LU}n{d6|__;fto7 zj1wNF3Elak12oRI5VeC+=PZyPNlYPHig~5y(Q_5@b4DyncpOgJK-yNHm=iJF6I9v; z@5qh5v4^PCO(C?kVNn}>WGC42lL@iAf^=Sp@HCfqki^*^D|8Uc+@;*(JkW&k4>B}< zwmd;ua&W4il&SVnYCJTkYdY@)!xXNo)LhRcm6`pdHEH)QrQI&$q?fX?Qi=M+-O>Er z6a$8n8!oFPS@Q5Qn+wN!ilR9gnR=G0IT1=*=^VPuEnvkN`cACkSTJJ~A#f!oW(|?Q zmuz#UJhB#bUBCFDEWbsa){Gi@3QFG>NLWG&Y`QFz!wwoy8}c=VmIOA*5RmYU1L@{ zQ`fk}Zg5KgAKV6y_%#snbWGTe(C&1eSE&H~Qis&jvTbeOF?W7qK-ctR*0_Es)e582W)iejiT# z7#aB?n)ZoA`b=Sbp;EsB_J=|lpxK>?UjUUuV}1kd4})U&C$e~80UKc@jPQlSJea`4 z!dC)68Dj~?z^=;?e1oA7mp2~I9fMZ`C;}uVjEhx3@|lDRFcid~`~^e^R0F2SF%>!r z8(xKEM6I+hZI#k-B|4^3kD7F2kaK|fk52Pd2`(_ju>H2L{H9jGW)}MIF!}kWM2F>) zuUhp8YX9M=UO8sbjHjkf=cRnVSTg_o*6iCmzh2#)d3^W#)zZnzvZ;dXALY5T_b<=B zy7%kljoD|{XP#c3dvs~$!KLq4iYE#)Ci0TUlTCwq_7--tG8$yrob(r$UU&&Y>4%Mr((OS5iBsLiPqyGs`aOJJ22>8 zPxBr(!FneELBuUTNm+iD^q(_<|8k7~ubXTqwt*>ZPB!(IWwaGn-{XlI<&rxpTec@T z{j^^#O;8;~zD|p6N{s1MaX)A{9}Mh|D6d~h>lVkn*K<4c%HCwjyBtuxDE>kHL+nS> z38;q@ZL{6{qU*M5JE85HqUo@zfYRTRZfk)SFz`H6^lxD`VAZ}hX`4asn{4Pd$RG>! z765K0V0a>LZMsI21^^CCD)}3e{;gK>+KfEcSzenU>WREE0ue$ClYe*tX;drTm?cdb z^eMt?H0t5b|4J!-s!_rd@@_y zp0MzR5zx|e6vBWscHUM`rnNiOE0n(TXGkh3hZlN`?bGfsT0osnuX39`xL0H zXsNAisik-U-0p3~_ICkbK|tWYwG<%Fb8S!xD_iKS0vGVF_EP%`0=y9b;Q?q5aH>P{ zv!`Lc=hj@$)p=M4fcXoUpTK|XxoUqXbi?_750=Gq@Cwjv`Nqg)Mf{cBb zyd#kO$JkNNhuqWmyQdu`<{iW29>ioE^hn){OWEa?w$n}fmz!aWE4tA|zta;M0U1ZV zi`)ZBaZ&aD)cax4EpeQVcwP@r0xqN>jc`~af%(s5ief573jVJjImpi}bfyqo0NNi# z(x187SztR9XlH>1QEd8EtXinFELG^2>MaWwQva?27l3*Jyf82+$`()9q|+ABxQ03; zp!aj)dPu=Kunzb6XE}L7VaYOw_uS2LBB-FR zDXIE!rRd|8>z`lV{q(rJ@9xcKGFqV{u0EVxhw&|Q3$JwwDt8IFOp1M?(e*sJ-hCr0 z%?}s0-Ya0GNAMrcQ7fHktFTd9FzijP(Q94k8{DJ*bc9Dh{6i zXFvp)P7>7zFv4wKl8tBM*15&5cTe2p!d~w|TXu%}hdXnfv*}boO|-I{K&=XAR0pxH zL?qNXV6M3O-}mr+f%k18hP?3)?FbC%38VH#M)ih9ehiF&+Sexv1zN!0$Pu4o6Tiho zevYAjijIR8?QkTNs$$2PFz1OKwo^b8M`M{|T-XIj##yY9c<{o@$6zVU=D-Sg81}+2 z`QdO!1>7ONbm$*P`~;6XC6|vuDL@GazI;@s8dCz{69r`q+_A^yGQh-5pt4c55mvq9 zR^zAv20q9Lcz9K+VW^b}g+of^AgUfPq2G+?7mewgSTckfziCt>sC3w99RbBmvUMue zI-Q^L<3{z|>wELfkA5}X`~LLq^wpZFbLCSdso&4#&py07+w^eu^^>2^ug^ZZ_Vf0I znfsR}FO`o~6^vzBM{TJCR>LQi`6G1UrAnv|49I1lgsM+mQ9no2pTO(oh@0ct_o?jU z133C>42*ZEn=t_ViC*I!yWIz7{&d*g!?%ACqCxk(-kS^n&+R^pJ-&*)IMqR%`bZ!= zy8-@R;N+8k!aLV3+;SL?{^hLP=bq^q3X4K9{2zDFQ@0PN+3LhueG+2539FpKeshRg zb~fbyJQ&N}rQ3Y!Xh6%?eJD+C&o8@~D164_Jys``_|nbC{Of~R7b94=X;H6vaXl*7 zTu?r0S?_g%el(_E$?VpPyA1qZtD+}c-}&7Oc63u#&xj#e2hYU4wI+0&Ls-vYmr-+>qAo!8Y*y zI)@bR3@P;rJLwbG5FCFNL%5SdeL|)Wu~c@c_5}b5EtVOJVIfO7U#NS3-0-nT{iQ^| zR3!UarTkK9{8}#gS`I>x285u+YV{Hzfa-M1b&BQY+#jd3t4)9avi)q$T&YzrpESbx z|4W|meHLp$&6pLWy$~?%__*%qn2ykh*1*{E-GTW#gO2YHE87=b?iF6=9bS73+XP%e zzsS=*2^WGAuA!N|OtaloVK<(q$=FVET;s$ zk2=#=Sr(JiNH0C5K2gg%sXIajz8UV%h_pYTFBPf6$`wQjOv+d;X#y_>bq5Z&8AEYS zksgqUy(k&mqqv9CtyqiPHG{T0jkAxa@R8{QbRtiJ;)vXgP$+zfrJ}|HQU%#5jqXVm z9~PM~$1@X4YP2nX>)TI~N=~pU&z9V*W)@V7${Kj5G+uPdW|Z+@@?}lwO;dSOM6$v& zn&lb?#C~8Y(>MEwcZQSJBNNv8r~ct9+=4LfjVVXaD}$3;qo^0D$}4QmJ*DZ1#@J&k z?8`bnP}TCZsqy*g>eu(qzkYD$<<0iNN=|DKrWJ|3l!yajQj=d)O(?E4ns9~99c*rX z`k<|zj!fN(h~0op_|-4vkKnYm!Rdd1{^Kj#g;eYgqihV!*otIs2w-mX1H2FY*Q50H zhhf?)bHy;%`(_@EHF~0@ZlE4xGd2g4)*l01h_McoAHTH!`ceKkY~F)uO5xVVkz3+v zb-}3@$?`_uxU&HNN5rf&V``ek?wDA}JNDp0ASACR5X=2;@mZ`YRH3 zhMGQ&CrpvaQzQ~hfoGYNc`6IY{|hwsJd3u#WWE;&VI2IH!G0^?IzT`i_B@^WhAW*H zsTX9@w><6~k3T0;!9-vldV#s@w^AiwBHk*&4hnto%6B>w9QEf_Y6x?EkSgEn)E~4m zhz5hs|6VWs1Y3a7FlSV~R;g!Hf?274R;QYgioluw+Ngtk)-)I)jK&$QZr%icm43l$ z{!p0baQ@U6f4g>m<;jEPzAH;TS3h^%`FQQ>`&0Grs!Bf9mwfGLTI#;K{P^Y~w7uND z@a1OnmyXjP+iKp|l)pcbJD-<1ZL~d?=_jSi*Uz{Erw?hZU&4O_2piE7H%t>j0x+}}rMA)Xic4Ji4HDyl%32#w%=eCIgXkqw`j9~C z6Hz8qyq7x43myGAbiS(@&(w^k2I07k|14Mi6g)q9nh9w5&4vuG3ThmO%8bK#ko*GF zzrG)s4`2rZq%$`>LU#=AKsm2>wAmRDEe48|2+)!vmAKC)?5q%uloYp+@{b zEAP>Y9_x7blwxT9y`@xK;qY%srFX^r0lng7v2eOp_x_@O@v3GS#Q*!IpLfjvci;LG zGGBLXtM?2)I}3sH^RuV;$57>u!77K^Kl=AS_Qsz>m8%1FKL?wCLhRSx00>Zr;15|a z@c+PSKiK>Oc7Y+sw09Y7LiQR6{6ZqY(eOLi_r&KFoZ_t}l(YEsdR99&;@I zz=c~J0>kGinEW~fB8LU^#^T7eW!MNtI{@hhPp(Hu{$6CUC!)v`m9qztw==lF9hvVD zlD#t!Dk}1K1?9N~=ei?pum$W4v1|{@-W_Fff);=f+b(2@TWHath!fsnwSn=?Xu`cj zLJyhqge4l1$tINA8Lest{Qp+{e6H$!vEp-q>~j&oKlL9gwVwg$Pz}LeMD_Zs~;XTQTo*f#9Q=^Il7x;SpcaQth~;f#~Qf zfvEb!m>RF}LU1DO4yp7CKjDRd@nvI3%9;I9XS`$2dMC7nGj0%-gR&~SChumlv?E@4 z84WFX%s#f_GTu~;)ySM<6uW71_YB4M6s0FQH_UtjS6q=$P|K;VmsOULO1Z9y(QA>! z4RPenakMQ76jz)!o|)l>Qw7Mx`xs2ubjq#-=5D;$o6Ffl&u~j2?+iC#j0S(Hz=O#0 zNaT4j6-Py4F9xtfC2kaT5T`^?R!V4OITLZ4@sh(DHA+)JZ>$wIG^^_Bgso-ixz)1z zdd|rjZuu$o+46`I-nOulDZwlcUbC;nmwEbebCq$Y61Q2Bxk~9NMDYv8+FQ zsOtmh+k)BujsWn#BZ$8T0#&9ml3f#nYm8;oVp1;AHTC|9tzM{$0a14_iH}p5J=mn) zh`6C-{L=*d^Mn*gcufKGjX<0xP+k-1)5P>yuz)g|ugSC-9A%nBohQ-Xl2Yc_{5cvM z5I~Ru{s4_IQ2xc`d=LuXJ4(TXa}1^<8q5*T$z_hd7&c>GAf6KoK@NJ$X20VDIFvmH zQ7oD8y;R}=ghFMEL(JE`Q%c_hGE^#?lS>!0$_0xSETC{%0Qmo`-a2hiPD>nBEb~$z zpR1qDq65rFqk z`wKyHfr&5%w>davLnviS7|T6MyDw7V8P9b>bDU5G{*h%z9sPg>`;oT2D7^>p-VwRS zVl7U=!p**VFSKEIB=0X@jXR3H!I!xOh5zj+{Hss=9kArV`n|CYI0eLGpO)Ijn@(I8 zThFFvJW}Q~MHBN6$G4L?_XP58Hg!};ehT`Jg7!j5p3u?83}68gjF|W%xw+%Tim?J{ zY**N`)Z@7tzvJX&bGnBc5;a?BVe_(j_7_{(7w@KBLW$LmT`z-1QI%7`` zv;*6^&8mLAtji2me`%jl+NT%w=)|2;(F2X}x>RvfBE2q#m0xf}A?gsQ@A0^HtNQr~ z(@dlCbDMnm8el(*zJv1r(6)MCyLw0GV17dX*W-epy~ls_m;LN_{P}&P5tN^Q?3Js- zb*lpvKL$>&!lhsUMgXAmJM2AX%MQmRfW_>y7`k8otAf7&ZvN z1Qkj@+MoiA@meE)LBo&W6Z@lL+JnLW8C&52zb9Nq5S0fbfnQp;KLVa6FPQ)0&IY93 zOqV^B93RkDUrv&@B}+PDShuk0okYoFfuS95t_)Ff{)z{IUE)qwxDfOF)fKpka$Hs= zp`e;yc0yW}pOnMc76DmTsO4quz%zFxleZ?5-QyJqx!zAL_NKG;XRr^D!J?`5mGC^s zjLk`DTOxEwnhk4`A7LoHGl;IKoMTj}pG@q@=eZNqKGK|ILlL9e;Ag@)B?%77d3zYr zV8#hf)Fs>#7+pP-f%rdyh%jm@;`>;QV3EPJB5VAROAZS+n2bsu3Xinl8| z<#%M<|K|gMeXU1WaWK6slvjsg*F{sR!%1fn81-mELoE9oRo$V;?8(X+D6SmLsjyc! zOoIY#lKgTMx?;Ib2*H+M*7`usrV!EgK<+jScY8Q#jUQuEuwq9L<1c^ahCt@pBg)-q zXnQg43AP-;n2*Mo+)%u&2nCI3WTS=N=|=`qeATW6`b~g`H6?aKW-+K{0h&Q zO~X5C(=#{@{u>*Xcg{Rq0qBAcOeg{qy%&q#iRJI8jCUO9hy-5{Tm)zfLeV?G#L*dV z*|a%6`z=fOPQZuO-~}#w0RqAj@dB*#D%Bgc=8aSX9{vT1a9*l_9^p68ETD#407M21 z^D@?)Qa__ofd%vpjAG^TS*2uJmo=@|&luHHz-KUO8>*9?(3lTe}oZm)$tF$QK?MswtnecM`G>m39P4PQX{0D~Am3`wwb-*E%mwK!>qxfRUIa~xvaupy zctX_|bUqrNIHJC~fx`R&3#j+{KC7%B?44ldu{kyZ$0rs`uNmB)hAv=1WEr63cK|p) zCOs%Ty+%3oymwmF(Dv1(0r-Qm-w0xnrbj35(r_LbHC;OCUA5+}OngTny)02)6KSsV zSa*5sn_}gC8Gpzongr}~ljd`qdijR>=MCd3aDM(x`>q1;?P1}M&VnCZ5cR5F?JxOh z2dZ<$4>0`O8&-!Je?B?x(Eo?)LGWK4toiu_C_wPK4i5job^r?8zixjBg+U!y(|3FQ z@=*2iP#qY4z6~}zI=}2!!P2=j4(tD=MTf|Le#PFt0Z?qV@=;2*%dC5al}q%MXNB zABm_x8r^g_`jk)X*#KO7Jo}L_zdyV20aJel!@7vcxE7XtFPbpGliz14+K9Qw{dkP6 zu|j8(%7dBhBQ1-vmc?b~V`Rm+vJCG|JZ4w5_oW4}v~a zq4HrfcH_AFX~JVdzBiS7kSTzTz#T_*OK0y*vqkAOM<{>>WgjB3_oNGt@wi@eo+p)i zm}!JI8JsaUrj)anN!*DiZcZUM;pG1Ov7mxebz1#*EBE-# z?5v3b^L-{s_M1=q{~k=);LF~VNca;K^FRJ6e;m&9i$6_LoW;vdCva+$SSQ0sHDQ!m z6rnYZb3>rMrLy&y3kOT8yNXIiPc=>4?3nCodw!>_+rl_;EW93@(i|S$=o3}r8`m71 zat_M)WD@($j*+Wn8jr&XYXcM42S@+u7r!O3!LyHXq$t$ z&L|>aAJ+LRw)zXU1oE6h!4M+e9wOQj1Y&ZQH`?YGr*cIqw}*LQi6TsDgyTBB_;Y#LsqB%BqL86@(f-eZd z0*ZO53N8yk4V{zA=fvV!fp8umLTdQ}FyF+&S+QtNA)A)zXVp*#ub2k?$B;Rt0rQV^ zR;!;gn`ZUOS###R$qdCY@2xo>$}2zBRsq{#rT6;h$9I?dy1({xe{64i+tBo}w)M-I z`mguzFAqFf9_(E1zX@BzVrR$KtF2$#FMe#UUntCdW7579>0fe%ujCN>)xPA(p9?il z`ML>#{Fy}ZgeK^wNed4~XKW8kT7yj85bDr;{z9dJ&c7B-af@L(N07H-Q@2MDw?N?w z3j9AAo5Ohf6Ijk65_gPX7gp#JuJuG`dPNi+i7q^d%J+`5?nRm0k>&#!D}=wc_zIjt zv>xHo9X^U32=#W~j6VZd8+_B(_~3sDApSQX;AchLz+(8oiIl9bytk70eMC{i%{MA*Vc5v&W61K8tL)NIj7&wdY&Ljzhz*@+r_B z3ZaBTWj}6#b$%Esz=}-{!kZOt2l}x*hy$B|_H54-gU<8BqK0DMCs~$3ldQ{@1sMN6 zs~Jq8eKzoL=03@WZbx;O#q>n48!)H<1lKey)WiNCE2TT&D&Ox2okqm>RS!57q+DZE^Vg%J?~l1muu? zI+mYyERMAU6nc65-$B3_1ipX>2X4AoW{zqO#o) zS-TK9PJRXZqOGm~_Jn~i;QdiB@U`s=&DxF5c0n4Qg0h@KjNt!w3bcBKVx=-aQ;6Hx_7ZC72 z9sGa!VqMnfYG{5mtkhYS8q_P$0$E?MbgtybY5n&m13atssvotI#WKZWvGS9J{Z5z!^66lWqOilZ#n0WxhT4!+Di09-gW$2&ub6q}>vrbtz0Oaa}6n7TebWfP9(&X5Pm z%IU>_=d_=(b)KZwl@Ti|gcX11oxfl?`&d)-h{G~(I}-gr2ax~c74|=VxL**2--79X zp*07So8mb)8LB&C%?)MEd9Lkrn*4NWX+~)LhJeVm{_*Pqqkr>H zglA05Lq(Z4!|(h^6k3nSKr#yDI+!RZxy z!&>*D+K*vw1%^LBVS7^tF~L*vX*sNnycXK@yIf;ST78!ms2$9W6-4x`gElg zB%qJ2jc<>azSbCCiZsu-%9mW(Bv(Gk)s6Es6MQIqlt1Ih`WgKDB$j$RCS`3%%9l)a8$nGH=?_|jN61IlJCn@Vu$(vEc%?OrrD1BSF5U@YH(JHUF9PcRW z!H9gHm|`z?Mrl-{ecUS=8d_eY!|^Lkm_eko%_NE=r&Udk!Y z4XhC@cPvves#6SFg<}Bx$&*9QYrH@SJzt}_nsJ*PSU{t>0Q@(OWGTk86!vULeyQzw zMyPS`g;rm)s@DX@Q9!)`%pY3dm0g+UUbDX6V(v3QnXkU@-^>?GgrAsoK!hGNYk?!w zZ3SvHh(gc~sqZ$Ky8!Q>3EP3O59%FF;1mKVgti9;0UF6;wWAK^zCv*m8iBQvE(m{# zmA53KYeLaA4y#8g8?%Y0%H?mH^`9?lmSO$Bll$|&;pe^V)%&@tkMdW$kAvZV^-2Be z!12}L`u`iM0nO(pJVVv1c6iaW3Jbntov-*l3{ro^PkZC{VL0l;1_8}q4c|w=`2!5+ zx}_n2!c~JcbP?*n9Q@~V%j0L4$IrvEzc_wr5qv%%?~K7G9V>tX9Rr`w*`=|I-$%jo zd3kB<#`5?zP=}UAI+jPT+YW@n1B<_E2hy-L7?`eB_`lmD#Nr&3?G|L%8J^=Amg|Pf z+Z&eS6=!x0&Dj-h+l9(>2{gF`XYCFza0@SV2?R4hsW-O5H=zlca0N?xMB+SQ$n8AI zh)nTXr{&S7~D_j9U+po5KtF|mvX_p%_R~i*S zds}KYubi>2oY8-8F|9P4muui^VE$Gi|5haYWMs~1nX_`*B!e_c#CIkqcVJU%4n&mg z2`hBRRJewm@CdKmA6b1css2#h*&xC#hJHX@(<#e6lgK+AnsyzTa5bE87nyK3p8SZb zyPYO)jx`h?;qhJKRo>LBV3op?MBkLaa>42X6(@w%g~@sYLMrr1OI!!*e;m^-fwnaY zzde?BgrN!$ardM#cHn4xa8!?US+I(|pTlyYF!vA@fjmo8uFO{;J4CahwerJU^)WtY z4~6EM&i7^u4{;?vLJ2}G4-{$Il@YJXD6>uz;7ndcV-wvm37j}^JO=hWETq4 z%S!nTO}3`C6PKFQ4MiwQ@*hV+{u2=Nt4}zf;ePRBY{cXRW;7+sZ*vU;Jj19aYpA^b zLB-XZnWwI3s;?~bzoye(lgY1$lsD<5`3%N<1{wO_=UDW& zOr|6D#bC~`CG#}qTX1`_1q&?p0*AT4X2Y8QhAEk4flY||hRdB}fm4*XAP~-p#0w(f zj6gIi(LoYm;&fa+sZ&f5y!<(l5*8{X&Sd@3@0DK&ot7GkaOTT|i6*|Kk!tG=}t zf9-+@|NZ5@yGxyyR@zT4oj?AyrtEV~)mIn?R2P0e*ZlEJ>8De53nitmgz^cF{24>? zg2JDqtHwFH=N$P9iFQJ&80Sj53Eb+y7?xW+?yvCVb-`(y!*Rbuiv)~-(L`qqbw?;G zfRgTnPTPV`-w5}DFv?aGV;7d;jA3j>%3MP<`=WGvqb;BYct;fkMCBfhE$~gu^a$6x zA&T~bKO{=;iON10W%k6#o&Bu)LQT&8ytV$cwLZze98Ug^e>!x){Wm;yoqrJqhP-kR zZ6;byjO3JDrqLgYl$SZ0vICe)JboXKKBN?l3euiwGoH(+&lRL`19Q~G9#nGd*@BUL z%TuU#DUgm8D#vVU$b8ugt)sd6(R?-FeTK3O<5@>LaZfE^`2=Hgi>SNn#ckwD5{(H;e{13Jtuy;Bpzt3A%NB&*~ z&EI}Vv;$#= zL9k0;j%#R5Fjg&zzJaTlYA4^mnEG{rFg-!wYNo>u*AmUA2-n zx&HG>^Vb^f=Sm>|SiU+Ib`6yOerwGBUIVuP+4obq-&@T~O@@_I=KpJkEU@thlmgTN zDM9>)+KkwjMsn${SdZ68jsBVM(SCEJ?@C;X&e z!%0rz`MA>K>=Q+aSr&wjvokVnYc$0vg}0YP*%Za}#EE_Qd~Y&sKj=JUiVK0{f!9Rj z0QrILK~=zkKZuowE6R;8S9#O2(Yj2G+z=?!2FSUGxPoI`=@G6pSfV;27aXEVjxo#_ zWqEp)D$qdLkxq0W;I<_Rj|!}jnlesdC9}MoRDPUQRi`=AQgpW2+*+JknCcWCvIQN! zIWlTPG#W2D2diwK0(JiyzoOM9v7_mLUE% z1Z!IuVE@%_A-X+S9fU-JVzZCNWF3uQZ15rfd4&Fl4|7c*_18e!uK_aW;PTLv`ebgk zUv!N>wlyl_R1C51a8$#du&X{{SN+is{KC4TQ-;6=8W#`Yub0s&FH_SdaZsw2Hb*4S zkkV%e(Eo*>&cMx(h_fWz8xnPnK$>H)W~HhHTE+r3V}Zk-fg%_vg6A_p{F&oJ?27|i z03iCICLTD@0&fn~^cgqR#L|(>&@MnPP?~ znCEh)xX>>koq_Mj1k-BeYpDCN!0X|B$bT7z^C0=FwdWh3fb%m8 z5O8KdfI@rMKtawEtEt4(87Xrqzem)y}NdZaDuJ{OCLR z6CnS?EkEt`t6=pXY5qA1ZvTc=dxOLI2|+NxJ`6R$jo_#K?|;|-rez1`t@elg><@d5 z!_N;yAW(jW9fp60w+Co%_H+Ms`(A*7@6yYwi%+jFK5btayR`E3*77K92N##dF0Tw< zS{a8;0YssTkPZNL&=L#_#x7etvGAC-2dkVywc8QE@i6ZQfW5%vj>>XJS)F12i-gfY z{(iI(^dEq}?#AToL<085;tJbA2(&=vxgv@VMw~bnS>+qo7?#ozO?pg`4A2ClLcudA zq=3m+rg0%xK3AOiw!rkIK>6jQBLe)nTD=I)&kFt5s;rMC#>EEM0(6U&mZiq56#zcB z8dpwdeQ(M7-U#|n=Fdhs_(H#y%fA-zK4o(kjO;f`&NMw`6rbD|fxU^0t@jQo+Y?#1 z7hCEPTjm*4;gwi_DCI0R{Q=hmZqF-tB_IV(A(GmHV=no}T?*n2Xlt~iQoGJ7vcg_P+~N;5*0ODwKd zoUM}8H(6?`6fGvKC1zuI@GpTO|3PBc1?KrDTuKvPMiS4WNf+axMB6%Ea$&lu_RWJk z@4N2I-h1@)TIcNb%isF1Ej>OnfBnMjVi1^ER z$}J!&6yv+g9tq9K6Fy&5!dS{5qD-2Hlx&!DecO-AKKM7il zp?CfdU+Vw*(SP$*Km|-dbZsoB^hnrAM08_fMl&X zxS_a&aaj2Y=`R8GmQ0#TPMW3=XNj=vXS}9?{tqlT{0u&ImPVP&AkUN1=Q60XOzJ$D zGS8yV(`fT7D1za<1CbvdHuDYWIefu9l{(LczIed`oj%JGI0|Ce^fxTtEFEm6oGB)4 ziphdn$te;A_@XnkjA;gKn$4IJNTy)>5OJpj;%T{J%5hoXzmjUegg+~n%?nubO2Mq! zIIrL>D8%z3&N~If4W#oz#ypDxztSw9|As7>W59Tt_l_t3C{w%_Dc?y{&?ELK)9^Vv z^RvAeT(@iR5b`qs0fzy}H86vSq*y;(WTM{as z$~9vmSszPW>mSE}y0^{1b3^0TAW6_$woSUg04P3{PT zD_XU~&$>6%;uS9063AHNoA&FGlwW;P{|iO%frRyFjeFF2o_-wG|BAw);;IWo&Q&t) zuGsK5CaH^&Iw;|c$VD&Z>5~@fOAYh6hWSFler6Ebb>eZedaNjGtVnDxv^~u>jb|&y z3QhJLQ2XVB0DsQbjpZvxtblY-00MN_s05xfRJ!!qj9tL?gew4)HX5~0jPiaUJb)uK zM?aWn7%*v}k`f%Dj)q?wq`=I5Hf5L1`p~R@WU_QY`L9L)*k*cYvOF>x`^*}c{Pr3I zU0Ox2LD;JiKh(-PwPHB@KU6CpLFbD?c25EDH_0`g@Ct`@gD>q?OP&@eUzBIQZPb0c zlDBe0zj8+f%ulHO{n?ZIPfzL3zA~`%JBodW;n?523eKNlhp_(xP|x<3pF@rxIWk{x zwzt>+9I9Uh@n@vPkqEQ5{IH*L41%G_aRA_NK>PU{%>3XBS{i9x9J}%j;BSud7dYqt zOZbGP{@E1=>H&0qP=sLSYX`$m$I3XY`7j^`_#2D^+Tf0m>4}0zw*#SpDBpI3W_zG! z>rtqbHSaF^0zq!|K4o*e#Y|sZ^O@)T*vvp-t^<768a*)=19M0(H3;j znn8O-NO+c#*b^0bIViSnA25rea@;X_Zs=0?*h&BhA4|K67j_vcI)#=CG5l6!+Ie5> z1>d;#;KVD))Z1vnon&6OI_Iu9zbRRv^B}Uf#*j8dr2iI?@>?W0`8A>1LVT7vnpY!f zEKSbkyCf1ehvT<|3q43=mjtp~0(&=}<3$qeB~iDhkapqIwk8u?lIfmI-T|)Alf~FW z(8p>k#AkERdD=i>KGs;0l%1cLnTfUNkxC^r3x}!&M>#S-1$!TtyN9ff=9jZhz_?lI z&CS@Hgx`{w?wTq*!Z%^_O(D6qgrbwmbJf!GRig4nUHwVnDRq!J-X$q|1DfWBX-j2y ziNqHpxYY=0W2*6@xVHDi>1VB1-$0n?amVNW&JTSLzw}-L-0Qo?7hgZR@bXGqubxnU zB%}cmeLgPfA~v?!KfW3YvdF!k)|Kq4=TTqEt$lsVq+W}~L^&_r1n!etTx5Yo>&!Dv54@ov26@oixtB+)hzhslY z))NUDa)B?}un%qV!h)m>3k7Xm77nFEMmIuc)M5ok- zCR888!c70nLBxe4q4$r5-;GGMN}q)yMM}CO z0!&DsO;4Vo5a&o~5CI1B4^SZ9(5Z7&7MTCv!7PAId&?6qKo&pH>%JmaSS~$l*7f6Di)Q06m@cUaWe{lYwVxjv`#3!jPJ`K zqds{niUQ2%O(^D$2xxG~*d9)CiXv@B2zNlWbSQggh;bj*cqm4>7c1P2((Q{W35>CL zAtC>j=MA{#ko;pYClD!_JCUYcAzJ4!$u>XL4n*d@aPG!n#+qZP|2>rWJN%b`Okaxv zpq$b@^eoFTWXqW-&+IO3XiH~ZPD#5iGM~ey^|GjN_#e^pCe^f;2HJC-{H2!mOiLdz zN(c2KhuU9c9xDQ>v(BEEIaa8E7MPJj2!AQJ?oo8KeUqYPAn_;(K!OExF>pRCq%m zyde@@<#DfaBt1&uc%J%AwesT`;z#kZ4`X942gFnzi!Ahv%=19!?+87) zKfd}<{DnByBXvoq%F+=dYVpVY?UQinFy=x){1r^fRp|ds;PugUc6H7JQGP>&OyiED zY>lRFgE&=u>K~EBEoc)qOCQ96fQ&8OSd^NhI>MuDi6?K5=N_hK>`7tn#j^nHus1{C znL*eRMR!dhyWvxJB!Z0xv>@6}I%6+cpI|GMHdT;M>w;vN;qtPyqJmhhE#8_JW!56a zN^0=^e;^zICj`j}^?|vP6 z^0n{Y_lFn04BegWJNxoxTVJKA(Lby?B<5mF^2KCat8Yx5f68eL?iz`47m|{}M` zXNYj^;gb<*r>UBvLzs$?_^MER1DaZO7+dBR+~AGA>>F`AIHD7Y?vIM2;d#v7=BOig|bMo@Tg_<16Jo$Vmx$gmnF~DTf`~uIp}&`Kr**1%AsImZlPL-IxXAvHkj}7(zKF2l zB-~g^+%sbQ1Uc~;mHM2P{+ddE&Z58O(k9ugS9H=#I`I{Y@R~+^Nu^Jv1CJWI2@)rv zq%4W>GCA=zKK(hM>Trn@q>L8{anIx8CsOdE2}u(XiL-I>Z%LE|D5*?IpOMMl(MWIM zV!~!m5|hWHBD;e_hr_W?qoQ9X3&M2xU@s#QZ-*uKrKFGX_~87XlB*|F zsxg7Ghb3zWj^=Gd5qH2zCJetREOk9V{vjS1h~FH-agJm-g{N(T!%Qdv2KU>sl)r-T z>k&*B6wn^1n^5fS0XDycTwknsTO?3hb-P0=5Rukhh~xfoMvvh9BVk28*b~TTI58SL z5aPd%2{!ra_J*4Gpo|_U#@b_00UZ0^!{7xX{N_*kBSh+kg>AjZnmbXN^`yAw99?!H zmV94sYsZm#c$6`nWWpqVW+1*&6CL~q6Yr^tJE&y$tE6E29|7`bvCIw*&wSlzkrJwY zhl}-~^FWgqBz)~K0?0Q4`2nW4eOBd@Y{iotV_&vm2*$oxr{08+n2|Im>LmOg^;uL*3Q;vPMe z1*m(>(k?v=h1JmT@<^?{uN2=_DsM_SS4Hxxd|^97bdy7e9Ko|9?QE^?<0;wFCGC$J zmesr2KOg0;_7wlqe|&YYe089F6-+*(%|Av@{WI3OI@t0P$Pdu%Zil--(+_x{^UMA> z*g+jcAO`}p<@-QA@IM_cAXxwZeG9;!m7y~Ld|t7)eYeB0ABMk|m!E>ve*p|Xi%+kB zv1e(#efilPcngZqzYkzPI~){f$K?0_ee?SAv&*0n$u|1KBia-!-Ri4$MryYO%eMN- zodXokNX4dLt#goRCjv5GMt79W4VASs*z6RLwZqTs9Fn;s!0H^FzdN`9?t@;T~OzBge;02J$4O*zEm@Y6Z6l&j>8a`AQzSLS4E6rc)44-SwUr**j z^UG2ltpDKo)O~NV{Ah%MuYRQ|=X;a(dy{pwG4p$)@<(&_VzumBiR4?M?30Q4PRoV- z?+h_+EEUfG5tl<^PI_Srw}lkApo^U&E03jL!tn2jk9RAIuM)I>V`u<^YdIQwHV}8g zKjAVe{Z^vz0V`)*nmJ~zyUDdwhYAe4lA!iCZB0b_TCg%=WL^R&aHMRHPFx$p*^f6N z<;sIJzGn)}J)OBbg|ah+z6%!rG?gD;;me~QOs6>~5u6hex2Gg-OCs(dGTfPhLtI57Y; z`InohS&iiKOWKozHT5sA-G6oE_WXk@-^RK>_1*X|@ZfFV*{Qo12OFwS#Y8qA!M4RF zT_a?`*tf|qt`!AiU;0h4%>MV;XI;JLBuS|ogJajB61HG)n<8=R5V#Epuo03sAtCq- z+-Aam4nUZzzz17+7{ywT!2kCs`43<6<^bLXhYN_lE`Yz@m$}Jb?u-(9znjfoq?#*HSXK?>k`Ea_!Z!YdMannrn@kv_u`Oi^i*Dao&K zNmC@&j6)Y9%@7?IggG*Pj*>A)O<%~!cmwXBcp#>28 zrM#2!-YNz266!QFWh^%GnqP3OvtOmFPwO7P%Ww@r1$JX&dSW6*qcLM?u@lJ&6XevF z_}CYO#1~}Zv&6*l)cEnl&LV82C#@(CD$Kh_R^X(TGqx3N;*x9tlC& zv5|I6)G#{Uj!t=njh{_TpG%IOO2y4^Gv>+3uecn0OvH@?L8sk)E1dkU9t^(i8+A7j zdmj^bI~ETereI@ufKBO4Bo9-VFSz_^z`m)~6H?WHNcWJ+Htvo|gN6k#_HT{?Zzq0D z2yhbOP*B#Eu^E`3fy8YPBtbDYA?Z6Y5)Y*5U}Wb02<}D% zw7^^Tp(}i&w9WxGpC}Dn{{ar;6JO{XZEy`Xd4&o#1amj~gZanefzf-0ur>wJ*ZRf& z=P>C%e#BpW@xO&ZXt6$q+HJ}kEh(~>6klUyUP?&ow&vfZu|`Q3GY727;VktC@PBOPQJZ!s7igbQ z^=KT*hOw{WNtU56*U)b^J;{X{FLkHE)C(+#LVdT{)RUNXX=zQtR zRQKAT=gS0DFOT)AJ4St%4&P%@0}<|_P6mpQL-|oE zuF6#HeC2fk`zDun@Bf8=3uJHV74O@WOINHvuW5fg%=y`s`%iDt>XQ?z{U=w!>Oa)- zbM!3Ce18J%({cW9`Z)^ZhsM?6hJW2YFzr3}W2ANk;#zC@0r)f4wg_9m*tw( z?+UTG1R8fCP1^#E+k;G7{mfhZb08Y#jx0G4R<;*?972LYNv&aN?Qt3RX^MW9WJIo> z)T?KWx)&DPT&8ipK=+|g{;3>fAJf-H(_*dhOP%d=rF^Nux?HPUtb=7=v)ot=@Shcc zKQ|kePw7?~G%HP}e_B*awdy4hi^`RYdAzqd$^|uOt%ONR(lcB_Z)9|Pa5VJ)mbyn4 zyTnzvV$Q`$A8D!vt=0FKhO^NeP&Qf)$DH%Vo<9_QAu#b?Jhfk#KcFfY*A$GDmfgxQ z)glGTJ!xFmG|Ji-_V!evOHxjh)f^;ZY)gt?gP=G?^ADu(ywW(klIX6nEDsXfiwGSn$F=h*HlH_&6lUopPIh$ zV6we!;qHSk1Ghg9-upOwd*=43kxNbOEFu&=w1mZUBoVH}B>f$hR38MD>%`kUX?Jbi z>%P1FZ3U8D$e3SH34a9PHUl3fg1jZ12t5B?k>suD)ZdOI|MwVaZGdn~kl_fT;0Q_v z+=)#=@SLX>dNL1D#aFWF39f;um zewh5nvGia3(qR2x6C~Nj3yL_f_S1NH~b_OpzX*BRs~e9G&zl-E!MgG-&xfKo`3;~|jW zFt~GU_6G*>Er&4+5nvYmJquKK$~&Im9S>xA!CN8cqm=hfz16lIT$ z9m1lAV-ueQqdWZ&4}6dhj{4vA3%PzI@Vbxh#r=MlJ$-K+^uKW^_^x+Iw?C>2iFt~N zd=;JgDkf$!K6w&HnoLd@i;d|Fz+Cf*xO_DH?}K5NkHpaPJ$g~Ne@&$mlWTr{A`l(3tM69gGByu)~#jQnBoFJ}H%&L}{301k+_A(-Wal)8ig`N1Lh?~kw?#AP0h=WPp7d&g%VNr1LrC3w6K zpiQ0;1wQD4z?fp6XzQMEy=yS{w_}_&$29Ifg+bAod&9)8L9D-m5`Q^@{~byF69mIh z*7or7sEpf6Yj0ukaDMR>p$V>;gL>mbq0-L6J<|$bYIzeH?xceHLdSij7rrnF$1Fm- zQ8tn5uzijK#x2J%TA4LgZW+r}58D(2d4T=Yjbti@p!qi!dVZx2u(M4wWYY|qWrH?z zZ;rL!3RzuCUp6%M8hTC8@U8&VPj8N)Gu!yUqIWp_Ey_NVvQKa7g9}17bO8V<&IG7u z@c%zF>ADOSN6Cv`@eqCrF<}Gj0-Aoa>WNA6P@}$QP~1|;ZYedlq`WI)$t8j20*`Z@ z&v_)~51V+C<;J;Y<);gVr7I>F{{Fn5|KoANKmEo3^cAiS*8T&AA5d~ePpytN{$oG; zbEFj(|L>zsKVTLNoiBEn{{sIX0$;WNB0yo~uLI88@^B@LeZlz;YQLlN%ig*)3iV#+ ze~g?36=-SX9O(bx|M{2v1Fp_C$Kn5Z$I3I1dfJvC3os5=e~0q(ef;A0@oSFH$1kir zyZIgB0OOY>E+O!Uwg#x3LnWJnl$(O(8~rtI81=3YwMT@`4VmR0p6QA(djwl{1ZO%0 zS)CEao#ENeNRvyrWqU~O0rc^M5haJP#}CETV~EWW#H*?FJ`%N;BOFy|pX)W#Cfys0 zY0jotC^Eb))_ppm{&rHoSe3O{r(dkseQU~GY_=|*vcfK~(xhL8=9g3E<%Z0a7UOcW zVW~B5xyAauQL|K|SgJI9E0cW96@CKygn~ZHNqtI9A4-hA9~<{~U_y;ge97MUJm=Ut zKhj;ct*`KOk670pDLCUF+pstK^r4v6194~k2_502hh+1psrc{5>(urFWL9`bi z1V>p9VB*lruq5fo8z}@%i@6T ze=PC0z{EcTNE?wE(9iN$5Pef1XQLl|U2yWo;FPugl=VTZ%|Ys20a*uw&3m!5zXH>L zIZFD&$6@%~;6we>2cYr%t$y4c2419)#eyIA$^vb~KlD*-Ddr+tMA=(4N@1i0)BVxK?nN3L< zPmXhdAd(ZF5~!~-a4*U9=cHtSe@><*Oc5Xyz<-^bIF%MRl|g+C(*a8QESWsdV7#M~ z=Xv1#q`YMT>OnTorq78r3tav?x!lqDC}zGD@u9J6Ud)&g@+L{?Be8Lh!U@-rxSO%$ zd%9^4tH_;h?MW_9Rz+FJ3pV^su zX&2_oubA7hm_PRmvd3{bV;SVJRKidiWdu*_PoqA@uRs5xO{UK1bTa9gImrq0troSH6+p}*DuY2O}bcr3H^9CQM`&{t~gC^mJKJA0gJUx^Va zdVO9?hZp9*azEz*(4caRY2WQpsg$!BsBzo?7m+%EwAI)2)X0=WTPBfc)lJyi@u00WAK2bU5(6 zyXkL`aR$#X`dYri@VBQCMgVZ;hh-o54-36;9e{B#tp70E{kHnvV$Z1s@Nj~v<9GXm$p^eWVDG;)3lb2V{|EhE(7Ey7X5kjl z4^q#i`Ti>lLswz)3lh+R-yP~73aCR9;ZgbjhfPog?A3)NC<5XP;R%MYIDJsO2|S;$ z>~BEW!V?QuB|28&3L`=JM;3*E`6s~{iYx)-!k%PkjRZXGK?JQenfXU9=K&qE=P=nf z4jIf-R?U>h@Ulerrdsv?9rkxhfT8wY+sH$zQDA%+3P32HNxZ<9@kfB zes8iawwUKy;Ke!DY@9u6`*KM0sY?0Qt9%-^V%VeB``R~^3+KqXK ze{L3gk~A&x8I8NMn>MAK+?IA`PxhJJ`0E5!x2$x)QZ??b?~++>OG?gD zj5RSL&1xEZX)-?|%@D1&?#UOf%}}ky(^e!yO-A02$lT><=9(<=T7qIPTOK3OrWP>5 z^I-TZk1kMc=dnZbsA1_Aw28N#$&ZjRB3Se=mgpB&8UNTZ=d~(!<#B6k6|K^pR_M(v zEyP%zN$#?osiPjeL%}*S zJCsCQ1^yznc&m)CJcAKQk!@iVqg5vvp5G*{zoe%7B2}*tln}v;K>AwAdv*2vyY9aC zLt|ftx<2+idFQ+T;_=0SE2n?g2!ZC^gvhv@hCdvYe0UF`85TE6!CiMz-^Fty53gJ> zlPRGXd;s)=q?49nXiN9-B2e5QByUM9H!vE8ym?DwNlT!&Yp-zm9(fqTwgc_hfD{HH zm`ma~VadD*Ebpgi?(!IUV2n5@Mi!K)3X4&#Pgksrmj)uVt1*rp$?h0jSxmYzN)j%Et%8<17Ivnr#~4y90QP}x;`vnsYH9@~Mv9F4oW6LTAx z{xC7smyzKk(FXH~gH+Nmg)~OY9j24U^J&lM#Bmq|kVq4F$}mp`m#8BApDrb362#<0{m& z!is3-ia1#ax&RzmAql3fDfS%z>rR5;wloN3ToqlNkW;=L=iZWBx+m2JNgpVGjK)^( z#euA+4~^me06Tt+B4oFFZze#2jFD(TKuqrc>?Qms8Y-TlQ<8(-bybq!UP z-ZB;cCX%%4RK4z^ekE(z$QyMThODv)1NE7OGwhW270P`!ozE&8s4xtc8KCnW%D)CH zGy^4$elO&_>^|^$f(5h~A^>)n2tbWjyVu-R?CA6W9nRR{Fu+Bis~E5k_9uS9U;7j$ z!v1yM{HVzF!~>8Y%RP_zvDfb<+D2Nt47WH z3$A&neZN!k?Lo=6$MxSk4u9{e|L!~HhrIQ-e(h`d+IPlp`-GFfui1Yi@E!jK4j-T2 z^Ro!>&mPeHfd~yz-y@6NK!j*o@SR@lJG0Q=Iu9ftUo%v_EWnSxR@fTm{DhygVEgf} z@SyGY!#jxo;QzcZKLiUtjDW!c1n2)N3;kyo`pz#5TwZ|nAAaBW+d}U}Q2+uSi15h5 zk+LAby<(N&D0Mj2uqM$Ij<$rwfzRK$5#`>D1?#UPBEB#Z?Fx&tL}EQ_AT^LszBzFp zf>4`4s*52WiYH!3Cg03v-=~YZM9O}xa>!l+2h{1!-ezE@O#WUf7tf5(YSD;WU9mzelC>mzoLaOhjT@06 zUZ2N|%wPnjf|-G^1S{P_=B~@;tM#VNZ4aonivQ1c%HO7^{ zF`v6y$XN|~KD|PAzNz~55!s28uB$cVI&VgiJG0c2QR&RA^kfvfuq8IMzJ%a{gl{Ez zUnRc0IK9|~cAMfYZk)Z6TyaoVe!|#rfL-T^wW@Z=3bwO3TUnYID{U23vQuM=Q5+{a z{}P*r)XFKX;Ej^~iktretck3GQ9}NUrpnJl19Q(u=AZYz?|b;F^ZK)EO>GsHi#a(* zP`T$aSuLoX!#lH2CDN{w#ZTOp!QW4eKfdzdpjN!jAM(ms5>F0FfN~agV4?sd{bf;t zAOtTUmbNU86oJA2yqEUlZcz9o!O`Z8NONSoG7_1;B!;v!RzaZ ze9mwlaTK5Zj10Lj@-qs4oW>Ys=Raq%pVL{>bYS~Pz+ht<%lupB>Ey9I)(bpmGMDo*moi1+O%VB0B;FK7Fh!BQ$m5RVMPq<1 zqDsa|vPq(7A{V?s${B`XhU0iEcD|9AgsvSD zX@?8+qf*&$LBX(6`CO!!P|BxNu>R{u6@XjU-lUSXK?p_wjsh_Ml}Y$OB#?jdfb$uM zV+8>4Em0Dg%nVJUu1F%Sz>!xXseX4TmJ^g9Ta6X2NfWI?TYgC`+?p&4#i#-?(om!o za`ebtzwL8pM&Y((*N!ajHf&W?YGrJecVnt51T9#GQU%2;*Tq+38P(}bpa8L#N0EO9 zKR_IJX*_WWmLHhx1?vSz)#Gvw)s{g7_%@T)rIim?)eK8XqdMVmVd1z<@=VPhDU=Rc zBz=(Qa@qQ9vH{TiORfFohJU93YA99dErKdBBaD5)_TTB%`-1>Q<}NR60j7>pS0^;Q z7nwT&>{(=kxo~HN^PvZ_0O0U}Ro(Eou<)+i{lucb>$E>`00PML!~^TU<&hhpSROF{ z!}5Nw&~eZ0df?RGwmBa-p%hqk-v*9QhLACddN=ORawixbcw0~%{cTCFbYQ^G(UqELKIVR)nw_ZKOr4#?lMn7>@9Sh#NacE|huN$vOc>aQKgzx(RH_a6Gza|#as z-y!PT)AG#+0B2x(wt}l4tT>CkUG+01$c3%nx3eANYO2zw$#609O7>i@oO; z`_Cj3Nx27VVp6@k`;CRo;>Ou-0iaI9+$(iRbG zUx%`XClrRnTEgQDL9uRtKd*x@U}6oLRf8ecCh;1ga?fOOuTnMlSmHK`en>4FF&bXl z)zfyQ%i zq`>BnnHEkKeLd!YQb@o=e<~M$a7*75YNidm2?={3pWBhe_yfy1yO(-8k$Z(*^{BYD z&s%zzrazXDSHB~vZd3AM01NNRZiymXh$URlHgpQzy~YFWx~lsW;}w?U8e89(s;Iyy z4Vx(3@O0GG1HILjHg+GZTT_y3K7>g!L3tv3A*n9P;7nz#5Bq1Bd zzJLV|P83F_upkW-l*kWD60V42u0#=6CJ^B0_@8+4l0BL*v@{}4w;@#(5pRrywy#*q zPf?r|vH1Zg;mSD08i2x~lp8RLka*qNBQwL7T-om~@~Q?vtDw++{@J*oNE)IZ~K*AVHqk!hXj z8SUA5{n?pAc{x5jrJqjeCzHpR#1TCBfeFJz;y95!4vtL9p zoP#Z_$@lKVZwoxrZ08GxVVtI);Auxx>Oq}m#9(`_QNK_?JWVogG>$3Ny(;A+ zHnVaYIzJGFUydOE97767qy{D71JJ}k6n`0(zARQ4o+4h8Ok0MeFU69AF(A<}f>LM! zXbAiktj3Afr7PAZd7_dn@E>bsoMcs!G(6F^1-mbm;QE7G2 zDc)Z*%$rliKLhqTUb8BuXjk&SRHiNx#a|iA3P@yu$^@a~9}$cdSo`jbmTd7;m%Vpi zO_!(kszA^o6OU9^jHwx8I{v7~G~$#!({abFqEV}$$7T8VQ4Cb*0Ql2grt5~ZZ-oKe z`_T65*ZB)|?Io7Z3b)U#_LafswvHmm@cKXOF0ypF43GuuD}tVP59EKL>ZRS~FK};z z@vZ}|1Lg--`SYcs#lMQa z-KqKds2)&1-@A@{>uvqkd+^&p^J3qL#om^$11G=wPJHb<`R|(Vp9n01^5Z)(?>oK# zb6(#ezwO^Y1voz6b7*!5Og_!;J6jj}PR;j1tK;QaX#4VybT9ZHKj8tCACULY&w;TY z@D2m8BV2*=|AG%RAMpRcFTm$;;6De$<%K?Iet~wF3yVJgW+VmT;sg90y}xKz%yGQI^mcM+n3OklJvxeOpG+FUiHb(`({$%c67Y zam=HM0SW@3FGl*#Eq?2g zy)elq<+4GBup^s)H;w&!iuk6`+qVCFcX9PYj^T7t{-LdDb(<0o{DM393q-@RTXqt! zX7X-xt!=8Z0ekIDhW;8w`zJ|pm7+X~lkY=IOgpKPb$Hn?EX8I#J3QU^E5ou^E{Vj` zmL+i_GV@nwla?iB{7)1mG@HI0OInse0?+4Wf-}vn-zi~)lAvH$w3F^iuMln$F~ai+ zE9uP5aB#nL@xs9A(u>WyraE%1akqxChGs+<^+>ZLt=yGc=_J*G5?4<;D&9J@ zAN1VU0@^g2IU(eX(Rsei{0Cwkr!U+8^qt&y(`h@7O+SJnT)|t%|m~kY*pq%8*gqXE_X!=K0K8SliYBuFcKpSL9xRyf)ErZ6ak6> zBM6EA-#Ee#v4Y?j{RUh?Sb`=pK@k?s2Y2Yt(d;GByybC_1y)5uLnunI8YAD31~QRh zJx&sgf&&KJ1uR=|-rdQC8!`FIF>t@&u0Zovpdl>mLXr0+GfZofOdBC`4mP3e>b->0 zy~&lk(huxT0iefaRK_(_>P-LvWn{Hyle;ogd$Y-X=~=ya;vj`MMkS2l^G1k32V#s7 zhyx792%a*+AdXPkqfGV$h5UldnB;PvGnmf>oGCFEf>%=#`HKSHbB*?;QaKIKP5?No zbTe|%v=+$!>Ni>y5I$!L3Z6^2FQ~Lh2m+Ad7C?MP1g{Qxia>frVZNYqr}MZo+0>cr zyf?{tGnvFUnK|#M?00mpn1(wzN2g3ZZ>PXJ@ZJ`f};!{GWe)`Sb4VmEY#BUzT}Vd_p-v50_Ssv{yE1w zA=3`24Sj0em=0j1hL`e!F@>)5DY-31SS>55L>eNPrPOQ2lw}s*Z(CI`&5#Vin4wUe^kdBg^C=PXhNGm z3hTd}-Rn1Sntg?m{z~&;g}lAo>PLW(F(maG2Zjrssr3D<&Z3zEb&5u2Xdl2k(8y~n0 z_aF=G&^~nN9+=IKP5OHt;JDkc>An(kAs?&dIao`FZ`yuuPA+NcC^C0zu<^#=Ne#5^HwgWiu z!$km;qSFg~t&4C0@trRSPlQLZ8Z8OM>Q^Vq!oUjz%R5FFj?_hBptjW%p5R=Q$5tiQ*% zA4e0bwTMgx|6?Z9~WIf^a|ase9pQY>1HZDI1Rr9dan}bAz7p)DY-u<69Q92 z+u4q+V%<(Q^u_z(|7$aB8E$7{328Zn62hZxqSo2Y{eGqIeChe4hK9173gxd-I&{IT zW+`?TSkgVE)P2RY{a!*<38l82Q0>N8jnNwYZizWT>CSOlQ4;z(3T16RYb{fcpw+SV z)zc0eO=j2lUckFvL|UdCM{6 z$SitL3Khax!AXMfL_ttIcNMJC@nF=aERQ1o5Jgu05uIMP4F{b>!1Qa~n|KM4`ddQg16*c% zc5X)obit5)S;U^StikNe0XlC8OhMTh!@0EK?7RVR=KI%w<}mm$iS+S&!8naSNg+%z zSd&|(j zWhvjQT%U9$pX{EGH4Pt5HhyVs{CvJ?uKv*c`LnZ^FMnt}ve0^X;r5>ke_UIPt9AQek$KEm9KloQx6Ii{VF?j>OEIUo?GnCWr}f`*e4bB@PxPN zEcd#22GqDLMNyU@h)~c2mA-)qP{Ko#J7k9xei42YqCA+_9^n{OeDh>bgpGLn*lqLXb-Lo7`|&Q1C~A`iWjKR3x6P zv%NoSo%`MP^-j(AM>XHuk9_x?_}&M~f8+Q5rtfh6hk}Oq#vaiF!jL#C302vV20vwT8!?Hc55TpZ&p*Lfzw;JaTO+b4qojqv=A?V9-&9{@Kv&T(yfc&nEG&CQ<&xYtCc}P9&@A(`5QpMEN>u!Fmp7d8T+%ZZ*BKUfQDA z07M8pXMH+hB_{jF=!_pRw7_h_kI6YdU@0LPiWs9OugtbrB3Vrpgb+EabBt+DZ|;6t z5HoujnZ1iwSNzxYYrSWR&mGqvEvHmTw~HAY=%i4BbcaS0qc^3PiYax))JE%Ip{MxyR$PPGvK%keHX! z$(fst+;XCfq{CK@&-**2tj_N0KwtO~<0mO&kS0)ItZK^V%iJ+US}+r0s)4~nUc zO{>_IToRjFwg+3dE}>*qLd6Dj(@w;xU8t*ZDL0bRAEu?XrDt@eX8SUU-N{)!nS_2S zu?Ot;xzu4YaR^TyCgTTl=_6F?Fo8TyAq+DLCTNT)knvflpzorev5bOc2?V z8JW+)T*{zK(>T+)ys6aO=``l+4Dw7a<9#+6WS@6<@dujdqs;QjTKvUa__@&g(P^J6 zEtx-jbhfVUOH=Lqq52QS#f!y7a}AYqEiH404$QWmoj-GQuJOpn1Bc(M3SY9#=d z66sQ-$`iRDA@QRuF)rE=7{Tvb!Rg6oAfMf*=H7 zAp!tVFG(;K99)866j(Z$0db_C5zyU6`U&_9djR;!4~M9NmgnKqz2JE0dop$eT_ zoRFsu0v-q&COiC}5R~Of`OC1*UzyDrjE<`EzWrt0l{I&*t}eNFq|`NP7LFNd<3*|w zmubX68#NUSIyL=Hzrx>Br0c5i^j4dCD$Krer?1S`TV(Dn*Y;ML+REKey$0A9y2~I| zYykdGk6Qy_;og5i5Itoc_~fw@7;*5e{;Aj6S)^+#wm2llAg_S6fdkeVk> z!vmKN1pg;4HQ+#>z~t9rzhl?lx0#<7Ssr^#ZARS#yY7JzY(HAq9c~--ckISHHrp+S zt;7kAF(c8_6ky6deBc}Ifob!KJzuhnY`$@$=Jyn1AH2vM* z_)lNcx4zTg`%W(c$)^u40xXOha=st# z3oUcqC!iM$AaZb(fV{v0xQ1Y|;DewUbP6062ch7BW4~+_S{j0u1;v5$N4*-Q4vRCc zf{M2&+iHX=&7wV@R#wo9Ay4di#T=%Zd`hK6`Q=RG4A^XQ;+Al|4pTP*)Z2a8h z{CL1Jd)zwPYMyWL%r==8T8kH(Y;#9F3x{;`2d$s$Y#*xKuge@WrN_tYO2lX6v8@3|+GxSG^^*esg-mucTwKluPM~djdz7z5a=@^kS;! zd!v>U5+|l&saq32d(6#01yX^ zfoyhXCZkv7?Df`-{rTra@6+CEO)WXuhxVkO%4J_6vv20nABj0r)zX<7+xydosl(;I z{jL^964M_A!cszkYnn`43W$KD{7_teSRy+B$qq{7f_e}N8$kkdWej~Oni>>O{An)_ zq=TR1c|ovrprj$OqL6rbIBX3F`Vz?g#{uC@90G9?oIETZ&X)GIiP8;;`ZWm6I;8cN zByfS6HYb3=IDbhL{fC(RAK?5MXWW1;j!yG#0zF|*Et*)iC#?*bRkk-*7l!bzM^$c5 zI~bL7VK4eBHvM)|<{ezt)6|Tonb}=Axn1d*y}7hLJgootE88hs!e z0$B_{FOJF|g}yKbev&JjB-6*~K#F5b@F6nBn-K736rxvP3IY{KSui6jfFQtoy%xx9 zGpYiB_CPdXTEuxFmb?%NCb`@(GV>Xp{0vVT$>luD%$dYP4H@k@lkaNcLJKN9(~Lj9~<_eop$S!Ma4cg~r;vv$X#)B2^nYSvluS#Oy)dgnCe zMVt4t%{^PvFz2cH}V-zI-MS{pS^t?biZzWQ@Ifc6t4)&1Cj%NN0Jw9=?B`~Gk zOY$c*_VSkOmPaPow-(mgNC@*jee&HBpTQbV9jrZW!!&s?>(~!`@+C^kaWNc^tJ!D#eshfKLe-z zNBseC2Z8<%$Nn?^?Eo~TE|?&|Z34n#C+7NE=7Am5*#cSP`OZUtkDiB3r=tP-WkiuU zc*J2CX)r>v63m|nO+c&?;9cPuZ3Nm7gtP%5Vh!598tDM$e{hUBI6<>47Dz#cRhXjn z$ckw4{ypjY<8lut5Rahpno;!Y8T7lXf_A>BSEe1)D<;kA7Y_Awk#V}x^{UwLuGa8w zpZ&`r=f~r&PoU~FnrBZsXPc@%om72lvMsdO78~^oCrop|e{1&4ow6(*v(6o{em+$4 zX`lT=mG@13?bNX|12q>PmEO2-Z@ecj?lhF&;wa8wSk)WQ!2d4}N0&ulDqstM^?z&5 zksUdw(-b%P-UqVs?vkdz1on#=@{1{~TWO4QY4U^Ef{J*daRW)Zk!;x^aK+i=Yw<<7 z&Ze3_8Uzl`2-=lqyT3`tids606}-n4RVc!nkl3g4yq zA-TLQloD!#d6!Wb!B-{ejvshhOww()!G<~ zbhli*m1n?e_A8s~6sPLgM~jG6mL!uEVKv2wv5}rmZB^}XY4eP>a0;w|R8D6a?-7ydtF9ZkaeuPw-ehOjO@joARvT03*D0(& z>6|vDW8BGp(@^&LvVF|!cwB2anUCYG$KjWu2`jP0@Dy5PCM^g{UJ7G73^x?ZiNJ~0 zqzYH#xS=Q>m^_0Ms7vu11dFFBE%tB^=d@n7EINa zbXjn0RdinM4qVBvX{9@p%|Y>HThW!fQupslIv17lJ0k05GzMa@Z7Heu6I0r=@;cI> z7oOammDQ0&>(24t0(x?2J}Rp>k2pXA11Eb3nqmm_Q3`#WMjhgE$BC?QsE;JGC)mPg zZ04v`GNx5b0f9%Mf?L3AxnM@8d9ByHl`CH>!ewJj#u%43 zMk0+t2Qi5_PM}QYkY8r!PEm!^bjC}j@GXh{7SH&QMShQ`y~`7Q=32f8j9>WrPeSvo z%s#Iw{i1NpsY*VXia(o6KWp8yGS@86IVW^|=Gs21OFyf;?+q1iMdm4%VT`I8msrM> z#&L}i$fD28I;f=d*Gei>!wOxGRQ^C9IJOHT_&EkhZh6b&@IS{9A-ETeB>#jU1fr+` zQ0W_|h=`{L#QU#W0Z`u=Lk~pKV2%$6jummD;CS}WG4jwT$Ic9Ocr!yD}=aCjgqG9?NiT@}C0@FwpViKvVP~NW+Hs3M>tzV9D~m z+<*jra6A zTlm8cB^=|Sw58Xp>nSz%m1(-m!OWxYg9vbip}W%DQ*DFt$BqhH&%VO$DpPm4{wbX2 zf$i+If)VIxkpoblT^@CNG3Y;*r(Q=_sjkgydE$l^n8L?J@C(+*#h&&`D{!6x0rc3Z zduTE}h7qt+ecuL9XeX4#KP-Z+!E(oDd2H9i*!Q8${Lp55;*{U9>R}cD*ylfWni~rB zO`YO*B`|*q0Q+;1$Gav}b!sJJrMj0#tsgGh7H*Y%ds6vNd;LE?D0V#j&)}(l2G0K7 zf8y`{=5GV7AOtP;9fJk`yFd8_{(t}B9F!mbUNCUx8!Y<+5D*5L2o#e$+ zHjc$!SovH1mx6&)i-Ttu2QM!Sw!n_C2zov^e0;5oea&#-2QKJ5Ec^d@hvqttLN)vx zs7zf4<^es|-Z0kz#W4-@?LZ=e#<6NyL?S%WP&8D>idQ03;R#ak14m*Y2%rs$(Jzex z&yOKIMjx=(x+=jO60KVqrwxcztwccp#Jv$$u`6@m&a?yZIgJ>+U;jrFuBOrMQhDt> zajzWKf8{f)eafkscIjUgn_m|z-|Z`U2b0{xhK~(?{Rhnd5dQiMao{HVmy`CnQ_i`Q z*11#mxs&!U@ZMTBf7(0S==^lJ;^U#Bca=3Cs*B#%ADC`wnrLn5^OW?+9rvl+vl*1b zJJO27kcomQsM_s0Kml!xqW^){KGs(HD$YHU75<(jzm&qegyCFIp`Xu| z9>bfwztRhWvt^OF1?#AVF$(2YYMu0ObNS`6bd`ELMYJ{(La&VAOmNMS1JZ~qGjo1Q z&03kNLWw-&a!*o`Bs^QQiC3IjrQI$kg{9faHAT2m_6EK^tN3(t&-vDllg8$Kw90+b zx`Wy)4n!d}l*Ei6DRxP8D5W9EYC?F~n|Pef6it$}T6yrG>S8tHpao+tCDhb24(j8y z=F~F7&H`^vEzBdF8I`4E?@{aZE9KYjxts3Tny<*qx(km@I_oC{s*!B^qhxL;P4N80 zzIQ`+KJ-2ux&HfcM8;7x^(wWXjm_*(=wBZ*yfE><-aRvOwW7`AIwzvCLs8UFsD(`= zN2F7Nl8Avw`igiGI73##`5$J!iGYRSgF|3V3U@V_Ixw^VBxN~*wk(PVv&E1^b|@N- z_qxbpFad;UHO9OXtJ&gjl9GpF)e%VLIt;L&bx>8jEmaeN z6fcWotw1uDB1IuM{jMBO0=_1JYz#%0?M$nQO(}`XF5H%=2~F^9ip# z?HP?ULS_uHMWYH;i&Dv_wOU|7z-V|z zBA9`Bu|)D*Aedsa{@peBlYAP0M#sq1F+6^hh#$)(jpAW0KzmLm11WljN_$ObydyBC z2{|)4+)o6`2cG5&%k+t3{v>kG!6MJKe3pAZ!bYHUew4buh&{7x{U?#*BhT?c;Qk;s zy_b7l zk>n68H6W1?f+hr@!2FXJfQI3Zr%MU?tmL`DnM;M$S3Qb`Dw5uQt zVcm?A1VVjVl%LDDG)5PUa<9Qu>_wlMrV6ACArqdnO7$` z)&m0ytzDH24Gv|o*%c`?c?25Fz~B~U{~Rw2PGJP4+P72p<2a9PrTzQso>rF)c)XzV zj5tjbMeb*M>SUR2%%gv1;*L9n{VqdiA+)sE`-&YsC2Gij^_Iff-sCGcf)UhL3Jhn! zKAWJuy|c{FUSx)ju=ZkGdzq=L)X`Z4W+6wnR}Xc-o#l#782GyFPm9d$rTRxj);71U z&E;tG8lQl%zr^0|`nMnqdSU*Z4g=)*iB0EjjG;=Q_mp4R=} z?nD3WJ@y^MpTU;Dhfe-?@Z{hA<^ANh{*&Lp|I>H;8;J0|ApXEc=*;5Kg~h>h{*9my^dj(! z!ciaY4ku>ez~2oo#}_(|%yk@^@7Oojd2Fux;Cy>MbcZdpADHt$`@cS|hJ2Y~RT4aa zeuChJJPaiZLMTJy)Zr*YXsjhDO1o^g1r(u(ICE%>7JS{ovHFlWRp4HAP;6mjoO?}D z+0LZuxRk@OnNTBg06{q!n{g?Xa4V1Xl*jkURHGUN)L~CKb?-`bZ%U1?tM#9%jqmDB z9}hS_9(Ka>`Gggg{n_J=g(lkL*%Ow9lb*Tevf1O6pBhR&)z`kM z^1d%EdsPAybmvQVA;jL>+0t7%_><_YhHbdwRf#3x$l}$Qnl-q6o3ajW&OH>3KbvL# zQ(f9waiYssemzBa0n5IKU|q&C{>tW@CENFX075rn4dV>n0LXPUjO z9+VhVQ|c1PFak9f$BalPE=eW^X67tSrmiL$G3H|05p%Shu_8;bg;9<#bH{pFkpz2s zi3j5;*eI-#HDA0sdb<9P{rR<()cszv;ucn8lE{bu=9QOrK+As(oeovG$DR1=T6({u;rCvG0N*;(G= zD`~l9K6=M=WWe1#DpLB=AWy{T5z1d5Kk>HX?5iht+H1-VqY0OC@*i?|y+YxeWBQK= z#Gj88|2=T@*_lE}!FZ!G$zf^ab=i#Ybo#nH#=5Nh$W+$aY*tt*Z*3Yc63dOiNj9bP zLE(YHic3Qb>`zzjlCR>bo_PlmJ?d>)M9z|au*|1dWUN63RA@`(@zA|)$hc>(dV z2n6sy6(InEK#N1s>di^e0%q9;UBIczRT%LK1T6mfA-IB7XydQB5DnfJi?^&xD2vao ziBB)vl>)OTeOO%K2DE*1QrSk-{;jy?nAEEY*c-{&x6_F?l5_55WIfEteUzHho}SvC znbVn-(wUjtotf32o70y??8_zh;qm=UHkd+32>4-Y{t%Nt!eWh5+2HLTrwhjN1<$3b z=i-7FJnjpLbW$XomP=oVq_1Sk*D5&w7rarc{G>Q3_oYbmTr8Q&XH0VBaNBy$lLLFvRmpn777K{#>{8t!y>Fam+SDiWtz zhav?4^D~jT48aLP3IgL8OA{E&PY2H7p4 zE++X%Cc7vSMuCZ*ZOP7!$iq11zTFwl?YPoiS+4a-&JBsiH8^cJQX3pyhojcwXrh2P z_L3NJL}LC@m`5klS0w6xAsi&iAKBf*`>T7)iigWeN6gYOmvywtHLj(NmzjsXh2v)7 zu)ScQSl{VVca_0Xuj?vt_EwmBs?F`?Fao#VJ~PaGWwwW9V*}< z`Q(gRWM;UAZx;D4!ak=}6+XItaAVNHJ*&mjgAD6lwx~)J2 zdQb=xUI6}BZ`u5l-$x$vokA-F0dCtJ_aG_YEPPm~d1%)@G|3*@4foB^`K1Bu^Hrtx zx;gX)Kpt%=opvl@0L9gfX7m<0VD1t;RO z&Lt6U;h9f)5?_IAL@j$}QcM+Er#*^S#m1R3<@-t~e+1?yIDhP)8||M?IKMQR=TDdy zjyk@y=;oSiUz?o^ExP$8*TN~=!a2)avvdAL)t3g(ryBRW{lzoTBk8cdwA;s}@_tT1 zJB4{YIjuE54d~P5YtdC3aiyzqwVTrGH)hpt&uhWt-;lxFzj?5<<_^2CB~@}7nST+@ zx}KJQ9k07UvhB}SShvyG;n~vlEY8XtYH+eA8yZ%wwAz}yH~@a43I7|P@xPFJN~VXW zQ-d;cmt>IE69rp&?!0n0bDw%UkFqS68JTLrYP<-Sa;M6a;4Z`#7W~RSX1{#t(z6y< zOBwk&9^XkCg3^#71#UO1NbOENPY&0n2D1=>$Y z3O5wPUyWsjC9{KoDv-nsK=PNPI3e+(utY&1N*EF^2uJZlQSh!`hca(W(nq2MkqGnF z6!TWBejOOgak>a-2SD(GvFs)BvX$}5O;|6ued3Ac)qo5|R3xODHzNvvO)*ErnIbXv zH3{G}IP?p)aeLIIXv__C%Abj;caqX?VUzEtB8srW@U6z z_&!3Ok4WrgaRw;FVKRAygdgE>$Madwc;Zo>A zYGT0oFO|$lpf6tXFB;UpFFfZ9#(AulBJpH?{tFRHIhgGm~*jqnOZZC$zdzlc84uQD5N$j__1c zM%`8%A9Vizjivq!i$8(}YzNp?!_px9OAJ8*{F%Q2Cy7XA1*7uA5!}#Z`396Q2u)sz zfxmfW1mrssz!xfm0^bdZ1rhPk<^~W~!ID^gD57X%LUlq)eJ0o6_8S&oxi!D&=N@7J zUClhuP}NygIa1^4vndChsARAi&@Q{RapSzoL(V0(6y zTAw&o?ImFBF+Fx$o)p>Jz3}3=>w5}H7GQ#& z_uCfr9h2#SO?6kNx^D&?oavrfano%6!(hCsR{g0J{h^XwmPpUR{8yyECJ?o2mE*m>_!>;G=6{%_Y|5PZH5UG$&-2T%QXsP*surf>Zxz7Dp+F7U1I*tdamejg5u zgCPsh4<9zeAs^BKi$muY2QGgbI`wVv!r~At{=fN`eb^C(;T@!&bFla?4z@1#!yN$@ ze+UQzFBG($!}A@m@*kM*sGn;)H2<`AuKnn2Tf=PIzPYxebD;dR@1Je21N~?2Nj6{Me7lDyV8!trXEVjJA}+R7*B1CNxPhkzne{L=L-7@3Pv=t7kb&0Sw3AT zc?JFN;NC3LzuV{hbkOqgn4k9Z`4}ww=Gn&5FOA;0lb-pL)`gSK`6iP;3)W;`I0gI% zIRC?p*!1au^IetaO_^ibRXAl+4$Gti3_@E@-e0L1&3kbNHzDdap}i4FrIFb34QaI- za_fJ|yO<-rudVJYJ@`myxR7mZ#xTz&=U>25{>)4255YVudC#Lef}axr7xN_$8USL0QTKZ85#hLn@VSW9Kc) zp{^pZ*5*0T4#QrB72$Nm6>1V>&2@LKULH9v+h4^vR+LvQ-jeTS*B&pwc7Sunk?6Le zJf7UL8u9*G$?-y*L-I=je?5o0jze2Z(k2V*Os9_O|EMA!aHe_c9Dg+EP99PpJyuYC zQr1+HR_0E3Gzv@ZdzvO2uMQt=y2;Vr)VFji>e{o!ceD5pc$WTyCx-9c9DC5&X4XBC zLPv(?Rn7kQCpE8}@=x98=k6TpuybmW8N#)B)YX~fh%8!U4r6r|ZEZR=GK~?DL61mb zLR@rJ3U6J8a6_hKU8XP;2NIAphQV5wMu|*?(m+ON3O6iS6p_XWL-1Fp2_n+-p;c-{ zvS3}haD7U_`iz1#IR3h1(fU+QC{DH^6_Nt#4Jj}YRq zn*pK(8!Vt3(@oGKjUd|A;MD6e)u&5?J5j(j+E`muHBY$XbYxgclt$S z+6_edUy12Ak*T-PIS)`7FbjB+ngvsUHrNI5%#PIDb}F}r#O%t=@sWA`cyd3THAJC} zZ~)ZI8_ws9=CdbR>@hB9k}sa*v8RLzX!0EgJE&OlT&kFoNM7>!Py_&?&>J}XOXV+> zQfP#E!R0~A%{7IMs0Ah$v8)LG^Sp0Fg2#^S%HH{F6qj}Wvtn85t(nvP& zCf)^xctIU6s&w0a9&hXVURO%}Nd78w1PM}ZcQ6>qZiEPdURXD~~jT&9! zh4x8{{+Y!zrPEBv#7INpU?Lz6#%k9g)!|6x zYRK-Pcq`&XKkU$jql&gCR>WuR#}JA(Bh66r2jSn1@%30jZG4(7Gy(d)OLwOl!ZF6s z7*k-3el@Z>9@l^u7}p}1D`Le#0QZRH1g5fnL==Q&?avb2QCkNN)b{S%*I(uFnZ;oB z9IL9C(34)2nZ`WIkwVU()7V#H=yB?OWya1TLwAk2r$XCa2Iqf6Z>1U>K0dG0SE_hg z;qVJS|8n7cl~#!Q`f9-rWP_`LuiVsL0yqd`y9a3hApV%Tyry;_{}-FvN_CHm-A{@% zcik2U1w8Z`pSskKy{1PVBX~aVyEHd}`CkNwf8%|duy^$F!{ZqS6@*muBwz*m5S>c{RNSzMW{W)5ZvJLp6X;{)rQw6JzxGRUAzkokJW$o zANzag)ZYUwe~(=J@9_Em4#6$}Q{d*sK^XD^@cG2|{u7IRr$7$++II@fKQJ2j>UVXX zT^Kz3b?EB1fh&KHT=F0Chp#RSUxr=d>mXbT&cHviFwis)V}d^L@YI9yGuH)Wk%wnH z_QTpf`xMssqx0=`ezoUu{e1hO&rce@JUswHkbgVqKKkV;>;i`uo*sa&=Gu=5x8%aZ z2}TG4qd7mvNS5vv!PS06bU|>uJUC9f25VZ4)&|1}DNYfIkq1P{RwgKe5y}-Y0D|*w zLD%iV9m8feVKNTIrZw!!0;|cT|3}hWMn`>iZQozt_r9;IMdBU;1TRi(T;r}Y8F$IJ zyJzAdNCL!3&;q5nI|)g!xB ze zyEYITmf&1VNvM4QYw!8O+bNjI@WiNr#kD(pLRvaeK&J^)a(v-Wh z1;$^BB(eFl$b4>GIX9xnu%6MvuRYxMTZgsRu%R4`uG#-h0d^K8Jhv<;JqyCN{$Ct5 zzQB;-_Ru~0Of`Q^WkqyFc~maM!D|o-^ERUf?KLGEbSUY;-hnf}J?_x7?Wp?ImEotw zR;mfQCS}iF^Qqdh?bW4?ep++0sJ)T9%aiRBu4BqJig+uS{1t3UY>6@7(yZCHLwmGA z^ZO3lZw;L0`ciXSh4!Gbp+j`2F59NwT+y%GGveh9gyn^(q-?q^=nGq3%}Y4Z~m_xri7FJry4eVT)$Jno7t>XM?exSZ1HobtGA zT6}hSTvo;MTuLOF9z|xxWw4i~vtmfRWkhK_S+Y7;kboB@X42wF)JSX@1pCHj@)Pjl zL_9kd2M;3>!;XadkD$e%xQQ8HCXy%Mw5ti67&J2mBUwr^ufu3p!I%*(j!Kg(!&q10 z4T%JOB3T-XlEh+Jp|CE*h!cqL9_N;P)9Orl3=;gmHL1CtP=4xN5BqwqYr@H!^<5+V0I9&Q2T>sdv2a!c=IM%5#e5oZcNU#CT!b*E~`r=SmIM^ zH)q>drdnbVs*ogg#8$&J@vvL{aUn9DL|WjwZMhg~4rgr47U$72}s>xOF813t}wTL=9A zyI%Ovejk|sZs`Aw1733=1=6P;@Vh|yKUinJ@7LU|g`8j8AWZw+0XoDW?2cE=OMlblyyn*4tkzwJm@t%I=|`SGax2lV`7hrf>={xN>ypV96gu>XB{@Y|yf==K9HU>M!NF8ERBXMh611NHwA zH2+7xJUa1p{P@?gqu&DcAEy0Bzls zhCBmp9|C>;_75=afmZ+SzK^%}eY~?1ra*rW>a+UiCY-{LK#Y zpL^tgwprirvwi4te&}|*@6!C)?f%#W2sj9QG=2o^L$Cg0kL62`@pFgq3#dSMIo@wq zzpJyoc1d1Xq|bDMIUZ%4Q8Z9gbRjdNdo!tZBcV11=ZwRc?PhpLZlrQj4gREGu9@@^x^IFpk2D$=+W3U@6>@r$k~oXTD+Fl0M+xlVU9o!ezPyi?feA=tf0{vnq9sI6r$#ZwZS zvyxX;5HDOO1fYV-kHy9&>3PJq|e77)}J58I~-H zLh!>=#8GHwNHS&dwz42BB{;S0Kgk?`21F!r6G)X|K>9+nBhVD!$t+Ig#A224I86*j z5ld991c(F&RdvBN{J^#VeL0+(`xQ zP5H8DlzStlIw{+|4hBa^B}kE%;&jWxjBc&xHc_j}^%EpRI$7z)lRQhBEb*hpv zL1j;KSkp}2B%M7E1ze<_hS)EFMe{}TJjJ|N@xcf&?+C~6bV^{|xskgXgOs-|`NXCBX-!7ytu&T6bPRi>vR z$-F``sn?IHWp`!LoAl!5_+({hN?U5WCKeBFui}8=mrxXpD*OqN|G#N@!AaD`=+ZF2 z{$nARnZ6)}5{l7^LXu6d<_5 zRHq4<-ciiii7K)uqN|r-8@J>*SERLNlvdx4^@9`fi1Yiv-xZ`Z0p{{yJ!+cj`6u)~P}c!xXHPT;={)_Df&?1K)| zfJbxJYZ>ww@B2-6;o?wh81h)a5q7^$d*7!Y_8ae28}4{**F1VC_}5&(1u|dq*kGA^ z15}{ZhKr#8bnC8L^p~vq+ZN+#GcbZ`F9IOcroI$#1ZW@>>59d2MX$b~SDw`y&S+#O z70TZglA}V&0UkV}1C@dkbj~%2ySqOO?E4V71wf8i z+ehf|hdTZm-uD5*f*~?^5DaBqpCCjA6i46)0J!vUFC#1!9(qU`D;TyvDLhbRL?FQo zB3P6H&Tdguity)+lHg=v=w{xcEy4wxMZu|6q1%*U82buj{pPGaX}KNvoIRMFHVEO} zn%SO|bp)MxCYO4vk}<-jjLJCEAXioh=MCbg0T-C!rC0xUyY<};AU~M@>@vKE*q0s+ zkUs+y&`#Z_y+D4peBST)vfuHk+x)dp|M8&v@4b#sZ4eV|eeF}e^=e<*B`-9*Sqc3y ztKw#H`PIzq-X!wwb$D+)))9?&L=yaQ`3);`Itkp%66Z*L|8Fd3H<90!T-;9p;=S-_ zo}edJusuhlT~$B}O)p-6tB5LOFE5qG6?u^Iois;(ZO=}YO|d+;A{bK|f+-75r^FEQ zLv!;(Gf9guqV)ntuG2xZ2@}g%35Au>g{5J6Q2#SSv*;^mhD~~Bx_77kz^SuOPaV9} zZtU*%ovq1k;jiM-mvS^DYpdr}yX`_VZFe1GZ;fC_v!bV=ydHwUq?=WuEplCovusH@ zZ>y%7e{{F?=x$B>9>?#kn$De^?xy_ada~eXg?vw@gqBcPS5e)k>*->*?A%t=&+?vA z_uhgi*mBOD=KT|w&dd)C&9*m>3CjO4Sw8F+O}iYQZ*2ebrtg-iP#23V4Z{_Nl8ZtJ z#o+`CB))ja1S9$ zf8GM}9_SAiYH#dk*?rL7l;{wjWC{k9hY^LkTsA8 zT2Si!yt3i^f|0!9#}wLlNja=*C#aRv44Bx^C#kd<8gq)qpJ0n;X`C6cc7`vU;|b@* z@_7M!TBV(nh@Z#>a1hLhrL*7{;EKkX5Iik}%fcL+H^*R4S1@KODyQfoI0&Ywv`GqU zipm>j3ny6&$fg-(^F|>T2Bf*AWg`WZ_wq{b6jJY$iiUDPp-R11CK{;_+%Km+s1QwZ z#bYx2q~7ueOnYpud7EM0=6qr_O;=f`gnIb7(-P67R5n~CxG7T|#o#21pzBWCnM8)& zYuUoUoCjiD3WEuyQKbBzQ$hJjS%|J!1fN83qY%ts6f+VMzF^vqVMnAGHs`8Vk(ZvMJqDj8jY$>B>R6MdlC>W#GKY_ zUiB|1H>~nk;_Pu~Q%s6E9&1>V=HEza!W5a8V+9K~>SD;eq#Q{&nH!ZQNXTl*5}sDr zAMR)v>)kch=pD9LCM>L(2H&(*Jmr>*+BBm!<&arCWS5OJ2133Dotj~v?Loa}xK4A= z4+9({90w1YRl~Kmp<3l#hxH*`2Ye==Ko5J&cdK0kb+%!j`M%FK40eEO;{e2j!IY`m zI#OpC0t-Nm{jSe8SZ%xRv<$elSF4>@J?@(xBQVbc!v26kz;qEro|Ztjf7z+OY63ch z;VR_6n^fmaw)1)bK^Sisl$Uk#vpUroiR3q>>Ng1&>i2n6T=(UA%Rj@r{=Y{DevBXeHu>xKiDN&;5BwPGgZ}>;OnX4y`KagXWY4$9P}1QR z(D`{3_QD6h!V38DkuQ&b{W5m^>*(QcW5>RZ!*k>doCxqO0sRlS#=yPX2ACkwi$YSs z$H5)%2eyA0*!gjA`-giV_1XP#C?N0uI2^bg{2c(wwS5@w{rg^kH3z|AVE+9#L=wmk z5Gc^|?cRQ7G%oOj<9H#d>|nSIqD4`7@PbtZBbW=f34&9A%?rK&0r>qFZ{sga5iClR zh9H!oY0mYe=CrIm_>x|9PA9&&4V%-3F6m9nJBlkjS5SF}N`Js&Ka%psrJ!42PH8mr z4#hK@>ZM2ZzRvV+mkr>bAKLwYwOKv@3uwRLLzm@KyXJF`?Ng`mbC2qCyZ*~T=chjP zCpZpZQ?OhAZnxoGjrvu!em!@p-ZmFYHv37A1pO=Vp(0N@_sD!R}%YRsbY7Y(2C~rmld+3^UI?1DdC08m?F{2 zifW9sP2AjV*;|8Q$yb+B7h{VSqsxG!_!A+2F`4``zA!dhlnQ(vrv;-HEv4{RQ`pNZ zDkAdBB8oE?=VgbN(3Y`0S=C+jS5BXOddT0mOT4eQ<y2ZF~%o4b!18 z3_BLON)Y@6m~WymG&dYzacP1Gw0H?h9fuS~BIMC&nq^2$9Hb4R0TT*?0{AJC2()oE z!MK7Tj>JKjlxItZFSP`A2ioO$VMrPvh@H!^E$fJTH(1m2xf)SnJUE$M?KBq&#=Vv zA~-MjQyl3u8-jrOvkb-zPccoS!*Kw)z_U!w6hkz_;ZI7GQ!sAg%Eq|z(Ms+kc&LKM z9LYFSI6>!4@{BX^_lP93YR6N#;+fIZSi+x^c8Rcjug_=n*5T3Q8 z3h|&sc7ZE$#iBS15OB%bok9|V)IS`2zSz7VL|GULEC59S@dyL|7m@<~e*{sSNaDwk zU`@k@Nx<~PGA95yI|Ej0BK)!j)7X=-FoY=$9Nm!AZzU- zHPG{02cY2B+V0ia;F>V(*ALafn=QBMoP#jx_u23IEjNAIt3KNeuL+v}Yj&^$ST8wD zmtf~>(O-6JF1k$Tt%h?}-Fd))TJ`7ks&h8Wd57t|UU|W;JFC;4RY^|B!U*I@^FM*hI45~c{evZJ%=>E`6 z`)6R)`w_OiLwf@|-+$$uAMWk@I0$QBNR0u97n}|d5YYKIqzOa8e+aEUc){Qe2mcKY z1Eaxy@c)8e;Pd?haEbVO{{Ukl=(WJIm&$_XAD$?rFdPLd0AXka!1?zc%ZJ^Tw=gwo(!X{qU)%Z545FtB_7taVm{M{nGY7CR+Y^!g zIE*uz;E5*G#AP?HE!cx&+>qDZXgqwh*xiRL??D!Kqp8P<{GC{qV-wY|zD%*aM81(p zjmf1(6jCB`#p|gK3}=VXzf0PnNX+L(XV4V{@nCio2F|w|9~#p zS(#XADzSGoT-j$lzFpkC$9%Yvzq^Uq=1O;(v%Idt20v|Av!JVv+3v}=Xizd^p1YpY zzDvBbja9#2-r8Jfv8Qt78$>#!vWc^&(|o8yeXy~hu{PJ;E!^Li;XInF8FqMHUO(~l z&hSu6=X{I%%YNP8hpYb?>l|(2gO{f~HoY`Ht2io~5}!+nNH2$NFDO4_h?UWh^F;s^ zD2RW`BZ=%tB9sepLMDuhg>g6_1M8RJ1sODAn>C}m7o-g zC5RK?UyRI*$z;LAES3PMN#TlY@iIbHJiaO}T@r(rEXT{2lQk>w(m2QhAgEX3O{)l! z)#+7nSh#zF5S<^1foZ>SISDxAn&l+V7P2d~z_5-eT}tG|ptKM|x`x=4Olk)l+!|cx zHez=w;ZRCe|7Pq7DE^qNv&8HRIM@gjUCSuAM9#mKS$H!GGQ0}^?Y$u?x@@$#a-xhm zPGdfvhG>;h!-09zIc zr`UpNHe*_%nqdm&U<)jiO>?<{?-h!n$WPKaupOS@a_2bwISCK=Jo8m>f^g;)$|q9Q ztV}bl&`(29qrvl3B6_B<0cGx)O7~oCc&5?6G;5!m98XQQr+USt*ER2OJXKrg__A?< zVOp%3QmV(L;)jZ=0kN_VMU?#SHrC=~-4e8KD~S61-ccNxszDt14r=E6vrBzDJIz%n`(|t(}PWK zBeI2@TfH?G8b$d+=oPmCRgx1#riK!lu+-mGu1BrAMt3!jZm)ghwu0b)w#h!>RgF6} zk4^H2CfSf#I^>6iuLZabpy9voH;mM2higrD!P4c^!7X60)_Tul0rxJTK4Bd&=&=mf z81MMuz5wPg>yXzn4Aw9Ys6fpl)y@Zg!!Vo_FcI>@yvTOlW4i4#-SpXjc7DxkyyZ1s zv#W2oEZ42JD<0z|i|K;Pa>;JKV$ohP>ra~k_5YH^c)_AOZ8BUi8ZMdCS1sBz8tnx` z)iH(sm_&G7EI1^T9uf-s1oA_4dOuryStc3vtDkopKb)=pdZ*?4$i9Cb_y3qU^d06u zQ%3`TP9FGYvKKo1?*aY){%@mw-$uK?JnZ{2df@BWei-$Cd))sSntu@Xj6(hI|33EX zS0Kd&tX_vcJ^EJ~1keUZhrHJY{XC%I{vL!EfQIY-cn`9GAs`sy0QUYp)D;-)2Xcg= z`R|7Je+(P}M?Ve2lnE+7a7P2!&o2R>G+^j@xQUQym`xAI(t^@NKz)ov@q?h{OJjzl z@F6WaC`GUU-2K~lVMy-cWL_vj^wZ|55EO(0Hzs9wX3+X^`6n{+4q$Wk=hC|{xd+J= zXR=DKl~C@`DEC>y`$EpRLO7w2&gz6uOwwm|%c~moyPB#uJ1y^9^^p1dCxn0P)qL!9 ze*`0Nrx6ZVm|+vv5a z99Jq$zlEY&U(Smym2D z3HenBi8;%vPm|DNvMZvY{#Ocqp#cK4IH))`oXS`wY>;&x+H?8L?@!ycZHkh+#9rAs4yiS#* z2Ka+4OT~It@LY%DxtgvoYV6N@_d|@=HG?H8xh6g5CQ5dQWNIo&- zGVt>TBdI_J3qpdnA6`R%3qLjuA|U_{1KBRD&=grLB)KChV{jE=sM19kphtqqSCBvu z#S?j;-T{qhSm2sK3qw^#p*gW6W+;XQzer1n;uy3b0_OiP>cIkI1O&!a0V7zdE+P$F zVCwkPszjW836B1A3W!GdA!+J3w01dG2`5Vo(y@`GTSYRhCCH;vK~E@&MCxOcJ%F5A ziKt6RZC{US--zwsis{^pIhaH^ycKgApK$?=Ka0-3f+Acbrr*fSxsy?Phnzo+4REhexcR9G#Xx6EidivXL`eo**@#A z&TExVRE`<3Wtyv;mdmHLno*@>L@c>VqdQ^|mH(5(T9E8pPqrlD!9d4J%rA|=l`hy; z2mx)2QMo^%1D!vpmxIw|Q8@k*3=_8Vkr-(L9!wmZ7#t@SBU*-L#*!%!2zDfb9iLVe zmBs>aYdFB%uoOsq`zcu-gR0qt>8D8Au*KdL==yEBb(=}vwdmdWoCZ{ZcNNCH3gcQ$ z)F&cL%Q42~AOuC#ZXh%w$i7Xv0>B6?f|*h(fF-#Rncy|9#+02>>hHHykM3=psIiTD z9MgL0Ouc2ory93OA8Um}2I)O()%`}$aOwtu=it=?;Q=@gLyg9PTFVg79%{5h)rJ8d z2>Z2nYHU!giEYCo^npS7p}^>fB%KWosR zHz>~NO~323rxnuQ6^g?W?QxOdfKYURCF70uq$ykl@IY`!F{&T1K`&iG9 z@$T;vQ27u3n1U_9;qR0Ce~kBkp8yFE?0>-*(EaTpi21v}j-LE74m1A~-$p^?1NHyt z7uXjE>i^-d4D{S_GLKngJA0t8Arn13NwECBg| zt3iM!1hfaZ6#U!p2PkteI|AtFzhu#ozAuBlUxz!t-0R>*5a9vaCMy)pS`6^sZ2=c& zND6E5R*3S1`44|l3WPmDu3w-}2uk7o?`BC5(y?dmJP7@5BR(h5r16BfEDmlIeXry_`@cD?J>UdSH0N<5>Wg5R^7Wj){mXa z51sb+ZKn6VrVp*A5BofSx2yhccYf}w|FqBat=ZZ=;;6(4JTCI?ZkVHCuXcThV^3 za5tXcn98lrkklbr#`Pug#3Er_zIqMavYDq@U#Utea~2w{Ximjq7-eKIV$(~4&;=oc zg3$D=pRrksiN&!w3cSRTWs`4Y0WGH@A&0YqB45j;MHH6DGb%RFnJX2}a%=yNQ|Hgk zbZa`ARQ+v+V@{H;iRX+BQw^USZ3wY-w9X z^U*A5w{b6kU`;Cr&dgTA-e)nJJows?o+Rf?ocwjr@ihe>D{tOav zOmQ%}JeEjVnhkC*S}?vG7Pzta%1}gc5SqR?8LELgo-B;PNkb9vTOnM6md7Hfkthlv z<^PjH3x~ZPM!GTwZiu`EskER}W(0~8iUd1YWjK-+iiW_E$`B+k0?UiRgUCl7hnFnF z!B$ti1SgI}s-XXmLBe217MCVphLJ=e89^!31u5)kgd`$OmWa_W!O5af#zdlW1P>8Kttq&HxXB#fZnwZ)v*zGU>p8ma>n6J=#xnNIdbM{T;XL5@iMvS zHYxjdX3_18tRaAp<>U_)QXW>Y#sS(uWlT}ZXL5_jX{>-9fG?S22`9On85(O+ESav7 z&2YfyD}#0LESo(m5X|soK#H3aRn37+NWhS&IjMR^ zS_NO4lPdpEDV`Y|PfUhqI^#2g<(b+3%2of;;d$k8zNvG+@LFGa-ESP)H#W^HtK+3b z|H^K8V=+Isd7n8w&ur$WV42h!=al9txq3=&oK>hM<&p;~;T>63cWRnwF$VUzys)(T z6f$gJX_2IoD16TUv$gQ2z<+FEB!&`+V@BcWK=uen!pvU~Lt?^c zE(QtrGWl|10P7b9v0o{mu%a%2K%Zpgl8lOl$^1oFO-x$t){Op2!5(6fa|N<`UAk*2 z%ASz6gFxAVAT}nYL)L(QJ<+s0)wT-lNyHixkqw)$&B^ICzmS!YXnvqwOjSmwOCoYg z|C3U)x#YCY{%CvMUm#*;BoHq4We7$<5E%nxp>7DB349))(<2Z=-|=Oz z>+8LCdK3hJA{nqJipDd-F~VphZ!v-&l2RFx#t%WT7bmk9A@~cn(f+fAxnL_j2=bk= z(g*~oj$09#y$~ZyE;*8(e=MV*Kcna(h8omFz? z%&K{tT`eW zw1XVL!iKFXzzRF>Y%$vl>p-m#Gk<}Z5`gw*4!6Vq!F zGInh#=r7X##;^IE;Xhs|J467uE zWjpdr%2kCGu~_!X5_VwSNz4s{R1|XVLVV^T5+kwHKvdhY3iT#_aZq|mWF~uAfn-eu zCxKEPM=4lXSQcI;PiA%ckDmJV!9L~oTH*dC`F;zo&YEp&;@9of9;qv6)seJqz7zd> zZtTW=?75>_a#yZyaT2^f>tJ*P{R*HzXhXRdu5yY<)XzZpCU6qik1y@lNp(-}Xwu3t^Zu#jlzMcbG^vA(T%Gl=EDeC-VN`moV_$`Y>7cIt?2cxKw=rRbc4rsdY zGywO7VcF4G!NM}o>{+z@HrB)=WbU~UR2nmL- z9cknPOhG5E(6tm>yAE0il6MuNHNB*E8?Jf-&c6mO2n5dx62PA!1iU6CyEZAKW)t4J z8m(UrCbBfhg_JGJR>Wje7GvC7%Fd}x51ZWM?K`L1+@nqI88d&n**V#08MTS;$twr+ z3NU<)_*8cT{l8|Y*?6x`7l`_;R}R%#?=>0*>R{$?yX&*uuCrbXBsrSzG`R2hZMXbx zczvrHJ_GO{!)>qOrUPtWa3e6@g>?Yfgsr9+#y&#L<{sum3FdH4AZcvOh$BiWh5zo5iVx|fwTahy?~S%MBuC}G2rAb zyc%L33l`w>g2|=fBL|^P{8nF)$6iovBl(qEq^d0{El#gOs#RE} zDaYQb>FQ!P-C%i6Z>1bYvU@R--865T=3s4+u{fGkm#;q{Y467H&z5r@wW|LdJp5_= z;)grO-rwK%U>ChE2}_NJ87wq=>2REtMB>V#2$bl|idfJ!WipnN*h_O*i5caQczP_M zG>lZb7{!UeF(VOT=-Xp3+@%CTELy$<2q7qNh(m2DUWA|nRUkZ7uo9F!P(VPvi4sPp z@}g17B^XXP=sB@Kn4t%!(H5qGE`<}C9M}Rc!3bheqDX`&EZLBNQbi?0R-o}0qBIsM ziU8p;fgO~@f|esRRlWqFUxHG^6XfwoMQoaNJ;Aybeh?(iBSgX5%!x>AVw!ga7Jwwx z@u>}QTRYaG+qYobH=qt82uE=_zoAHHP?&Rs;?tz;8|2K(jN&+_=QMH0>_$32wbKE#0J9wKQWGnDqcp=HO z;6Sqnm~Q4GSjQuE3D~{Ff_{#?olxRhiFB_a)Ndqt)}Z%gQGo*IU4wJ~LiDdD+LmLS zOH-@YlO4;kjcGacsrlMOyk%9UED|jaNtMQus}k}!!35{JoZ~Y4c!PbSw{v{EZ=$7U z$||1O?w+Z4KC)E}O1Sr|a!_mz*TXQ!GSaNR(_k8g9d2OqV;ZV84%b*g>N(J8x#u_D zt+Cvw_S^yBPp#)}gZZx4b;DPE%dNZZG2C?%SVOI52a!#xD<1N~kM|>ZyZvQ;c z3gm|$<41l>9sfRg^!wD|9}@@unSlAv!EX~F@&v0_A4q@#c3@cVKJ5DTs29)>-yRGbk1C9Uy1OXHj*0m58{AIN7(-52mU>}24zxOK`hXZNCU7sHU0uFou z(D}o5pyS_6`R*@(_YCAqLaPt%;8q}iejR9qg8yZp?dvUY2k-hexbOSGK6Vfoz!4zc zW=Et^7o@`fw(JEdoFD`@6vqTnXc&aSA()XU(DgCHut4^MTyK#3Hg6$x5DE_xN{*1S z4`r4fNH0B-S#SVba-2|nF+2BaxnO|Jd&I1KD5;vL;!G>~b9&L7N%7pSc;%75Z_@tR zqW^QZ?)_dE{sZb+1Iquu+AV*!>;Bqn{n)Dgw9oo!pY0Q9f!ZA(J3SvEAZ(ZU&t~2G zTGeZh={3}UEnr(pCxkH3&4o0OV~E_&ZRss5Nd6@_Pc+&aNAj=AZ~i5_EseInP<^1% zdc08Em(K4?r|-*=*KHM^;KPR+74l$UDQ(&+Ih5xZLsP&gGF7v2Fv79Zd$v4{b?SX=HjyYL<&L>nkC8JHORX41aCsBDJskTg**4K^OU-;|a);M3**1c`^zui&)uBGwa&Zc+UeQ$R(zVbO< zI`uEzuICQRA2$0-uN#sw<}FSb96iyPX4Iw`V1Akmqh{4(ZPg8-95{F-|C0<(Udm#G z82Aip(Sk5Q{i6#Pp-aQl;an~P{tvJ_;8!<-2taRG>sQ9Y4GzaylCE8s4!%4gy&=Q3f@Db~*j8Ztn@Kh6h&xjYYJMSU64Ko3G8EA;;zL(OXNbcx zC=0RHwHYT3)uU}qus0)Ccr!cZNDdQHK+!>v;K+=t^g*m0N;d-uvdTE?tsJMg2e`c&r7cAGj`KC zyY_-jec7V_U9G)fw4SwUPa5p!OwjyW&gvDX^opZZieF`l{nDyFp}2=9>t-r?$~pU) z{3}ZN)GphrQ`H}@G=CXx`~K+AKjZtM_(Q?}Itr7Y{(mNVe@q_wKH3A_KJ0(LgW(sN z`~V1|?^^&02lc!sU<8I(F8J`l{%_zB208@z1^(~S_Cf!b2OR$jV&m5Y+#VT7WXp`iasqc1|z7bSxvn-fn6z+j^Z&=0Uc+6O?_a1tvB)ZiFXB)Wb* zp(7=|H>3CnKIdq9K3oJ25DNPc*+)plm-8rhLEFq`J>W1NaT$|U%;_rjltuT(jRte;^Q&{YRUfcLvC z@0!)`8k}$H^{=dgKlI!=8FPXK`p?4KSy_iuvf4M1x345r$Krh9sM@8(rq!9P>$CTw zihDBny#?}~TumoQ*n?wqZgk|-s1OEQq2EJqtQT}QaeM2_+x-yxMcuyFb-dktbeHge zucEP;x3^i^U0u=SEw1;LK@fmPzEv*Vs1R<^E7HUrhVFjb;REbFcS+2_l#-WJ#qy)E!ewY}0;)17g$d-Ja119Xl^>U?f+WG9yuCBx1L z9(Hh&BpM}+L_kJ>1QrJo2=EdDX$qKQYOnx<-!K$bOG#h^W`!idz5w>Z`UHeHB25SK zp_nAc3Y0uNg%t{u$s~1Dl4m8daRb4V2utKG@`aoALED@O$xR7KJu6cVZ$b7XVUH!D ze@j7~M5h0aO}~gEo+IU6O;5i?${ETn7|zYVU&)*(DV+f4ZzW}lEdp-CG=(-sV@#`n233W;+b0iEHLMhJ~KkuH@~!5 zUOL>*9kypy^K%EB1&%))zL!q>8-LxahWc0a)o&YH-ZfOeZSud}S@*ip`esM%dw`kO zG`zBV-gvx!)YQFftbXoy%z1oI+%W&q&1${#2J0+Xz|59$z3`q&^;;=L{Bv@_Pst?< zQh>j$UV^P&PvV8a9tT;p08tW-FM?FBAY4TZv1l=5{sO@j$B)mV#sR^bBwL;?iNlH@ z;B_fh5sv}7FGzjB&?keK??gPfvt_{RSe!yzh!lq=OF%O8Gemn}c4G4TO9kCzhHE*t zW^+dU=3Iz?>Bwa@Ct;cp6wmr}V?4^a9OFnt_~0(E4!aATxU$L0%Nh&z5ca87Z{&n6kD*4^@12YtGc zoq&C_4>j2DHE8cNS#CEP0NpbHs?J(CBOEZ&xmjZ$sPo;ah2y|}v)UZ!?cq8A8)5JQ zz&NNzf5+#%rW=|NY>;{0H{GAP0iU|D%q8 z@&|Bm<1pUe8z}Ek%s~tK-~gNmfj%F6VfTR)3QrH11pomN_|gNg0Kfy7An5twq}UfY zKA`7^_YVhpez+!l1>iq`{UJmW=0A5^Vc_!_JikDD7~J=15MJ;8b{jB3APw#Nd~@fQ zo6X;^@1`$EgNL5ch+JAJp{>t6CoH0Q$%_~EYzd>NF_BU;g_nn##`}BWx=s*bi*FM+BHr*#6KY;kB z)AF%R@mHh%ZLR!ut?Z3i`W(b#;>t+|Jltg5b7vf0&gUt;kbJvtP@~w8fqG~m>BrGd8GOIMIv@#-x z5uL|hRwi2`m91B)lbH3w`UAVKyRiy;VXd!Xw+`chnZLSiZpV_osey~}1&`oWr z6YOph?Al{I(a7#>tm@gN?A;|k+`!&bLv8XG?a&k5f~^Yv24&S2ZVShKwEEN$R_mcO z{gW! zSLJ}%vOEG?9D>geg49B(g*bp%@D;)Z0U-{8XfOnn8eohlAY*80Iv=cL;RrD-5kPDlfq;95 z3TD)hARiAQ!bo{M8t62_s5E{!UcCZqUyZEZgs)kHH-vAK25nI-+Nujnc1LfjUz*mv z3AJ-YO2>L+{|4l*Xxu48<|!oU>{iSrT*fVO`i+e2fy}}O;04IZhg`_XN`UzYC)w-? zDEl=Ddzt7b$}*zL|LjWcr1bd~Wb==?RB8J+bHwdR?^ z@WO6+VROEAI9}JfUj*Q^)qhxAe^~9W9I)Z_ym2{R*Lz>I_}}cVebZk3uBrZQqvMsw z^{&D9uCexY>yB4`-;2OOQ2om1epX#O?|08Ryz^Sqyv8)AQq9?n6K4CEzG_fWbr78) z2qDsgNszw)h1#((qh>Ra6ND-Oh~ENqaYP`&0V0aZ!?C3?#N1$1MHEhykWG!o2$$lO zYt#9$L}n-|aQRwEkgo(dCz=MS4KXRYwHc-r*wX)O1MwAO;a0(-Bn7zb!ZFTYh$hSWQ_H-oh?Y2{a~0OI9N}Mwul|M5vIXy2MiegI z;@Ot&-B@6XLkU7)9!TJX5a2{OY4SX-_djaiIa%u&uXl{QIJ3?6ahTyq>G$-qyC%am zuXez#8UWd6qy2uf;l58k0!Dy(Gr*q*eU>4YZn)NXx6yvps~>dRApCLA7clVNalxOa z8&1PLhvBB%eA8vS;kLmt7x+H|5EkioT=!dV1`Y__9lz^_$9lJ3bIb39vHwLMxPZ;D z0*0mVC5!c($M(C;de*EvZP1>xD9#&YXKnfm2K8C!{1w{Mdin1<{VA31ceU!UT-h(z z9TrLY<;E_Ks)Huk!>sD#i?3Ua^ZWhpE;d1T4LOfLVB0%=^vCqC-$DE{aqyqXBmYe8 z2Sw=jQHTTU{r0Hu+kMD|>MQ3`TDpg;0S&M z*04hX3oz`9AHvullsvHEg#=+hMuWYp_46Qf`0bwu!TA*cK?k~hXz~FBG_dE>K-cGi zo-c3(xC5ClJrGF=Q=q?Z?frIZ_m^8uu;+z`8VozTRO-UyN~rk@lIgG!2uWjyVBu;& zTa2MaV=I8u9*SoyN*0AcA{cH*a>l;2%-;0;lf{%{Ic3MQa*kvc_hl6SiYEP@S#q&d*)x;oxl{GB(f+o^@@~7~-CqBD2zJ?{`LomT5$*!5#=p8W zANE2tjN$K|nh$%R?Ejku(Cz)Z)BItl=C2mxpUtwjKK?6*_NkdWC#e``6b_UYU(3ik zmXr?s=lVo~D<1ETM*0(Q&0Di}Zpv#*F6hZ%^i}BFbE}$h!k%o-{sN6Zxl$CK4rF8b z>LOFJfWH*d8?$u3P--${P4s#fNlA-OFA5>^Ru!>;gc${4h~$i)&{_W_Laa7>Rf#KK zYe|ubmQf)HIOAvF>*mmw6jsI*a}$e|8|1ppI^$-sk5bp)c-4v$I4Mmo>Q2czQCVy* zXO&RAO2}JJH)WXW#qBNX-2Q0YvM>}|nLu@9OTn{tkX!dF2l7c- zqt}iPoW12qrR2wuOXJBd0#ms>CqF7ZKNwpa39{8JaDh?d$Ys$Ppyy{Mq(k6Wc@T;g zPiDkr!So(D*n-%trd)-51zx@sFODaH@P-d7!eB(nf47zX??yUQ`xulY8Yx{0LLgWH zV1Yl+3`wF#CaabrLGTH*$uh8@E=JLS0v!&k2RuC_6+{J4#s%SNl6Vvh|E1tGTtZgH zpbSefqTpn1Sek4Jh6}3EP^5Ylte%NL0TMuy6WP$Anq_P$$176#HTkB|j&XLBb>4*TPc0NqOc(SjWTU2Ui>l@CPDoX(l~} zSQbkJTzOt7mI_iIfb~V81qtbzU%;RNV?CT;2~xI_D2zr>eoA40Kr1TMjVgn!P06A( z@PE;QQ-RnC6S=Bzv}-+aCqDZCThW_O^{hbDVJXe4alUoru2QytGomiJz_*fUUXFBc zAlcUt>?_dzHJIl0INK6DKOE)Wl-ZP4qKEvrMHqSrni-UCTA6p!>V33h$3)NG$tL%h zzhTOwn5i{9s;eDP^M}lWyS|zMmtolcZ<1HNZK%;PT&ExOIffcd_v$S7>I{Rm_94F$ zoWHQNg_Z6dkL`}feiu?5y)KA=xdmZHFaq*BF2RJ~W4q{a-E>-R1xOL*8(zyzr+UDx zhv)w%>8*p>-q)z#Kks|rbIz_%!QJX*S8zhy69^UsLV$!2clQt=!QG)k-Q7#w-FMx) z+g+!0H4ly*8L{mOdQ`YcF$fmk%vJ3yD&7njt*csGuy&#coeCD^iQSG?ODwAzI7@ehzgG zj+E&^ywx?oA-|RPW5SaHC1+WC?~t?)^ybl`1vD_!d@LVpjxf)FkJ`x zj_z`f4buj;piS3kwU^C3mwcP{2;BB8zG!KMay8GIQ97yfj}_K8X6BzBZag;DrvV8o zfvV4D25?0}aQ;M73!#q#V!xqSkOlY<=87b7LI01!@gi~TaL|IV<&ijufmFb#aV(}j2C0B$BnHWiM6>6iSRt@hBZSZy6oZm41oCq}8v;jA{tj;yfJcF4G%>$6 z9L);JfhYlVPE~-q7y+3AFnNNnc(o)n3vfWP$ZSO%qHa!xC^APE90%mqhULhjb0BeC z515*md{uZ3%zULWa0SR#LsB?7Pn$^L&jST1$C-k#FGe-4z`GXZX(KYFvoq@c_)|K2 zg?7$Tb6Bn~F}p1V(YqjbcuDTs^t`pX*j=k~_aRaHvrtEfq$yIt1xCrG;=-$}N|*)T z;Z)vW3htIx0kP*+mGo|P{awE3KIlJHl81cY0tsO$z9*6XrBy#wtNv139_dVfsnt)l z#+O#pON;KQ)f;s9I00oG9Aka(g>LPt(F3=2mBsE zv@ewZ61{2o0YdSHI?b9wf&WjOe;F;X80}hy8so@3OY>WDXia|-TrpX`RfMMH1n)|m zFAdY0f%ZVSdw!;SX-+Gm#2TGbJqPmLc=imOAr`Y!@4h|QeSfs)VRti>|K4}$9{Tim zTD)hhsw)QZ1&1Yw^n}=Nz;wCC4zu7(UG5+V$gi7fHlAzNooO z3nEX$X`khEL(mI!++~5){+P>q#`!hb*R}PU8`~d7r_s*Jjyown6x7m)WvgV*uG_ui3m? zuHL2r^QUyPOu4DPexhD7QdKupDV^j=wn7o7&j7>UPp3d>8HOYmjCy}P+&KMk$Ik~_ zrteSwez5uXo$(+7E;!Zg0b%Fo)d3K2z_A&GKVMrDbZ`Ez;pGMdz9xSHDKuCXwh5N~ zpg|Od#Wy!k!(8BhHNlYWg3<7WKJfE=1=QPxVE}%9J=gc`T=$Q&z2DCFem~d$?F?)I zqu+t^e767l#onK=@}Gfaf8g8M?r&#@zn$#(a;){+@m4Tz!^4H68XW#X_KAZw*u3ib z2(X#)XJ&va8!nri*_q{`q{;|l)gPJlVR?>ZOlJnM2Rh#~N#nWHHAu!oN~ z8a8|!)x00Ff9jWi8qt0NBM>0q#+Co9b$y*Md>M3pfr79e?fXu}d%yAn{2`i($MTAM z)y!*r-U;A8cj%gBCcc!r!tgLHixQ6EAA0C_bd8L*;PfM5MogzjT23)O)BO^mle&S3gWox41*o3=#vetYdK^=NUQ}$ z7rmiwX*Dmdq%49~5yRp|R+L5;)~!%z^W{!%bGL5upn3POaoeC{!;pTnx1`fu+0`YV z>{YJoP;K+qPPmHt9JF>P-MP!ZW1n+)UDev{W&UGq_jygnN%zPFfod03+>F-fR+g*N z=p!O!50Y8Cgl@x7%{jE1II>_dy_GFAEDowzu>KcCQ`iYqUKE)ZfrdGtAfCXDfUFjv zJ29LvR7ETvCb^X{_{xxATuYmTQ^b-~umZ=Up~)S(0H8V+`oCBqd4jolqG*gf5hsbw zFQ1nSSpX=G304Nr&VnsKm4K=P<_u)PLb9L;9?}HD$ZWwpL{&Ia5Q(fyK!L&!lSf@D z^oHca@E6))fCwZHI*vf+$%YZ6EEa%2D1Zftp^5?slMAt`WM~*fi2!8@wZgHvt`%hW zl6>#-d{Y8WJUdGmo+$wB;*S-wKhiX_m)PbmYmCikS&%ifEN9*7+^uO@JJYgvr6YG_ zpr_Epb7UIefG*O@FEh%nl~i44*WTw>->j$rF6a$`_*RYV0T@ApUQiMEKOYNZz<+oy zmpqm09?Mmal-m1B-6MnXnM(7*XnAfozcd+MI2`ZXj<>BX?>c&44fefhX?h#*Ls98l zKb-dcZ(Caa2G6Iz@m;_VUw_fk{H7Uh2fnwhtsi~TGE z1RluL_cWIKX5C$f`G&!8N?gBX6+#(;qR&EbL-N?Oa{;^2u!I0Sx3VZ~Su~+I63G6h6o!$SvaLE49@@Lnv_Cr1g@oAXBy_QH?KR3+sK zqw_g4SAqYE2lnq!gc2@jVfoHvL=U21vPLyVuV`IK@uwB|)9D_7{gx{l((sMTu}#Z} zj@azxRk#3x?p=)XWfB89RA&mgdiE;sQdE0(u^~Da-X!Wo8v8$3Z4!Q`+JI+R^;w zWXF%oBR}s>!l?K6qs`NQZTtBMBp@*VO#Z$#@*B?oaMTCI9#-B>1O#AoK?LW@;eL2(p?M&Ct)Bc|)+rLlsem&{` zdaV8Pp~f%!8~@qW2+bYvl!xS1gk|$1QB~1MVJwOdf)8u~fRLS?%?ruqfeR=G&4Ykg z6kW1_Xh_8QSCP8Xa0A(-;e7H4rg$7h9mCK!p$m7QsmGv(uatYaihE03b63c{DXx92 zl>eoZK6TUsg8o&D{zHcz_-`M(&HoI!{~lC+9MFFla(sjr{f>WzgE;6fL(mQbEC}W^KDe|*ySO@M$Czcp~5$awep?5o9vC+W1!nfTr%n8rkeCmQ9AMm4A4 z{mUq=X{7G#vI$!41g>NYOSztBZOsL#hg2Iy5=2q?k??<^kRMCu#g-OEl9id|!|JXs zfyt9s#|k6T!w3~gG#04V$t9JsbVdZJG>ldfN~uUHR;O3#R#%G`aZBcr>2tA+Fd{_2 zD(00?=8!9r%7M(&K+ug_Hf?G-(nzy4b6W$#F>Shv7eXlnHo}tfnq(n2npK@#C(kyj z^R$huKy!6Rzh!5ydS`3ZP$PQ;@Dc5bHGP(?eU807>MhMx!yXQN(LX33+^U~k$8Fgo z9ld0nIH~VCrRbeVFIls?aH6=mlWf+mDsC+kk5;J6D;V5ZGB1HpoqZ0$NHqCqo{YA%QnuI6@eU5d$U& zM!;!g1so>lWhz25O$+iBKmh`RbX3sy4q}vRITFMN-%^|@DoZjiT`((4Fyl}DoSfP} zR!V2C(uCz$W6++sjPBIjt_4{emgY<>MQjI51cG=RfjfyOUnrzqq!eE%;@&J{Un=I` zV3ptG@NSpa-saZat^^CHk);mfPEnfR~bVI zZk-T~Sxp64kRT$veol4;+{NbR!jC{4n+tCP{(mxIPZt2kduArIe#@dz?&X*v8gpHR zV2sB1#b>vyENagnHm$^rmC6AJ6v&`7t)jYkggs!wZWr<~SHPSpi3 zu${s12{~WT{5_XiT$cd{;WuAwah`MQ&ii3N?4GjePT0*;cFjqz7rI?ec%A2A!S}dM z`+($QKjw3s@>q{~9Vc8s^>-b28jgC5KzKgov>$eX9HfW-FIfL!3VgJ&0rrCZPUk_V zX`jut&!&OQ*Ac7kkPY|`mi>VGwA%LTRr|EseP-JpqiUyCv)!oKqStIxDc4FA8$>m0 zYbE1c;RwHejaa)wW4hL3ezT+b>zPidaRlJcug9ByJ=!$=WdHPEyCL~C4RX-!k>59l zeqQhXetBT}+ThQNa0}>#CH=qRKNvwLg7D8^9RNfCU_byT|1H4(2^KyE89|$Vf$#5LQU5|WKqr2j?fH7P+5SNW#p6gC8dp1Yw*q3d-Oh1A=c`MIJ*@M-kLXr8fo4k#hT4cJG#re1CoJW{RS&S%a5cp!wW0o81+l) zY7+&O3wSz=*GO<1v5v-)b}zf3U9rBaezLW8qEouDL%yZYzGFZ?*{Ryz$m?@6Tm78= zmh!f-`q2qa+b-4kWz)bBeb;8kwo#JZyPUR>t{bK6eTee@D&<(6+LvC!jHj^U$aPB? zhGj%xIIv>zVD(`o(u+c|r6JG*MXUhAKR8383FV0-P7IzCj%WT?JzxRyVjcomA3=my zJhZ=|^-;OHL?o1k06>NviY^YxW6jN}i6;o7QMRQRIkC ze~kyy7@Q8wpFkgqLW{#Q)k!G0!pP##K#%~+oFp{eu^eMc#<~}wfe2?zMv7;oSAdmq zZWc^1D`zgP56#twWV#|(xgxXM<1k3es zOGpAs1)7i^6pm!&;Jhr>@S2YFmOKWpVW#U%Oy|r`oEO=CqM^M86GKR zPhbR~Ge0$2pXrQ2hJ(fawzcVHpy_p!=Z(ktzOe~z1hDMCZEbwp-SV~zPWT<~+S}hY zdtUon-nIGQ^}Ck9>yFMh?ad$=z41GrI_!^~{)bA_1GVviRt3(_t1`)ySbB&-9$Jp5 z`FA$`-;nSPMskb`!DdP3%?Er3xipSk6h+`AkSmf&yd-i_d|^o}r3BaxaLbD&RV3gm z6R7p^dFoWGZ6zKQA$~-5-JDE7`N0$bOj&$z)k5TRULIf`B~j?=nc3Q?d~+;1unaR= zP`188I8I~x761zf*S!qWyc{*ks!L7&!yQH;cMr^50P9l8)sNZI;ylh80ok--f_F5;bDvEfmd^{$#J)*<&sHr1^}CO z{YAIof>(FC$q13&b8f>~zxhg=>7w6srqOz~#c~FY{a*XA2G41`;e;C&dCQ3gHvk{b zdR-S?paMBg``jnIzNu!bGlj+tk`k z64hq8bh1veSyVe#D_+a19~MY9RErL(<@b7wfA4MicCHHyIX~`h{`G9@ufKNw`fL02 z6Y&3R{B;NVAJ_lBF$e=d;B2=W#Gh~H2EL!}`gR^(^afr1AO}r#d_B|q^;GAV zsm|}mTD}}_`Eu0v`B=l3gH8YJ_k7yv`Lf0RcGCG~o#|<>=1HLPwyu;1!B2SLYB>i3 zEGd3C8j#?e7!>r!appsoA1c3dxuGa_Sn%%2ot+_^nUc0`tynRSCv{A8Un|6GscJNU1zsvfK(@fdv)QW1sJB>~_Cqm0X~iiDzs?9zFN;(3UgFvx@C zI2PqA0T($J`o44cp}8>R1-Eb|&||{#!C@$fMZ$rfGdl~S1XZC~Lhz!8q*sNkg4qFo zel{FOWywJ~8h|r`&@6FOwmcSCl)2TRFoMjkoP&@S*PnQED!MHV!lyW0RGuI#w+7B9A&_HTQU0%0)&Dn5@yDv*P&hW*9gS#7 zKnyR#3@pWL$Rg~@CmzG&r>Nw!jN;Q&#<@b~g+ks%ddbDYvMcP08=MLl4d3A_ZdX>_ zuB^RTUVm4ldL)EffD|GCe`)lO)Y?Z{!()y7slohIX?|=nKh?n08N5<846%=&&$)sU>%D{O)F7jwDL9O;t_I5<0`Cw8M$>Ot~re~ zTvX{@gl<|vcP&AAmLUC0!3$dCPYWLYJMu`aP}Vay)4L4SnO6!bv3MS)J`~TLiB_l3 z4$3rl0RAx8e>Y%w*kE|z)jn!*-0N^(vcZ`g+Su)99Z;~YI_p%Ob_1Wy09}pX2tC(e z1+NZFd(ZgHXTZP@s=nKG3JSa$+*1MfaTj15oM###0<1sXPB6qLC%xQ{hjk9sUe zJ&w~Z%L#}EH-Y)zaNO4b-+#zuJK@tGwHfw1Z2Rr@BR2g}x9Nz(2_-LkZRTAT>mI9V zm&v%#?AWPS?=$NT=nQ-HhFwPW4wY`R(y&RPos`HY>m`$7`DnFx49x%hx{X2w6a?H~ zC64!u6F&pJOnKOKd%i0 z`yX!&g8v6nVAHq$i-r!;;lL?0IemTGcjybgu>rCG)7RERhBvtQUjlpo=r_>$&yD;z z-~Qu#=eKjiKQ0XZIN9+XM!KilzMks%e4_31VgILto{xK)|K1gNzfJRQlm6|n>See2 zp@Kl7OIBUYf8Ufw>-mm%4X@1vZ_|)b2Fz5=3KLdt;dUYTA93T2DA14g|3|c=8SU?*3x)xHv zR_KENHe&w_M2G?F=Ttf-1EW+jl_jE0V4i7Sf( zE=pZ;32Pp{B!VJHDXUH@kSr}$FRiMHVKBpRia%@BOWC!HN=1t~pt4fJa0Q`wesoc3 zQ~`ZHjX0}>I)fx#SvzFdyw-noK)s>0uC3p;skO38|EGi($1IskR4F{P08DR}c@4CuX3 zzXEG`74*i2ph|!?9|D8gRmMeVO?*Cg4r~EAmEabLz}F-otAYIzmRASyv1m*=@Pg*# zm4gH{Cl^@IK%VDCAS&kO^5$e#g+dS@4dnnhHY4gi_FYCck&K(H<&Hm)kLEd&Yy)(?g9u}Eb+P8`e#V`{wBW}D__Iij<>m*P6pP!lV$n^qxr=i&Duk^9iJok+@ILeWV|@kL6><Wh1>JY>3C)~J+wRStDX0?#@jme4UO`&!hE)p0ZsR#=|pY_wrmzm+sWmT7q4T73cv z3VNXV7iiv!RB)5#^Ff`1Du)>8-@!{F@xrM5x^Sc|h3L;N7$9@kvMWca{HB%Uj-0~w z9EuC>)O3z}2|AEYZCFZlu0{a@q7zZ(%OJO8(z~*0f#pO+BB5a=r5n$*FCk0f2;v9= zJA|lPOxq*Z-5Fo=VAy-#Z+`4G-g6r62CO$5+~@VGDWmF?*)*k-!4USaDM(sA>C~LD z!=pXz)ShraSBvGWOMBX(J?FNc_JNZFzWjV^#8TL9_^fdxaH?Pz&=d=zB%^$`tZ*yy+5vi&!=x19+>cg z)iWsX4E?w<3`61RTZ2DujKItnw4mR?DZu#8Ya>5zKo)E*+!}sfp7?QT=m)qx!QOMG z8`S=v=X!pg>wrA(&$FQR4}G5+_%_x3^;pa2gRLL;_}*>Oy<4w;JEnQrE&9t1r~Q)4 zV!|FaV+|46x*DmE%T>SIy0WhdU=1ECEc&?99sLg6#+V;h+nJ@#HlGN}6u)sPd7 zpGV!_N3354tY3#+U%Snp`&6I7|I=cA;}pL#l|NRA?(<78v&xQ;XrmdVR+vU5VU2NU zT`I*8k2R)}eM?Av1oq}?!#GRXkik?Y(W@Z#5<{wr#h1)RG3Me}(G<}lu4Xw;mc|V* zEcUE&MJlZ^ugaKO#t)~0y}vS!DqK`n8(SbvDwZwa)GjEMFXc%W7KxT~MGM)Sa1wPE ziWq`rL$o%UQ5IH&pHV=a%cxvf)}Q<=gSIAV^N)tk7#hTh`hFeQ|Oay1Ed}|Y{%YwBxup9bx6Js5FNBsMSx{i&sAL$Tx zx7Cie@Oryz`X`O+wtIG-3~au+arg0#?M*1Xa5-O|%>{N`FWcC`s-37d`cPaj|4?J8 zg)zi}2x3`0r63Yl5{WO3A}}Ke<`h&9o;s#r7=?g(L6K`f>&4)h;_ED2u`i{*f@6M^PLV`@?;0D=>N zq!Wu318p*aPzI^eAc72C8H%V0)(QZB44A_x{(KCSzl-7#AU=y@@i3i~K{{yxP6l-( zU@MBu6NMt7W>g)4P{jeS45v!Oiedea$*+w@0s2f4i-u}2$3m2QL5_1F(zgTy{nWBK ztLvf1Dr8mFoRxL+vTJ8$R{yc8eqOF&Zn`}x%N3K|v;yCjn%$e6H=MG1Qx<0ZpO`IK z*vVD-o6<4c^03G8_~Ufyc}CeuD*a3W`z*8ScnR-tLFH*d-4!1H8n^yZwd9UK7;KHN ztAC=ia6&bM<9T!A6RY`&$NQ|I>50kuKx4YAu-uXBZz+_QmDUMkoUVC+i( z_d;zvg%?ApPsO`(ON`6OwZMFcCzMC#3lp%KG#dP9fZ9=)K!C81C=5|C8&Lt_i&(4? zOmvx~K|;|)S-hGkd~g?y`U1Gp0ZDsoo_t!p*O zzbIcHhXxQ(Kay%&gjdHC>Z9qrc|`YW#(uTy)@c9ZzV5q?_WN$rU8nX=v*CJ!^_*2T zrIs93iTB85`|G9q^qPHI%`t;=%BGppD~{U$(QG(nR-Q4Nr%bvjhyH}sc*bEp*X%j& zgk|4y5^Ov^?TRdsf!jf&fGzJ?F)AP>JFIn;QZNUFzqmy;IFaAVg{tc4wYuV!MIbagE;U`t#+$K zvOyx-B(7gqtC*;kj#h|9D->I$@~bVn7u#H)fc$x(_t&kl>3bV~J>2~J(T?BuHv`!D z*WGo$fbesB-S6uo(^p4fK=AX*&@{Zh4*g%Syn`GB=l`K!*VaH&{LkPQ;VuAlh>7Xz z>!+`bO zpY}HVz0Lk^o%cnL^jSc3*IIr-$T-BtZ9rq&mLV)jx%JV&+CqTa2gZ54S;41tcD^8z z1fxADl7Klc7w!U)VB1D;=jAg)pzkTKY*r44ij`mzn*)tif72G>A;XSG7v03`mu6yB9zVuk%v=~0Lsy=ktK6V@4 z_q#v#I{$%U7s!J3JOA!-d>pcV0SerZ{_BA4^RV;tuoe&yU;Evkd-Wgtb)VX0KmmGd z7roSQg8ZM#lC#XBBhWsaMQHnzWCOfB)QE=>Oz{NAV)77?zlCGkCTbf&*EVO>YM0R6 zh?)RR#SO#L=iv)x6AMC!qQz{$zBLjQ9VK?d$}&+h&AftbT*awNV(>zV{I~*f3QMw# z%TFv6Cl*LjOH6rnqC^Jl3)01vtZ*`QHj*BKVaL(I-p@;5lmA~b`u`~?h#>jJgByp> zjTp9e)b#gTHub94+7VK5N;x;KsCofMn<-YURMssQikDPXr;5yZ>PDuwyL#AD;%b+# zYvJ^n(M~ho<|;Dw>L=C)4h`r=1H4{8x4lEOp;NlOQ#iifxOt~%-%kJTD{W(^yLJz8 z`#ZVAeKkW9+VvBB+dzeMgUmiwqOMs|NR1&|=$C^%B$f)3#rJX{c<$z2+a7KG=)LJjIYKOD=2{8t!Q)*&(s7t9>y%&e-} z`4Bd&oRL)UUL?cZxnX0+D%2-UzADL1JH2tw!HZNTkm1z#k zvPI`u!&kfGp~@<&IVnGok_ido=7bD)-0DDLZr{S}p_QnS9Qb+;>pz>9bg#KFn$tJL?k_UA^!bG`M2(fQ0^eJZm8 z2;!y7`>LVwwcr0L(E7H?{jSLcDd1O)ju$Qn_8LIyd0~O77a;!t@WJxb?RW%Lk81s0 zmGOp5b6Zh&S)#Zst+^rQoMh7X=3-oNh|*cPOlTv5yxyGrnpje0Jkb2etXLW|35s24 zT)5&zl2~!{5@3Bmt0^r0Q2?+dbLV3!AkPlNnlzF+kx&gTuP_(^0J{ST|Em0O;KE@l z=ca>X2Nj>-{isW&sN!+PIAVJy3HT42SQUfR%Emt_9a#k(nG{bNp^I4A@F%t%S>gc4 z#h=*LEMhOdv~@MH7s=?!qrwkD6PDGq9MzvswlAcqqVeK5Iy(gA&tV<0c<)UN-WwXe z>y<$H?|q-=mJgu)z7rHQJ9RMIRqrubcI)+9HOdVVGPfyaoo*ZIC0LzA`d>ZS4Dnk?D)Q(-($*Tp0Ort{XJ}A7}ce&vbm9YX5$s z@$2Eh*Mr_K``rKRaDUipd$&&eqEGo(tK+tjb-I?ZlaA@h#Jb~ir1Mt_!hpw>#{%&C z+&tE-tdiMz#n2WvBbz-7!JLuKo`B_)}m;Wn1T&?l>J1;6oYw|Uw@;r;*O-|fkO6|Mf}ue zc;PX=@M~ZD4ewiZe|MPP_gUVJn%?&WwV*e>uD^S&fA_dQjya(P;1f)K$MxX<0VvSd zansik{b$I3wVFS+ia#`|Ut6WGH02NLdAG{TE|nG@Ad%PSkXusoHDM?LTwud6mIcMV z7~u|y=Sb78{Vh8N5#ru_Ng!7+E*lx=-fhZBy|KhsD(ux?eAP%qovqHLnUYS%_4!MBX0$v!2Iul8oi{eC4 z8FNY8m{K~#1m;wbLn)1_@yXHi!;akps_~J=EkpK=Zh}>oR#}%+QN565#OTfWTIEW$ zaIr|RpwhTX?nWDWYWv$NS{myH+9hk8^nfncV8rQ~#qEQQ``fCI&l8akQ6ouw zem$r?^Rmll!#BW>AFQYbuvM|5U)vr7sTqYAVgZ3fKx%;TN>WF1X2J%Bf&H+$3hm>5|s=6 zV%E@1bppbcjMl{FYQqq^q&!D#u0A&16uQEmoNEqW?U(<+Wz2JBmDkF}mj%LGLgh_~`i@v} zQ*OE{wck~0gTywQ{;^8-Sf_uY1`wR?r9=PHYkB4Kzit4}zw3?9_R`<w(6f)4AA*|Pa(T1)m>AXt}8`nYlPQjRrf^2$7!^+85q|>G$#_p zib69&a|F@B$uDaTk{b<$6clbsAtw?Re;Ox_Qo5jsn?mI!7Ye}o3u*mC3NMn#OQ2OG zV=Y;w>P7gP2;l#tMA2AbQ1F3rc2rF~N*IBFyFXALL29du!|Ibr##CZ!26X_#*}xKw zmZ}1)$(?9s7pAo7Pf`z_<6BK_O{ZEGU;-;i4J*j4`S5jOAF`+ySJb!!X-~ky$Mzh& z=TDkEfux9~@aE&&b6H2s-g|5N9*qs$vy1MzHFrB&ZrSQDnN^3?(%oXkp4!^&eBPEy z{`ShM-9q8vI^|)R@QA#ApIm%YE!n3w9M$NL8Vn~5nxhsIRJR|u+m2cEhi%p)Uhh$d z^@Q7b8mP`L$8o0vyr5Gq7Yqo_I!q^<8=>$Q7W@-{dULyvc&ta=j-yt?0f!xa*D*}SW z)%rEn^<&)HQGsZqPzeRW57yb<9rS%W-S*?^@bs;<(+?o+yXp6XjlYAFUzqA{fG+so zH->+K$^UXt`T2Dn&i`Y-U{VnL6cPc0)7OR|4)*Ihd^!+x5M7;^zR>p@c9ToJKSA@k z*fo7_;Mc{$>GR#+FLr!83oC!m_Y=)u4h23RaDCe4{d-%}$MyQx6SimFiie*1s|xb5 znwpIyQp+M3=x2z+z~P_Cnw8F)m023B3WY@gdV=zbLh@Nq+dUt_nTKZ2PG^HjZ+2F& zJYs$}b5>?0kY@kLD1ralbC89g|HP1rXJvB$)f<{4OJwL0F}9?dPM+Yo8ib&!M{4t9Fw)g5E_JWw*z&4%%L>HtMK$qcNi3~?L76BPR~JtgMHOF?O0e((+LD7H6=zkRu=HLws$J)N*V-5Sq z%p1oWcdlvOJ5V=ZMcMT$6{giD2i@)@8@1_rVJe>&U0IV_ZN(cp_^qSr&5af9UG}ZM z(k@+wT)9eYE3yX+YdqX;E!N{?4YVsZ_Ug8d*>;cGw(J@_zTLlLtz-Kd^ZND1o$KTi zI~%ti7(cyl&AFX{ecSw#djb=a>H%qH89jkk9A7{QqfsNs^x!RkTpCU+jia*T3z+i( z1VrG)(_o2U1KTYY;$Q?I##<8b&c)QG#b{e9!JSTNOd|x{zv1~svvLb&1OGE<0aB#o z`jNp(Ux0=Q!Vu;2@@tYv&^8F1dG7q&>L^H!q3dFhRp1DM2pA+v!r)SXfHoPh6M#*q z76#Cu)xc07EC-y2!l*n+3_=chUSJBP!V-k7k4C9d3EE{uMLf#9n5anr|0iCZ1i~Xq z2&3UR=nKws!r^}b!I_lbxdPLdLkuiL+Y-?B1te4WN@EmEjq}vu*@oCWeS97eOU&U2 zdqSQK_JvfeI|=1khzl$uwXZ1XMKjlA)7Gylnn0FLAX%G`rQ7hu>oeI~aIEcg)-jss zRHtyF^s!oZ@Zzwo7%Zs;>86&v`nnVmIk;a6oHQ1wL37lvWJDS9cqOnp6S@D$8 zL~2PQtt=+^b1aS|@D~;aPyW$Fek=tT=DZkiI}psPXwqaM(hNW_N}>Yc*6 zy>j^>wfcxuc1$iksM8)&>W-+4Q${6-_6K#)(yoVc_7g#4zww0K12ta9tPt-4q`!X3 z?L6eNpKO94fa9>o4$PlJu7*Qi9}IjCJK-YWI22@l+71LuUi5n)QBl1g?X9@8B%|>u%Ii$`!pL)rLY1bqvJeu%_4&ndaaFTGt` z^QeyVP%C?8);({KymZT61vKy4WbgWHANtiF`#tZ6ji375;05~Fqxsmc4zB<3deHuN zzwYC><@2ch`?%}tkoQZk@l&Vuy-)teCw^vEK2}!T6INVh7M!Njx8~!A{v^1QAh%9; zEN4t|8csA#T-$Zz#no#!pLugEuK81K;!4*GUCRu1VilvRm50EaqQE#8VgTk)Ws z)8pp1^k~+P`VOyY+P`(+$PWMRb;k9hiotQy+5tgNzu3ROVf6Uqu0!p+cC_x;JG6gC z`>sw-1MsLz7Zoz%>CAX~5vT;<5|1Jm#ZpQm@z4Usj39Eu3BfwxNFd1&E22nMQD{R7 zt|5cw&nPx6KsRU78Z$`ZV7FH`6Q;@Yv&*0+U~YygG2fd8h-RpI!2{%*qN{P(l$^&^jGMsF@2R1B@az zzdngrmxKW{gd!0wjzI#89(X~37?s4K<#9QhEc@Bjvob}{2o{cnb^uo@(vg@G zNW%_f5_@v-EznC9mt~I6wItxIQHX|Qgl`eHGm|-nC>=+#hH}bB(d=B!_^}3 zH5T;tS|5ll_eG8eHO{-WwnyfU$JVx|M&BcY=ZUxNiQD(g;d|z4c-GMR(&c>B9C+E@ z^{Tb&WuWy%Q_Bl)=W}1jb6?LZSKAB!(6dJWV@u})UF&U$^}O73TBJKGv7HqwE=eWV zB{i4JnOo^4qZqn;0sMf_%<#N2(BBdWyfCo+7x9v5<#AMQ8WSWS-aBJVdA&a{R3@?Jwm|f&vfc9n<`O+wjtI5r) zslB;mNP{*k#jB%m4a;zi3-N(;nlhGPTvRFy!*%4ar?j@mlLL>|^xij?KLYbVG`84O zCuFj%HKJ`y=FYmhEiBfC65b|G`35F?OBrt`o4v1^w_haRCzS0GiFZn5$Hle#q>6nC z&3=>ipiF;UR(C*U*drXhGL5)bS4{iYl)ls|qxWjtV*D&RF zo$z_U_IbeW1jzGYhw+Hne8QpLZ}aRo8xPs!`;4~TW{CO%>R+{8W7=snZ3i!?RvvG|@lT)Y`EjQ6`-!H14z+#U-~P{j-{0H)?>2Z}jHn;C zi0^oWmu1WY9LgFb0jyc_6cBZDfaO>=FPk0Yx+CcS$}IUKyYN4moH=M9J(kahJbo@8 z%KJd=2>};J(4+yf4;KPHA(@qPbBbqVmi{LbF8gKw&gRU{D4CUBIy0{b{*Zrzewz&x zAX7q~cQLYQDWX3UH-MrH=NAlQk;jmf$z0lgEaM!b_zI7GtCn|9DSE7^cxu!>cgS8g zn%*{>-n5zCb!y)Y7(YM?U|9cg*!jN4@V-m+cc1dZnC(-a>C>R*0f@cZKvxsY5L^xOn#HYb-VhuNnLJ7r_XJQNgg`vzqRwmF5X*?fJV@FHGOA29k z;DsVYfbChS%dmq32y1Z5EO-Hy{4y3~00jVhj*LLop>$xUw)Dtp63EC~Y#KF`WdqAM;{#OCH&i z27ES1e&sV}WE9Ut6a#`FG+)0MB0p&0^8^LtFeI$x;J}B&B!I+ObMp9Mm>Qt{L(gCw zxXWO0nOhYFErgkn8WV>BVj`FKM^05_Ua)m8EI11QsH_NNf9Uy&!^junBv2E!kR(YY z)WsrXsTddyh+^{O@%eDwki;Qt;xP4LxpgpuNWpnivl^D5n^)s|SE0K8#563(b0xu8 z3f;00J|*|BCXeP(Hx~-F6mWOYxZ5ceJL&x0RPLeTT0oSas8L;J*IsAUTodZ9)haFv z71wGMR}I!n3g>x==1Q&dLcRK8tsJEIbM>MVGSx|S!`V9Hg*xeN9aNU#5)Ktl9GnT%Zkh;CVjt7@q_H?9=eFz4ckQ{YhuXy?>kmBYYq>wrb~Dg(!`FVTb@;M>{7T2jt@fb@zRok&&OP<^t;MzGG@@WB zxn=>Dy8u;^NGglN1HOqJM`0}}s#sRcOQLd8ipx`IWyvJSeQ;wSy-4AK{u4tD4ua!x zHL-Xoe3zx*`LK_}zhMfwHarh^IC2NB_LR%>Wb>NGqiy#z>_?6In?CnNjqtcsu|ZI?p|osAUHv4t zYGWC9Ls8MjV%{W+zn#t5!R74X*YB+n9~AI+3naU$t9I4YZmX@^R7c=I+-x{%{vYJQ4lR&JeV*eE+aV9!1saap z4PgF1ZZjRW7!KP&6w>bp&c9K&+veV(HEh@Ec4^hyRGRGy?G}x6qf)(5q1q&tOo-Lv zwX%_ly3xw&kxJtNlMf%)i|A{VFgyho-L#{(xGpOMvm|o4zpe>oV*D1Jgk1hi|^r_v>8yuZtbi zAP}8{Fjrr2$a}owpM$L*_BMUk=6}D@@_NMav{&_@NpnTbJ;tML#9~_i%+ti@)Xq-_ zmkx7YI%n3Z!Wr4*nd#JjXHaKl)BcrSGAjdsjdgR=0lg>%pEf8zbCK}WM&tw3iw^<7 zaBO8bB)^bgl`IQGl+MTjji_v9W?4us1I7U`2!NzmNLF1~x-JIkUYOUMhV4cW`!i9! zIi)@60Y!3@&wJjPT3<06-HtGeQzvhK068b-jcT#{FA!@EYqTUh_w!1ihS&}skB zXZqZ4{Cm*&caQc%uk^!+{qJF@23Ec6g)SKDr(x%(Uh|iJ%O`l?u0}8fuB-^lW zcUN8Suy$*EW$&Q6Yjgje3Fme{qfxb@Qns9D$rkI=Me;OBWkMM*nq3jYl`rSpN%9U+ zYpXQiDt6T`5Y{Y|S#Ta-)#yOi)JWiXmtwCO(Ii^#zJ1Zggw{GTkw z98_T_w(yUF$*jVI&IP0MvhHF=pk` zVD*l`KvA!C0TP-5AR!2Aei^ifL}4H^4z;tqFf>eip-f5u6+*BV%z}dl>78;>871%<*jp@5G@NE4B=_hf*okuF;eL% zT=B`m;^T#!3#G!VMeM7Ub+`G|cLbtad@;PZFO=OEh;P=&ZcB6zbn<&p(XNu+6<6Pq zOK;RGu8Kt0CFP42&%%&-eQZFW5O|Nk7lWmMFA+y4FPzwZ0KuD!Q~ih`mb zb|Xm73{wn~Fx}nVLwD!U-Cbh0*oxg^yVb3LwZpj9^XfUd*7_|LuyJjdGkoJXkK=O` zzN#qxy&~gHW&Yb*@0;4<*X3Dns*2t;RlI7idEM3Wa-j3oK-b_*_(vS_4y59z`vQVCHWp=WZk9?Icwpsb0{9kV#F^iTRr_ z?f_)Y=9t1Q==9C;IolJHH!}bsRZY@>d;fV~`~Ak6$2R(OY1ZAM>~kjhDV1u7FYF;E zO(;b}643xn)J01iqO*rMu>P|Tu$aSq)u==~!IvIXDEBLbBSOVNrF=}P+7E|+t?`gd zwNInpZ*UwkS`OJ z9a>X|+|(@AbV$to63ywSK;2mbo+*IIu}Rerw?KU@PQqHmYWzg?;S zdAZ`p)!J_tE5Ds9`SWbJ|bPB3Yms04^ZI{cz! z0O|FKNc_LOtOc-Q?@3yMPFxZLi#GGOXkf#_@K>=c(h(44fy8A%v^@xn8Ay1P>*6%) z6Tq9NSstxi5v>l0<1dTlEs5g%8cF{pmH~_ZFQN1Wk6L$_R08En>Evv_o*Rkt}zw-|8vbL(DVDT&NJJXI@gfp zQjGla;Nh_hn{&57yoJqJN8#=e(EVuSU-8`Kc*{0!5msM-)>*^EwyiAP2DW}P-MEoq z+RRi3K#G>>4pXZ9;sq#*sw9Ay zM=$KiJzA}4tWdOjRn29>g0}pg{;~tL>ZTk*rhT{47Aj4Pv)RKe(qN8w4V}A^D&7d@ zQi%gC%T3HqLFbrvS#6QY`Mi#rw28j<^IhJ5xwWmVXZP+1JY~(67aJT`9n)RF(iRVbe#HrD#!_@~5Hy!KCA1f1kakBQycUu$RVC ze~n695XpndBb4**CYJ6&tCmNLz&E%e4sM#_WpVOF5im&<`5=_5V&uNi2#ErfUbPxV zOMsh>g4ma6In)6}sC;60OOX6U5uz2)IgVDWh>$PC$X0@_1p{w9m>rt}QN~p$JtS3E zM1l03vL2xdKxqSj9U7(b4c9_b`O+}RD=DG7YFSv;4t(k+T=52U%^plc47ni^>kT2a zL=b^VI7XBlB~Xu$dB-WdNsja!Lvn#DpAre~NEMF+?0b;*h5j$G;E_!ANU4JD;IZ8b ztnx>C!(*NPpGV@(%R{sAfyMApXL_R3JT^KW>ugW-))&bT0dqe~ zOL-0>;H=aa`58|$-LEpzU$|3WrFouvfaKtQmYelFC;eG&+VkwJCnW{XU|+~heNj~K zvb^|pUg|3#f>xKjZY+P>Q1eHB{rjG#55wKF<1KTCnrDyo&7ACcact=NMAw<2{sT2I z<*%y~WvAe^^4&D?b}9pu|Bb{X@a_iE*nvd4e*zzz|68cwNfQ8$X%$+qk_ah&T_8~p zc%@*dY)BBVjDjWz;VKN|I1+!0;jM~N2H=#-!MGIx$G?=FWE+$(uO{RHP(7B^&ewG@ zrG?>%Md6A0VFWnp*OJ&Jp~MOVyJ!aqj#vN%s)!<#geKKtn4MTw{!UWnj)eTJxbhHk z?q*!x2AXvZ#kq-GPmQ>pDx z=^Oc~HW3Ve4VN-KF9x$e9;x{ILhX-RO+W8-{e0N{pNE}4A9nrcZs+&wwet^{La%v$ zz^VRb3v2{%P567N?(gf(-|x2mbG;c(`+r}p`*yYV`xVIW*2Adx+tteXf$ycJALpxo zT&n#0T+P?X(l5s<=MLx1jCtR7rM_%SdD@VAx6pdQp*tXCG!v-Bq49SAD5+0`XkjdS zA%X)PaLcf?<*}5-QS1#Q#=mxp7KTU{0KGZf6%?7X5uLUPm9Z{1Z4*|z8V8RQT>XA= ziq-SJZtYs|34j?GxQ@}n~*_1W_hP+k6)dPt4AK9pMD zWlwa%+e*!)B1&A#hg^MSf(s7P;Z{9wy?iNJ#P}BrbrWa{@%kcuPrw#WeadifXf@L{!p} zxv#<0>6JG(=!S}uavKbFy=4d5a`)F5+ly!w))0v^T%Tn&- zW-+VM6YJfvDOt?g`pkpP1qb@-k2TmkvMI?fM6wH2sNZWXR<>8W+B(Y*k9A!hC_B)T z)8CTbRV``HB9u6{iI_{`8Otc?(Xv*(`F!`0siAXMj!aJWofyg;tYlURH_-{pafHPv z;xaUOB}4=8?B(&y74ZO&m#@alm*Mm)ptd_IV<#bfJ1%c0!5dA?*@Ra5#`1ho6z~Zz zKqUSWB@ILtL{h;bu7cM1d6GOF`*C8Z5b{M!{L$RSKopOKstDyeoCcCy&>RHm64(y> z!Egu;(rC4Ryl_FRXk`?14aYh~jK(4&6mETp$ z@4`p5;;v45PpP`AQr^@VZYouGESmd9{XM(wvEKAZt9=ZJHjDL{)$}qw=V^NK3%B)E zvhzho%9C7ZHcx$#nfx+61wNThO?#e|KAltYJk#5=}v(w=6Mw}hRpi{deYiPY5?)>fGRCeYUq7;A`(V3-b*+4JvMxQk&x&;zMoJwJIt zO8jF$?a>6p3qk!`6vOkU2v*^ZyGTZ;30@W_T?Pq@SU2c4fpNh2twfO9=(0|Rwm6br z8V34mq8BgpCJ0JGDP9ymcMmad2e~ASTD~nVe`i8N9Jvcc%-f7D3`W8JTfUo=z6M?w ziZL+3wKl$mp}0|${G_Ypc7gRpn*145J!WPelkyL1G=ogmAcZv~ke}qTk1P4ZY)M}{ zeVC&ePT~zSSR*t}KUXo#lkI2mhMDqx9PT(@HY`#OiB&^9#UMvIAl46yq{Cuuk61M* zmXAo};~MLrS~p_Q52-c7YVZMi4(K$;t=9ck+fkSOfG6*`%X-4?KI*U?ccmV3rocvU z(Cyxzl786Zp74O?pSmv@o}B$I&wfYBkkvZs$Q&>k`m~;2jj2ZskELB>YvZXp<@#Zb z`F2?bi2t8XdB078fggPS9RPXz5Afgaw!(P#`&8ZctKJ`%%YIy||2b7XFYn)|{b%aG z5ir;np!x9{fPh;5y50jM=kM2n*x&Hi)#`t)w*R zSNcbP$*Z>fXVtFz#c9_w^+)ycKDMANCO#!NPO}17TM;Z@1ns{%KXqX=4VY1j!aj^dE2Xtk?9e*!DJ4^TMH;hP%1WI3-R!Elj?Y-}GYi z(AWD{XKuD#FXI>Q!rImmvZHyqd+DytEYn7ocr7tGn$sxB%|wZXD{zSmVu(H{x(^Qj zFBEAJ9N>wPU}_oJSe#(YKuIkjJY5i789Q1$C+&M-l0v{bu}3gLQr09m<4$o0ph zVom9>dU+rjNO4KPO!gyjm!So#Spq)>+Xs*lqGC>dleMMIJyNADU@ttCoUpT7ZRvTDAGWlJ;GR^Zuc67bExG7{PL#4{higv zd&&=%iVO1C)sEOSbCf$Jp|Aij(Z<1QYh!oi$Uw>Q4ry^6Q{3dPZLka$qHU|-3h3TcCI3kwfBmmh)TM@fP%_+@Bl3}Gw-R4)+2 zkcI%Xdm{<_pM`q}WiiCcP(n%|LcSU+U4^AC#`64d^d-@%AY4fdxdxvEXhBHP!i|@0RHnLXqEw;8MX<)4xmLV=Vu4PWpGmf z*myLUg5+xf4TsRL#sCPyz80nPjnOQPGWbNBS4U)RzyZWYy)se*1e-+=S`35um~3IB zbWx~#U2NWlxRPyA)gi=cpcaQ>I^(GOaHNws`Uwi}5`}(=DY(X0-IA*BNep+yiu-)w zZL#XMQhSvvnPQ1=NW`~A$_Em`eVOFmd}*ot4s^k*ln+(ny9()5g9C!Vw{?m;TJ0UJ z@uAr{ZL&Nu>S6tV>U2DJ+vbZ}Qavvn_UTm5)6DtR{z+QOv&@_q9@le^3HTzdFC`tC)=jo_GihS=c(@JsVUEL3Z4~YJuAw7S(E#!uIx>7#k=0pH{E5wkFJJ4$Ds5{vf9q@xVsU_4`#$sb}Q4RJ)ne8n(BJWAt^ z3RU~qf-yROh$|c73dY%*QLYlUhJ6C*m{iftmGz4B!xGt$P%$9T4hy6M678_cIHWR- zsU10cImm9E zuo=c|&OyC-#AF&WxVw#(E{(NaW^b1ong!ZUk$FO+yIJCVJy`hlOyzeN*WPIP0Ve+k z%|Gw=|L0EgPw?|hc|pnfaTR2o`u|)l{duMO8_4@p&41tMnD_i#tN9Mg{?+F1Q_VlF zwtT-@_X7Z)*J}Q`Q2q`283ECMzUu4ghOd*&Ge^rm9lR{o}|>}gx(j!)8O>0k?)C*Sn%^^nw%e-(mz2X ze249GN5R)7_m`%uj}@+&Y|Hyh?Q4&H+UdS8(_Yu5Kg_QBeSBi(*74WJijHbA1=|p& zHHehW)WW@N*IJ4S;5^H)0J`_`(mS0c?p;YNeMyo z2(u`V!3ZFemJldQ6S->z`cO+oLSBuvuQhq1N?uoG9B%g>>TEdEoYCiwGkXYWdGuOG zT!tBG&lS}c@N$cV1+}L7R#$5^*IR~il@fRjc5k(^HapHDUrphzrkFx_14c-%7oDme zJX}&a-gtPT?Pzb#L^0C~I0(WD0@2h~Em5^Y-pY89@0Pkcitp&kei zq47OYq|q4a8H)HUoqe9cy8)axrueQ%1(4_4GUXkK?lwnuU#Pz&5Z~eOFN;*yC9<1B z@l~nrj!1Azp}wbp^FLe!)Hjs6t19CijpmNtcuS?ZtJXf&+8*ickImL;qxp%={M2Ti z_IRE-T~8fm;C4Q9Sf6+-k5hA}t)^!VC-k;IhNdu^<+0QA*kOBYcTGDi4^z?~CnrBn zaXd?LKP@YGTvGV5F#Ba);qP??ui6XWbXC0RuY5Pw`QcE@`(r&HjtqP_H86Li`{SvB zkEaJepY8iN+52U3s-*^7sMKRt5i`1p~I?w<6nT6vKZqmV_2Iom1holN#d8Y_Sd z17h)dhyajez`O+dJ)r*o_iv+ZZo(oZQRhb4*;xnV@0 zIHb0X^AtxU@*{f7xXv;zQ;)NyV=T!yM>fEbjL^jsiGp#ld_P}0#1)Qk6(bDEIFmoh zmkqEL{Vd@aThhx`_Atf0T*)9;(koQ;3JpEt`P;#OL@}VyO=wMHGUce!FlI3A(;G*$ zmI=LOztJ+PvFx|F54atpX6KkIWy0zNyyuw1Gww(pwtGfx&LM|u*q%0EHuh@WJ$h@q z#@woQwn}tuawjBz59qCTYSLl&`{%jpZy@j7s{L^nX1*;y?l%4BR^xxJdB1~tbIA)= zfbW+pe_Zy0nE&^cs=qGQ{{wU0c~^hOJkkfQ0O0eVYWguh0%-nzsqWh(l=Fh-U+~xQ z(yvD=J{_-`JzO+*pyZFC;@4fJPa8AtmU||_rz8=!V2Rl~@TLv%swHuPg>g^-$6go% zP0)g+al9q5%H`0`y3G_V1pHUWt9+5F<+1Ad0YR*21!NBqNxy&#D1z}@m}F6u-ap#8Iw~zF3UJ@x z!N}Pdmm3rbx^dYKL~A7WPy+QFi+PRDzApy~gaPV$pC_As&v3mjF#l2P`2$Y-wW)Jp z>6|x$=6{4NSiSv2Ehs;^v)=sKmgL#$lsV`EYc_ptNdD|~e6I4$mD@iQINs-3Uwh2Y zES@K}^y&P@S0fX%mqwm-+sA1MU`Vqpk4+B5mhPtK$B5lK!~i z0!v*OL-;L*un0!9@F(-lE9h)7G74yLgd=OmUdD}m5h9OL$3Lq%g#7X>c$|W&S z88eTATZxjudn_AQJ_Ftf(YgyynO@Su$=;+Gr&~pAP($@f%l<$ zCDIr?pBhsviBT?#QLRLn0;7v|B$S88d&B81yD=@HxE>^J94k0Q50iWZL~f!JD-{zFU-cLPUj1k>uFlb6T9cJ$1&|lerB~l zgIuu92^fcm4);Ts>#+qaLs?HjHJTqH+X3(PEE$T!QePJ2zp8-YZ}IEqs<(~BZ+fcU z4z~O;)coO4`-h|5Gsk*oP7TbS?3z2?J9nac?sU(G6Qdu`_I^4)@pW?i%fK=Mfz!PsgLxed!W<_~E)8M9b%48(%wA8S2jS=KK&#_rQ0}&tELww?tb_8ScmO>y zR%6*~@LZ^SSdZtxzpX!XgpqXXamiZ~DiHh<1iK2!YzO|2$mYfKvUgBmwa?#^ScYK~ zL?u>YMai3S`Fj(K!vP8e?EttI45KkNF@FawXFH{67b!oCo)f~(ju4wSFw(ar4hnSB zJx$XM-bbmL={(bebjL-j<+xUJSR|d$m=Ey8C(M=uYV$FL;=EFJ&|o?s*G%wK`{&hu z&5*=6$`(y<`1?4bF|H5}{DVo%UXE&%As%6K`N` zydJi+ohj*NiF&1q9=39bCmfW5f#0}atQt_LM`eZqsjgpZ=~LQ=_cYzgw+JJw?UI}(CqFvTKaU>UX7(!Z|l^$+SI0ISpQ|#PN893=eS$zd^2AB<#hSC zOE9{v`+0xf^Yi^~^M7tt!Lk4QmC|p3V!mAV^FqZxS1Nu0w*mHoYyY)+Lh=`&&GY44 zE#F}lFa@3;@ch?*gYTTL`s-}j*VBbxkCc2qm^(L7_I{%HkCFVh9YwEO@*kCIr!pJ| zM1pn-r(iqUyee+KcVl4;``@A5<+1#w2)N=wL<@d5jjLm=0a*9inABiY$=0}v9r)^S zGC1~2BN7UM;JO`~xgDRqlK>C2?4@lZn!qFwjI?edTh?OrfmmfgELeq=pxpZ5!~p~W zG)({+ZUvFE45L~C%^h*+!GMawX0Jn~uZzuwlw}Z@F=ETN#x~73=Eq|9ry9?vx|C0i z1#|F8lj~D+)~A|`PhQ){QtjKqthagTuaeWAWK}$A=zDYa(z^?N&%K5*NB1ZU!HI|bHVBGC$<+(4#=E(u_3SJM<*XcfGyN_w_C zRIUl)XabTTj3ZjhmH_0_mn`yU>UV2YTh+QSSw1VL-rU__ZSP1PtP*!5qn#P#)H+L3 zOV(IZ&cRA?mp!t?8kKE{Nq5JldZMy&;)~1pb&bxkwt}&~`jcI?$7|h9E~MTVYLjo( zsCO&UIK}y#4j0nxh;pZ4ax#*#%Zz}S=xIqAsbE(cck-bdSTE}qR;GwaLy&3x~QA*-U9KjbuTZv__rSSj@;Ey*3$J^Hu9GenT zf{EEX6DnhA<=ctix|FYt7x_WnEe;U$(1R&kgR^ZXmc`I@8>u>A(X7A$6haUfuUbbG z0rqn_63!k_1i*w)0EmiyI1Nz!HzdG<4>JM@)Yq;+D8Pum5-C}QP(TEA6;=V4O*msL zLn)WWDAu5X9cS1GXlRUPElTZ=H2S0Ufe98^_SeQK=5G^#uR#OnO|vLMzbe)h5SzCR z3d#upsBZ@ca%jS64EZ3QekM^dN#k6i^Dgs6H`uJZBGGN3>V|-KTP(jPQr=`sZgNGS z|4)e(SH++X$*)SZa67o6wA}*nEraEO%J{&bxodVkgn_SC_dscQtS~&$ z8J}2EUYhk!UCB>e&gV|+3nzSZJ++#r&8BIyZQ7ag(4>E0w>_}h9zep&Xn6$4AdBO% z+wsihcna%(dislO+q0s)SJkC&8%y3am;Byd`KG(@?MVHbk-B#i&F>Gj|8czM{mI_< zCp%|P^v|5?n>o`zcXnXz%)qB}eVeM^9G&Ecp$A~dzeVwV5ey%Y;2^S% z)dSsqGqw`RDv4%RMN{g@+%BHV8_UStMk__qv%|>ccy10D{v)}Wo8vQgQvnT;yB%2) zMQ+9<)r8@Swo`M~V{+EVmPBxKVmR5mdBy-@`Zn@}#`zvti zRI3`{stzf%hh*ZjFr3xu59#%%4C+%B?MbcXkU)G;#6KZdk4vNnWnc#q9pLi!bA_W^ z=>(lMn8Y7ri-%dz=*=BUk_=IK{bYU*MbO0%btQ`0nWDBNK_^`VZIx{_W+zk9OX2iT zIeiRqA79+dk#q~y{ajhMNZupXb@Ek1a&wPFHX+mWYW1U9W4A=xqcjX@^@AF1zslLG zRCjA#-7-_ROwq2;FIvk85$$=40zev|QM6zF05tMF(pgUuTCkd1*4AxB{>w%K@$YOlq(Z0!YywA6M zD09wMIp&(u-q)qh);nhEQ)ayxA1j=5RVg6;&(#A9DEVXEJoDjWi|uoZ>r1`sbCqMZ zD)oIy?wkDV-!rmb_w>$QKJn#Z^V4$O84jy1jF`O<BB}}f~ z2)7296wqbsIedSnaE(B{TUaV8Yq9mUxY`?ZT?M2vSGX$;Z>@E9x8&@vaSfF!2P-t= z74pF<<)~M8pi0qMYZ>aUI?-1(VP-kgwFC1tzbf(9+G@I4RV0J3e)t-H(QP|WfcO0tSe=wu6OOo9w&dH6H zrQ!q=onr@jFSeL^m3#U0O>_$EiOVox+LZZ|6nibePKdj*mDHfA|Zd z6Mu_>m>WD$0iX!PX6~YtW9jA~Fqxo)K9KoB2>hWrhyWfEFcCrdI8Y_I|D6TH!mbIx z8Ug__hJp|=Xg-RS80i{3jDsO-Ci9JxEsWLrg5`_=y)*Eq6#iK4I+T7LLKBGAtpP3s zQojac@rO4g0)k+`j#EO*WB>+u5%MLGn&pwk<$H71qjR>zLENJ$lF}JX9m9~1;b`ZQ z#FGh}OANtP0qZ7@cS9h$#TMTb2yXFZcUj!qJpN6A_8OaWjV-?dEs#9^EurWhUvNvR zeIS$HksI&GwfB_T+iK$jjsB5RH?6lm&^sP$w2$?wX|3t8!TiMFcy0tDw0+v0{KRf~ zVl_Q?%)3J$88p*2^CO$}fys2=WP50}K5`nK*o}{@wuct;Q-|ScisyM6=>LwFd0DS3 z@?JHRziB9W(~$prXXWdzg4bj9Z^vui9cY5{|A)g}f1DinaANS&$=*+=`({t|emc?n z>0Hmp$sYLf)4Bb#=XyS!-S_!y@0YWEU(OHBP40VoYUun}_dah=qsp62kSR9f8G%Tq zKa%5zq`~zK?((aUtVKxbZ+q#`8t;!uT#R5Wil!`x0r0PM1xmjXZ-#%&aC&(xCwC{d z2FLD|nyXOstc_sxOvv6vE<|#3!$|p&%*^eStnCS)2&HVqmWCy?pqN#mR2ci_Y$T+t z!)1jg<)g*vI}>#)@o77$N36~l1I_onx%V>7kFpH6QmvB){V}!jpj0zqv>(=~1=jh)R7#DjS#R#+15!Jn=AFIL;AHuw?xN zULS?o%aHfbxm_go0EySZ67(E&lH$UZ-=HO>3~ry79U57eL^AOYQgKF5x~f$D#$@#~4QPXKV)wDhuLB-zEIb-`dn`i&$VCLd&b~m2+3VSWOy7u13ye-(k94mBczA@} zKi0K2GCL@?WGl8U46~mA97Xm`A@i=BJ8cCEkp6YL^^fA@_obP$Ui(~wWwtJ7rp7e` z@Xv(R%a`U%U_pGX%bu$)n1Sw8Z`J$i*7q&VACK02 zIgtM%TYXj}>Lf8C`&qmWo3#qzT$hj>1aM$sX{5m(NUp*ehSI#Z8%vIA^>Tk)(yy`T zf5#*&L?-+aMOcQQF2j+2LlXZNk+cLD4soFT=fr5!_lVp(*+L%xEh1%WLI0t^@t(O9 z!}5)n`X=(1#w%7O8TK&B+35}ZoXW(^%rLcPb)r6iX51n+ZQ{s-Df0DPMX;E%2u)o` zg&qNOgsdTXxGR0Q)zaY=)@P#A)6psU+>BCrWs$JFT-Mf{GSuoB?Z`gTo^iM>bAM;a z@!t9)eYHp08%`E-Gi4k3%FQZ!v^$+zl!h%ehnPI^mU2m5F|#Ih7l}9S+E*cvxJT;axc4>6#koUltxuQc;U9?BXT0^WhIgTDaH_?5r znp?@+l1N^Rp)SF57DU1ETN^+yLmF#&98|pJY{gfD`DY7W12vJ0<2Wk_6sQSUg$IpM z7J$r;A(ur0-~|?BjCeVQ1K$21aFXKz9uEE=E|i5W3I)^#$0rhg0H`u5Xb@h75UfUv zR$;`8U=VM`&~br)kMAQr)jo9j^+rUYDi*-jw^guKaaF(c7N# zw>>p)2OItvtNY_%+svWP4<|d{pXm8;vTgQc+s89~b7u!tE!Cerh^^Mi9L8k{}3Zj#$P@L@T*os(6ugF-5;AU(g zyhD*a~?wgB%p=wZBA1pv1nS6aVaZT@=- z^dC6(H~n+H{hw>?fQ+7}_d^``O3RO_hQF@@+u!^3Ox?%Bb+hByZ-xtBcjZ25OS_Y) zIxXdQ69`oyxRiA<8s7+LS>-JQK3h0{!CvWad(=Kr!1S~F$C&*Afe4EsX#T{!o$(;y zR)vwEuD3BN!5dAf-b<(qA$mjcbupxdC`uRXYbtxI#M#DkG$aV?NZd*cyD$P2JX+SS zxXc|;9*T0VM?v)xK)OH+g3}lDgE)L6-9d4w{?YEmdz~x7?Q0@z%lGORhv=5>fxRFj z5b50%I}n9FMy5^CDR)H7M;hr%tLAlv_D!zqeF^a2;0oZLt%oicF!q4vlRn#+K3nPf zSZkhZNT01We`rjZsZE=gfLaPZw^YqFwS4I6pBdZteyrqOSHWz9_4hRWEs6X%lhH?H zHir?tTd5gA*z`@bl;HTPxYYW1aekzD#8G*;wD73GR2ofZtwd9OFqq%sSiV?@Xu(~W zyeNXW5Jg&u<}bprePR`BNGTzb>=}IP;Xzqs5Z>QNHbp8^@a8;rR*lA6A*!g=)pX?y_SPTjX*p5h@Zn|vxsG- zvep)T-DqCh*^x63&RjlO<{eO^b?J*M(N5V~o_uS3dtUb8v7^J)CsL7WhCd+@Djt?W zdvC06HO}A@srQXb55nZ^z}H2Q3U>fK9wS;D&GLz(ERLo7$8%RhaTua38dn*|w)-Q5 zKG8DZQZ7R)0x(efE(Rw#6iI`zb44s?Sq$Wb!SfH^Gp!#KJ3=B1Azcv%S4bewsG)Vv zKUTa70Yq8R()o>G{_e06qg+kauERMt5KX{>*pAn%M(Nk0pq<pi{YwnF|uX?iSG zJyFUYn(Wg$&9vO`OsjjY*FD!-APDf(WS)jaUTc4-GCVXnADN6#^}2^9%OjoXzRUB- zq=l|cU^WMVZUtjgM&--qq>fK2FyM2ux z_O*UE*zn;v2>t^fj&;nP?)-SV6VCs$r+Q{jcYi$7KYMEE)8z2S3&UT|_J5un|2)|b z2BEL#M*liD^5>=Tf3D0=2VS2WJU=!(P~O>~tjtCVm>aQ-fY_v!Q2=rwFN8HejJOy< zT(Fn)%ihF)h0zyQh=7 z$V8JG#c{pvIP4cH#R0W`0;UFhPkA`7Izx*a^D;mEDa^ z>`q{H;FDU&jIIPhJ6YC&qcjsa6{y5^Y*H&BsfR9Xr7)T~;(98#k;reP&>N`yHWIU* zA#F(#HIg|^N&GIRsFT5M6)GC(f_gH)CV^X>!1vN*H8^fv9p;KEGY4_&%Bc{ahJr4L`1c$-n8_6x6lU!d~$0YRC7hW&d33 z0O#iq$O2C_{eO`8g-XXO&3|61{d&B3=1BSb!Mr!UDK8qVck|50CDa~le9lIU1{!>p zM2HuM3l>BI3|6uX0>2RkzZlnAgl7}VwifAHhxDwEP2YseTpw4w1zo)tidqP@A(*-l zsKCIN!4N-!SQ$mG4ae0Z=)IP#`A478t+I6q4DB3aBUMv@pcO|a741qa3W?9!MS~aA z6^MmWSLo^1_{Kp(GiMVjbsZ*cEyCuv*SQ>F4MJIb!wicf4E~XJ|8U@Id3U0^q6r7F z)GIX7Z2|Y8UiQkP`8~`2zQ8hD0{s89_uibD+SD0K^l(quW0I`7}A1RK)@v~ zfoe-EU{W~#WOWe3vz=aqF=g#hT0^*LXlrtel=`m-?EgfO7R1n(prk8^LZ3ucU{Xe; zs-9a`Np+NAQrR?$|~R$<`N6jkQwQOyfkWNwY#UukRh0Ei((C`aZ zAAe{IjS(#Y6G9X$>~L9N_<+@OuO$$p3rJrgd?)0F+}b$`0SzNQ8D^)9M(De-!jnKwqt5 zX@t!$vT!#v(!vy&)EZ6gizObxv(J)}CYi!1q3A46d?9hZlk_@Ae2dAy%je(XaIfSX3HyDx|O7mSPf|nRz)cZiKzH8LpRmtyYtdBLS#|q^`h2gQ* z{8VjxZm>Srnx5*6k8Ejh;GfnQ!5Z|$piW_vyme=d;6K&h&pdJ@9pM;Pd&B zKQ9dYeXj5OMc4&KKVKbwc5&p){^61Qjsi}mK9tH@9TUG4L0A}0S`a~8ib(i1lJu|8 zgkQoLzeVbN=Bwe8H{gpx2)UbSh4JE&Xi^JX;>C(mfVR3ZJ|~n~fuKSvup*Y7w}+Iw zE52kG(X$a#6c$&rmzcQ;U%VNWvJP1oLd*(ATKwa(LM5`L$nrSed0XnMp4x|b=6ks* zcdUvV>Gnyhx%ZaZN$9P^}{u^TVibyF#ZNoUHWNpZxeIc2h( zQ%er3bVq;=4X`+^>43p@P^}+>EkL3j<4fTR06wBIu6Ud+?xTYi#O}t>yC~c~DzlrE z)SkfZ#4$VL8663U%~bHraGJ5KCM>lD%WEcc>JxZ%1Wt84y@4#Pz%uF*gkG||1!!hO zPB%;5&62dSL>*jV6IWGBVO3zb#TZ60l0Bb^KyXII>YI6nm#t}^4(I)Kt_0?}->-w! zv-v-lD}G+c`+2G4=lN1FbN+v31a|G7F}-TVDo z<2TqK!0>;u`mYPn-dOwjWX1dO;@3U-&ze&1XaaT4e} zohRPMSOep%0m#gaxYS?-6gH)s2;mCkOiz9~slgXLEt=*7|G!f0~--lXJp821*8 zIUv@)2IB}u6>Y!(A6b7`m%M5m>DwTnZbfWx&qB7GgwyEVEc40AZ1bcvL3 zo5y*q;k~pdU#IHdW!v8u+CEel%+}<5tcF&1$H%II&kY%$YI0{!(VXh|o zLw(un#@gAgmf6wvzYkUaH4YQu^gl{6-xgY*XQn(d^6yL8m)OiBByL9})w`XXy@rs# zo7qFl8xZOTxvCqZ2X1xLwc%i`r>$)Y-%^r3t}{73ARFlvrBOvTa()Ur0}lBGRBt}DFpK6aGqzWoy9xx&m9qL`K}Dswp;S;&%*m_bmDCC=3ldbL zW#xzZCx)ye=@DWhOm91Fr7QZY~0H#=SupD_LU~&Lk|dd8A`nzs@vlsCh>2v#5aY!n*y-?u&=XN*9Fq+ zeBpJ5;5t`&lc&EUl-}S9feUe0s=OnT-Kl9kqHjZM<(ku%nJ0enB+lS7ZWY zg?@otb_5WdGPY8(cf@CJPbfq4b0Y~&EKMC%nYM%G|#MP7rYcToAgY+g?i zub(gKVGG--NlheX4VqpYL!S>i?IOU4q#s=F$<9~pj=3WR|C}xPdASBo@;|14+felL za{2d5#Xm0;Lh<^yOK{q+`3|YBYpp8;U<0x(6uTdfzd)nifKF|#_^H$Q zI#u^aj_F-d$}GVAtL!ti8PJP2Tbcd^?49*#pPFIi&-+x9GS}po^`?O}^h0mur|!(Z z+H?NtfEF>UN>-%~Wx2JwBR@FJJDpTO#gfCg%MNeHV3V>xcB?IrOJWfr`+ za`t*nfy*DkUjcA7H09rL=Z&H-#}em{{ZVAt4wfKD3&LRv#$6FhT?h;x0%b8)yfWSs z$}7Q{YgGj`@>=T-CjS3Lp#EnM{{NzYevq^fvQCLQe^C25)r!(4d09CGEI|+mCKV8DZdCX&T8*tjtL&&7>9OGxN)& zwdF|-$uT+?&QX&*QfnEh(RG6aR4S=0<W)H` ztST|xy@3IUr{oA{KDx+)V6|724SG*!APnH)SFb{AS721j@p?Z@&bqkV4e0VPGC0Si zE6^g}2#znFz7#?KC7QVyrCo(8-HR;^0S;T#JTPielwe_m)F0AGpIGKHG#~^y zK1e3)n@a%lfHe4_APArf#;AZYu>z96c#%I^;0G@ag5whhb7Aq)|8_@$`6mzu`wLjk zwCnNaK$I;Iqu+?l+?|lQ69-cX1BgE>Q3ii-0U=b&fF==DpPPBy1hioJ6zE{ zf&9K$dru$&b?CZKeH(~yM)iFuWC09MrBV=lo+vF(6mrmco~cxD;D2s3KGPZ=TO3bS zMwkf9OF(MFw83;=YkZ{BKQ=g~Ee2?ZnYO|#*fH%&o=#4E2{?$f`DpO#f~=RtS-+QL zKd&x>5K_}z;r^V zJEAolRh###&Bt}>LrU|6)HEWJjfj*ZZ22J93=mN`2lmlrJtSc#8CG&>CxPAuw*Wk= z5u4P4XEq?Ibp&n=kyTFOR3T{PNJdE<8>x6 zYH`59Aj1SCV;iL?gxWzBUT_(ob)-S%)}Q}BN9PsQ^tyKYyYrp1_g>51MFk7?uJjtx z8%YQW5C};K>AhD%=)DtK=vAo-3W_L*VAs`DL|t}7>~(#2=V6cW9~q1=yb#D+<}>GS zUMl!8UGxJ+z*kGZPv?BUT=;V`_s4kASKxL|6@uFT?H1I2fx{DQ|FGIa@~dJI>;}l_ zE5)D)eZ5rvX{`L+NZyB$tcCuRxsI%7F8%!+#Wf@MB#Tkthg5F#i(Bo_`1KfkvUux! zRohT0`y(=s;h_93^(ZFw5F&FgF5@7|z8{%>5cut=!b7krW6KUBD`47t6mZ;_^5Dqg zCibl4Vhhv)OL-t%V=zt+v^jQwM>33JsIvtWuejV z!^!j`rX3~Q_u}lkkr{_^K>x7q#hSK;sy+O{o*{xD52W}Psa(EL7n^ecSs#cy8G^n{ z#6uC-eR0C9R`%R3d7i18%QVavsNVtzy43!rL_1#&dx3hs9DJTmApg88gIs`dzR2*d zIAfvC^1jCL-ktWY-1y$5n+F6?j$$rd^U{zos}cOpW?m*SPobk5{FueZqssB(p5&Sl zeo9S1^n>=MSGUfc6(oVH8J3sm)#2nd|D`>wM39yRfaVjuHk`052)`;6Y8)AmZe9X| zfH3L`6mv60vnR^z$EsGkYNRg3ek$r;K4JgQ5C0#3+|mFns2?lwytQQUE=q+UyHQqK z7L#K;%GVwgSq>)}d=d(iN=gJ}g8ek=Ml^8^E^-Y4|1Sh#2_nve#@iNc3>8+$%Ilq- zbsBe*v#-(G>k_nO(X!KsCDsU=DcqXRE3dJ)*JKW9_r)ad77O;MW4Ew0C{=-^qD;}7 z9h>hU=44Tw*_?c!Njni~vV#c@PPRLLv?g_=kkgO}4e|naF{iRhUEg47bBk+FiOfSr zb9;K(shTl2-(^2eNnV3xuE0sW@mZA2e5^g2LLcrKZI!yfpD$b=#@~SCuSE#gqwHS6 zfcJFzpfn!9iVuxlji4;|gB_6gi+}Wz0KwJ>I1;2EMoHEq|LfrahGztDCX=^Cu+}43 zK!^f03Hrq#Tnz9)(9JfX+<=P!i*qNQ zeIro(iC52i#dclwBCvhOo@gsQeJDiyZ4BCs@5Py6qU}UR>63ykQ?M-9OTD0B`k1 zK;YM~Ei8Kvq8Q|$%@G;9kd8x(Tp+tQO11%M2Ke)a2p2KwW{P8`H0#d-+g~QtErW7e zDF-s!S&e==+csvkOxU30*M1RboI3Rd18fJzaiez1puS<2Tmmw)T7OEVCn;+ry4O z#S{0i7`;3eB#zt3^x6nwu0JmAASq=JI@^a_i(^ci`LhjzAQGmSA3o*`8bsI zb};MBN!!a--QTscKQrZ5rSv`~z1Vj#mdjg%NLU8cR)3)fLgfvlZfw?mRL&7h;Q?g! z5nSdmqGLZc4Q^hCv1v!)H-#zi!IvCIm-)b)msH}1gII1=IH?3)g9w#DktJb_ilE5S zfXGfu#^R&NY}2Nlv=($|^Sd-DZ7N5b$lNGUHzn$tBDt>c#Ii6}pGq2lL=rCH$$v0ue+m+wYI!eU z{+nrjm8+fuKWC9~t~7PNLN#Axoi8=LEwO$mR=uw_zpsR9NZUdwtpC<`F2h1~`UmKR zDKspUgHj}&&$hl!k-X3)&MNtTCUY*Zc>UzW`k?r_5LQ#9_Hsc>3zA=rihVxRJUi0d z5`>ES)i-iwQ1nIu%r1#bgNVz5qSm0POT%bu1Ia7GXu$u34zHy_kPD03L`m{aNZKBy zJ&>T;A6Y3cu4JdncF}OZhJ^p?IQrLsh+jfbzW^kk%Jq!Y9O2Ze%3Dk=)vRpweum~i zyx~}4Ce~EMFUTZm5}+t&6_UM)6uBZi@)rbQSvYG0R&kK42^2U&#g1Ts{&-w&thUzK zRHHjl%5TiXr#K?5#mb(#yurG(R+pkox{t-(m!R@7^Sq_;-YjK^AYWBiD(g;X7UZ!? zvROIB!m=V-h2fw`6C`$-8(S(ayPX$Glj{nS%BwU@bw+oyzO_EFsDZ|-AuGz5k`txX zorNRCBs*t4E^ax6wK5_tOxP@MDf15_LQb)HC&oilt;m4Os@ zSWHhid5AQ-#?p;;_cs}pN zC;b_p02Juzv9pEM(c&R@<$nPyfhd<6a@fVnXgrYxXpz|nabov>+`Y*9$Mr{HF#3PgXu~GN8!~7&w|986e@0^sU zMd{CL(x262J#%NgY|MVuR{XlH>{WN+>zoZkvhu!mMKn`kH7_Oc_Qx22gccaapE;W4|ZTWPm?bD^^Pm`UW$C^KnwSO6J|8%AA z)7Abj*LuEB4Su_N;>(RQUv8X!KGi!h-0#k8PoZk#cA!ZcLXiJCj$0DMS`x@!?gRWc z!=_Nd3P0oa@Ztz!C7D@`jWKLP>Aev416b!lto<-4%_q{ZJuGEEHtQhD1SKE`5XC-N zIEXrTMVR&?a`#|Cl#qL1wBA(F7EEi5@{hcnKg-hYr)ht;n{VjF<0|E_RDMCDx(r2K z4(oV|Z9Fw~(rlivF2-6fnXTg{?PaU#qTV=ZQ=Ze9&g)HQRoZhp-C2$9v`%+MXBgHQ z&#AQ|3dK3O0qP^i)Ed|npg|JW|I;E_Uy`^dk$;-6>gVuJ#PGV}1sz}$ic4;#CpJ)c zEp%=piB(5pyF!>QG8@jfB?x*!0109axq*>on3xI_*o0Uo*_<;R#)v5S43~L|9etV= z*B+BlM~ul2r8|!kzzUmr0M~?~-ZTlHG~3^w$^1T<{{!@&8|6O$;5J?SW4aJ5Kwqbe zzTE)Zf6YI)YX55us{48!2yb;?peBAAa>3<4rd{8rD?VK=`*U>=uxrs z4|D8 zW*vf#W+JToxjy6~UsC09jLV-?9z>`L#@B@qs{_%cM=+H~A}Rw(Wr0N3QDm79>4Yr@ zo(^MvmpP})p4DkgX)~pFX`LOK^j4Lrm9J_`RMay>HDq=bD*C^{5ONLxzyol3z65}T zKn09rPbgG%OI96+3L);V`$fx++Ps3Ddn2lkA^I@12?G93Y|K4j+>BQ8w?i}s3wSOd zK+_g^o=^l|VVE!0FSzt?3jq6ReOIBLFNL(1`E8}`U4?0(+VP>(v9DElYEh-@NL(w0|6;IVDnCcQ8ADrxpsYeg z{t5#xfAZ=uz+Hm)!(0_kSrtNB0*>gg=q0GA6?oEr0)^h(TuMnEHZ3Py4?(a>UV1Ur zAlOAEEeQQc1OJHCij+F)vIvDO#h4B}m}+5_<^f#STl%yf!D zvY$d<9Ui@&kg%0ZUyaBA-*D=3tYmL|CMh*FOqPz+N_R(bHZc|Z;tU8;F25v?nO#WB zC`qoXEgvc~m8O#9>f_0RUEHKyY;}-U7nqv7PsZLErz5IMHC@HRhP=drB3^ZVd~O-L zDhHiq4bo=C<+^iDbktsPFXE=FDin3Kn(BH(i<@6r9maMMxOFk+I;FOw?nHC$a2D1c zx1K=xl@PxUtqEWh;2kwF2?I4JT2u|Xzms~G_X5%Knw(D0Gs9NKmce&!<2kg zNaRvqI>4e=hd}#t6_N!0K*R3PHV@C9agGEf9P!#ExhK=nyjAC|NgOrhb7MGhfk zhk@+?|0)7F^GRUoJQyiFNQJVP1mOQ~4vt?R&e|LryF8G+7Aj}~A`~jx5Co+#f{nrQ zZ9tzuioGICd(ieH*j!&y)&Y!k6G9A(IFHceEfIi~=B$SL$WS97K>dl?$FaqM)LKkT zUwBkMjy}drn2cIX0Z)>mrpSz`$f#)wAVPSs+HAV{ctW5e)rF$Tj&&rjL6pMDy2P(r1mv>(x zdyvGL5yQTqc)&}#Crr90R>QsEflB>A3&~&2Lyh){R`tki0_NKjhi=vh?Eto?#kRj| zOPJMde8;y|C<1DMxi*s3K#6ZBGW(e^7sTufQvQWx<|r=~tcC+* z41BBDpP0H204bQ9qmd9RyOS<@+T#2;lKo{o|0e)^ZdAhh{{t}2Fan;g_zH*r8x_EO z{sAp8Q15%Y5wJgtkbf}$Uj_XiX2Br-6nva0em{~n*I<8MseP20a8ng?A%Wr!3~_Gp z7cM`-U3rxC3ykK0d>*Lt3`^S)>O8b~<}ZX##4%LHM`NxQ* zexxd2C`KgKBBES=I1syP5Q`f@nJ*T0>hh!58kh(i#8vtb+YOoUbf{80^ch{Yf=*{i zr#-LLl-sFIZ`C+E)Xp}6u`N;4z>w4@C@S%c5*)iMf?k597Kf9v;g^0aBF#J8vN=?= z;wXEmKkq-sATnn53eDahTIqv2g+NUa3D+6Xe~9=GRoo|b(F>>kWv=N>uK7)=@lCN~ zuE_Yh!m&^e=YP}NQtd*i`CWzeeWmej6=VTSb1tw0rF?+tu*MSGLXM016@twd5?BCamtxe8ci1(dP^VtO&B zuFlxj{Hyy>Cii*7w1I=-)8wtF-ti;=iNx#K%?!+bDN#xvNvB%@s7vqwy z^Z55T+&_~fu=qa|3Sq(jTP%H)EPf!D&d9Yh64^uGnE>-apnz`c#UQX$KEvZZfHhwz zpGlI=@)Bo6ntOWPj8^*)Z2yY^VdbpBIBU^8g2R8h?JZ`n*rCGA=jIchBs##-kfcl zKT|(H=vuhY0YcFGiy#4k1+?koMBAs!Cq9oi!2I{i<*qN6+CNSYe1<{5RPUE-y`QHC zzFZsndVS#Q?V*J`efOq%2ipfq#0A>J1k#4kD2QWh4ib5wAf1u4A_Q7vGDD&&$np7v zc*|Y_K$&dENtV5M(|(NeI2l4-hV9|`$I!N2hyqX{j*~6k2)j4Jv?n5UCr+}~pTCZ1 z+)Y(&ist||EwY7Mlv-?C_KWu{)Xz^B!GHN`Y(vrJe_7wz_o zPQw+OaonW1Y_VL@%O*@_Xo0_^GfWr^qiX2|sCrcChfTIogKkslJ`;Sgd*h5X6n@A5-AxEQPPX-GpNI#((bC{k#Q_>&Nwa zm;(H>=mn|()IaDyF!p^jnEkZQ@E}usO~LE~C#o-6vn3>PRWS44{!qUj|I4xDwE=3c z(6qxi_-W@KMHTrI%6%gXeNg~*$c1U|9!%b0WZ^*^WVnh$NM%9fS~&9uk=@~u?jU?^ zII#vQdc$#LN72Rb5BElZ5val+%yP7LQzksE3g_bDZ+CWCi%!@JyDSCWj=Zjv(v#Zs zc70l_Sl`4JyWl~-K;LJVCam87^1CAhf^k$P z<(KnvEXO#4EzBe@8rPE}+{2Lv%Cm*lW!jc<9r$+aO8+>upGI|5$l4ae+8!eblxX}^ zav!-d)SwD7@b`;kzG4R>J)aAUe^HsJu3XSi9Pg@<)YfU++KVpKS=u`C&(>N`R+u_V zWYyK?vX->=+Jqv3C(gJXXWc|j+=VI>n;T2It0WDv+o+gz1lmSQ!g_K(Evtge9d7OJ zN*j>wCMT`~h7ZoX6{YjSsCJP>Td8rLcu0-KY{Ef77-%tAm2DGR4K50Fj!h#=1J zHllf3kYaB##NQG&qLV#PU?oiiVBnh2=v85KxDIS1CwN9AZN(>T0tygHyc5UYgA;9s z-gy*z3p!yl5?-O2DsCMDmh|Ke;fie$>K!PaH(s_4quY(su7@glm`6mw@}74D0RUSt z1@YDg0tHCC6%Y3g!Kx6L3*?88vwZR8p;65dtWG3-kd|->1b-TJoDwrZiM<}hxJF}7 zQDP@4%$roG*5&<{m~=Oe152~Mi>CSV#-8G6LxgUeJ(LZ{vKTzNRBLli9Yh{4rC@~L3&k2b#Y{SUC(8hge?QX1L z541XBp*;ku8Gt+qZjii1S2@W6i7+^tdWS$MvuI@?e=SPCKU%dVv|p*ZSMUDQE|^I* z-7!k8Y2;U68CS`#IgPgqZCC8-TMp~A!!%`5PB~IXEy{@${bieN(r&n5ghxGLGmYxC zV>&HN3eH0dyxBNnaKaT})MU7zvz*nchBcP6GT9le=8VoXDwjbW%qgv6K&}`RtA+$Z zkb_Qe6(`w(Zoc>=TX-T~+{NLv$1B?6L{0QKH#G?o!BrG^SS}RP6%tvCAa%sC`>2%j zeBNYI)HNynnu0whh&~rfK1CxoL=cOE3B`xVc?ZZfNamz0{$8H`)#>z)7mL13!pXn* zJ5<2j1Q#e+eOy0pR{XqG|K%oh{#O6IRrSy9`hTF__ZBdpK@kERXbm*H!yp*ILGLaW z%=MUOOGVR0UN1em)F)iKDNwiv8TB8(sDB@$FY$rwyn1s`+F^7_D5=N?RqBH&2|^Y7 zAoCAna`z$f4G>nNuYxaZ8J{P*UNJIJPG# z$&;D1jiWroc2F~2&Qm3ltSo|7c_5zUO_lm7B>VVWFLvTqR>IcU7}&)GY+m5)^EX2H)hONKL0&dZv4-EXKfE2Z)bQ z!`29$Cq@p$cn@6MMl^L3)Fp?}*PtjH(DaQM@peoFIy&t*R=Eu#!_XEH&RH2Q^1=fq zE^#9Y$k++XVSPrh)WMsJ(}dV@mo zP%e8S1o21t09X)m`F*+M5ug8nFMwU(zCeASFL)r}0RIOH!e*7pk2Q)}gW_+a?6K4M zx83-6ruA=!_6bygW!s+S+W#(0eO8|Sv@GjsNyc+`{;QUf#Ryni$y|HctDe#qJ!LPu zDqo+hdEH&Gc>W)#1Ssem7zdm#ojV2Ypu#r;<#0`yAF6yeQukrF1$Kdt7aHIJ{bz9y ze5w8Oc<0A)7zcEHzS8|=`sC-y-cL79f0^$7dUf#IwNqbijC{K}`04Jcr`J!8pN7Ag zGMz6y$}^a|I)Je>6s&Hn^&zJHxI!c~CooF29S^<0YOfIO&QS9qta&#YCNjVl%iI?R zHE?->#Jv3gfeFppk4)Pgp6-q0tq$g|L`pUg;R<<9s{OsT>Q77ZeW&)86$*~UqXzw? zNpd6Aax+tLCB=L-Gv$iabQPBURLfHC6s{`;rx~M*i?IuRvH1Ho+ncfU#dBCsu9HMU{rY^uFMZtv_B&MAPPnR zB|v1_hblOPD>+7hX>V;P!HuN3LrBdidNVGz1wnEnsBQ$UI)Vn_-#kBJ$uVrjF{I0n zTpb+Qtjt+_6xMcgQAbMViBwqj3;MGwP8F2&Wfk>i=65@bdo9_WT4$Tg3J}y*mcY$o zyQy3kI;uQ`oa>9p-5YG#87^BN0M&u> zzpauNIjOJn^z-GZF#mn)O8o#*PmN{4rF&ato2#(Cg+|~?J-C40RvQ*vs&`f94|RZm z(|&Mi-j*un^Tcx*s;6ejBNgaB!rwTG+m_0ggQp)~JooY9z;6Yb)E(sZ7;7bxRnJsr z`z5M((|MaoEYHa3^*9`)eV6%Dmju(6gaaZKMwyYz;Iso0O$6arf9moG!qNcddUW!( zNXZ_WWN&oxHjL~b#R4Ei@PbB}+}zAYMRA)b+s(G-;xyWWOwFMrLjd0tphyWf@VC)9 zUNrW0I%ij`-~cOj6OFwUDjnq+k=fNMSA)8=h^m)vBgR5a2WDk02c|} zd7QE`xvNUrl<4$dh2u@Ri=(gb!$`ZklWs0t!{wo`L_JtGI~B|4Ux1Ahy4XA z;7QH)is2JO9VO?|aVg~0WME%NcG9!L47pgwxf8v;89lPy#KaZh%57-nCX~b@jJYl% zdUXV8SulM)lDaIMwjLY31`T3<1u`;oKi04dBi~KnL7&bVKZQ4zw*k#vAI{r|1oj}u zBOIK!wB;eR)$rYjgcW{VU^VPQ33j05-dMp_jA%QCm~Rf`H9v-tu6PM=*O$sM!-J z1k}RA#PUP<>HtbVDf%=a7CIj|*J&{~m~l5_x!2Q&Fo#wV%9rz!Sl8Roy! z41ed_pJr!1%dXPG2Pxsrn%)i9d>Cndf3D%(x%yAzwQ%zP zJO B!WA?Om=*^eEQpT$JeQW&#?YqJN5Z`@3$MLzTY_e{pRr38+{*d4?MrwGkvDJ z$xvePWAHYGFxG@qmO?*xfYBS79Sp-hk_3KDYl4)U1EHYPd;tDD0O%B~ULWDy7m>a{ zyx51FwI{;3H8k%SO20KMZ99VdOCYq0OV=VSd$5<3s^2SJf2IiUWjJryHRE#qutIUk zsJWS9x{_wSV%1MMY*S9_REl;Y#WrcNO;`<6PUEB%#DDDty<*g+zhpO$>opfs4C7Yg zSc(G%!RKtLqc#`>fFcA}1I?ILH)7BaDfFjdE}%D^(HI7mntq97NFwi(n@FY8E>cCv(BY)L0i28_5iskWZRag$>jBH7K%n9f+vX%=-NIeJpcxTc7{ zsbWqD$Ri1~Q)FB_npW=*$7W(<2zi{v{4-7Xv?XPJEbH?XU^`TQzf=GHPU8<){BJ<# zFIYVn3%}q-@cnk}=UY$&T>tZy`=9IX#hBQ&;;)yBzFjW)GM@8cwB${XeWpx%!qY z)B;bl+TNB@+-@&CVbAHzF7L^$=r643&o1rFs_J#*^*FM-Q}ens_AaTTEm_^l5!J`Y z7Sj+Rlw2QVmUo!V8!q5MNh<>5{^QU3*I{Uf&)A7_9mftLiI*8nK*0TxES%9vpIW6a zGmUda_Ia1?eRb;FYV*4~{d}zzN`B|d?ek^&_wLm9<+}NDba)?}$_$ zjOT49ke38QMgUm%iCe;yhZ*J&ffW;LIu>O<#*}TR3b#=No2a6Fk<$Hfnj`EaF9ydW zj<+o?c`r}pqc8&J95T!$Jvm2;I6|s{557j#!#VitoK?Pn$Pt>C#^zD)!7e3%6!dE%3I-~}5{ zjBP}!2a4u}=j~cf z2VCHMR^oVBoc4D~*7FMIOOSwSa$dCLy=cyR(O3pvpjVxRuR2R!!8rJ2)$6X3`JR%w zMN^P#t~2k=Y4==z#p_d5bHjD>=d0fW9q1ewK^s5|dUv+=(}m_wV|B3pLkjrQWXq?i zlV5=dak=d)#KErheY-mF?fT&Ns{=o;4}8A`vw-1mcg}vjb8ha=$t!1j>n-k-kT}Nr zP}-6pwg*w;9g%q)pW_#)^~Um7hiJW^AS^_)3!z#UDBgfjdZX-M``?YoJ%&!%4l|?B zv_oNvO%b*oXx6`j5|$%GYr~xf@mF=0KP!vwSw;6V9Jg({OLG1>xpcy!xRYs`O4ClI zTCUhNlbNAXb5v}gDMmwZd!s35M4N+qGX_fAjMAEA?_4E0CeC2>hdQz;-6d4;l8*F{Jh%$g8$Fkp!S0t zRQnTVzKd@*{=C!l{dx_c-o9SW0m$>WOL-qJ7A_2>y=c??QE0y;VYCs*X*-eJl_AuB zA7v~H=B@HqtP6AOLKYrD*8~&mg0VFSyeo)M8i1=hg029EPawY3A6Ie&U2+&xeuUr- zCcBZ;Rs^vV%VD(}bd)=SR2@PE|BovO3z(*|P-5{hT)98CE)?4m7F92?!P8{O zZr5eBTT0;Y-|H;t$*AhicXyY#dUI=fGmCq2iu*E)x@`p~bj}V?ijw8cY*9Te5z0V| z1Aw}Kv~3TSc?KkJ3XfY7827KElJ&vayHM4~Fhl>PKwpoI|6Ra&sFyx-8eV4EfdBa# zI$tWCZ=mYE+zQQ)3$@0D8tZ%okUyRCi(T-hca=ss^DoqyKh&E)Rck&JTi+H5Ul%&& zG8E5kg2yu9W0CTqRQ`3~C(5={ zpa>gI-OyCdTn=0^AkrhrEBxtj_+J8G2S57KMgL*KdYl-X|Nd-a03U7**#Ggv{u+w? zH6V5aR(61{^GQ_hqKdYYl-`lj9nrGgF&r;4cN-1j1JDJZ?8#Ce;Mx2QR&;6>EjOEy zpU*DHW15N?=5!2Oafks-8^)?o^#6nt|Ba`wA{Ybp)yfKY*;om$FmXc^aTSW?5y{<| z2;k79U5UD22!F*Ufd$A@!1az7`Y2K(v$LY|)2VsdK%FksXhqxg2%VFdUyx8xoS5s@ zHrJ}Us1r4}S$V2}oEE(f7xF6_^$SVm8Padj-f3;S zFnqH`(Z<_Ci`$6FLOC5Ff)YaP*y*trNr8ABO1d#z0-&B%L7@55R)>KJDrN(Mwjv^O z9X4uJ1b+)MJ1{EaI9a*{0c?NXx(KdEn9M6YaU;xmp(zZTxC$xQf{B4_g%>V%BRXLn z4nkycD+2*b%i9v6+Cz}-!0C2CH8~;%O2O8K@ivCB)}#4e5zO_N#LbJmxHP{=xF#5n zMru8RA%kq&gU<88R|jI-gHau!#AY9~aYqDX7UGxt0-get3dpWPBMI0Z@^*&-i@1-< zzCdMMrbbVanO8{EYmuy*(b2y}#r)1=-{P}xu?5p)#sqByF=W-ti z#4`fvJ#q2_sq6t?xOlKn=HE|De#qs|3Kb9mo`rY#Ne_g=S*c`JE|`^yW|G)5Lh(a^ z_>n*|D+M}`)ihWUAx@o9eA z^Fqhd(u^0Sxi6|xUR3A2Y{+?5pYv*Q{V#wnuvg8+b1g-4Cn{cdmAyGpxVYw@1b0xy zo4#sD1kCrA%%84!d%6+^0ShA)3ukK(~9H-`nM5}g@B)iClJp`EYDE1On+i;3)_>}#T5C}>;PR;5c2i@2*Tg@m(Jh=x{d6h!>*eyFaN55OPyG)#@ZSRQzxMyq&V27e9RT=0 z-T&Ni|F~KCWvce;WHu1~-=9x?H{^KJZGBp=xSPTs62!OyFb0UMF7uE2mv8*C5Y_4+ z>t0ZJu+_(K5T|m76I}l2>Hu8$9=DC^C0^%T|gP~<2f@l4F8W!-ExsG@F#y3^ww>A2A zF6j9J7PM`?HWdQDVDd~_Q>)xZTIW{>0_QgOVK(>4F4?AfqmAe6kp~QG7PgxrQ2U^jNDA69W_%Ky@m@e8&7461wx8X!P zBYB=A)&>IM-=V~Rp(y_s$K96TBsi)pO|4a@OA|^3-YnAE$jFVzq=S6^4t5f_Nh3^> z!%4{pxPm7i%Ql1<%pndznPpjmEAz zRaR>J^7X*kyRkQrK&-`KW|RSL3bogQHz{OV9>j zoR-Fvr}-(ge&{pxbps`5_4_EC<)AtSb0IFVB!spsguF70u?{kHn8;;FSfbe;$O3;F z6h_yXDN@f+-CneHJ5s$dDDNOC z{}8@0l+=Sj^%eY6uZ>N_&G4E1HFzUU_ioMB>zs8KeM2Z=Xj2WWxrlVPR;&~6bNe|eZ`^oYL$$|$W z$wRI3Aq0MtrHlU0B=M|34k0gyeLawCAHw-xAbu#7JyM7tC{*A>d#Hjs7$AbmA4xiurH59v1v(S#Sj~Kg-K}nPYoVkoF=!<5{`$MSI=kwaa7Y(Ja8na&37QJdNec4#}sv&Q#qXOmvuOS-HQ8?FA^ct=M{Z;S!O5gOC z%ny~#ohn&4Q}cGn_5O4vJnx2T-i_3MIA8l|wBz%|`Y)sHA1~H_zTEufa?6*AuCG&l zU$4O+;MBM2lV5L~`F{QE_iO!MZk+vgYxw(Zcpd!u+nKqWJ(v4WR`cx1hj4K#eFR$~ zbl$-k#|ZkZKxYk9Y!2bC3z2(3`-p9=P%znmE5%RoCtM^K!|s1{Q7e)l}nD3dsJ3t4`Ck%pAA~jMq2jY_?H{Z7juj-eMTbFkMPX9W!c2&DwFZYSdyKGwC5IcEM;KHdrrMQ{d|{ zz5c8%bwp<$(U^u+hV$l>5sl%TMmwO<^~-gAQXQ=S{c_EqOwyxPcZzhKV)#Pet+%)E z$AV;(9V>}r&2`ybXxIIs6Y*8LvhBEz~og3n5}2;LzVav zs)I;%A%x1~_^NPPH9EE;m|Po5tPCVn1(3_3^T-!deGIHVw3cvkM;Nh#LhmKhPm;)e z*w_>Q?PabHBUbxUDuVDeq4df?V&ze6LnyHo#cB$nHmEY-sTUgE5=WyVz0(LIfZU$U z>fZdi-olEWqRQ@q>Vf?7-rSO&%*qZ^#tDtBOP6|5XKIt^n&P;%Xl6kWKK*E@X?vJz zy&vb_J_$>F)EffRJOitapiTv&E|M9yIqcsB$&XaLr#AJgEXAu_;6GSF0-CF}%-1{K z*QdOzSG}p$FI4FkYMhJZFV(ttb>?@KruU7`cXf)7Wjg4EpD)nOWdJ+E^van0Os{_= zH9kwVyqi4tzw@+=PMBj!QP>kgv zRG{4Kq(X6g+*$%6?1$?D9_bs06qtWy1PdCdAK{4z|e7m>XsA!&c2 zDp;cSQ%ij$;)4RoAwlvEk#KKNVD2kr45zYk*18O!a8YrldZim zW58`}tC2U?%4_Q!b&Vy%b(T&$R@$7?>^1;;+9la1i`kIK-o$k5A&=(O+%2*HcKO!n zjFZ-IVFg5k17$*QT&G4mcItW=UBliS$@j#vHWK5u66kC2R1Yj|3y!`elCp^yvy}w@ z$D$y*Wj|518!PZYE4D(|jVSWM@-||4UXk4GB>pxcXlU_XL?|VX-%3v0M&fM8b9WHL zJK+FH((EOxz(4{u)1DZZa6w#-y$&`AV!{SYBE*Ef@Twi?f-tuJAlbGTW7>jOu1BTq zCqjcmXE>!76Wx!cccVzv0YsqBaXpY6D3M%-j9n3;^FrtPk#i4XT_My{QQT3MV3I<+ z9-VkOnsqZW<_3j+lf?xV^kgjiA|;_49X&*fpJv3~Ns@!SbDzzbNf6G0jg!NJll((a z{spQ(VFWCYKM;r>Ckbbgl`|sgtU@&_6+e=S;i&%zh(ID4DE}}Tcp&6I67gqc;)fc= zBc{A^nX^QLlEF)amF)O z-is3Zi^`lA?%bEP*{|x;Ujyo}B_AZ9mksGJz#7z6@TN2OO;5qAGv)KW`SZQyFan zt@q2K1O)5BzWy=v@@Cg$caJO9EcOZqrW1d2pkp6= zy2H6pxVAC?YGKt|Ve$9lLz(zisDBE{JPPd_Xw{~$%!7oK0~jX&ruO0~OC#7TFksE9 zLq^>z&bU{e`#{aUV~~O7KdMrUX{1-JmaD0jX}fmHuAXo>uck^aXFDbxx(SC4UdL?q z3A^Q-Q9Wj|jOavTcJn2N<+4!&qk)Si1Ej+)nf1eP&Nt{UnvIvVp!plXAaqu5J!dqI z=uN{W(^;+Vtl9wY49e953d1QF2Z+^Y|MzbF|H3YCyZ### z{!Zt8p2%A`m$z`*{G!A7*d@J}$-O9NcMwQfyHJv~fxuKrULFWg1yFuq&I?k%+aC+( z|7u@CO(>-*gx(lNsz*|)gQKbf$u+*1s^i!?Uwj*i(nX}7BvN}>oRd+^UIL|^5Zg+K zX$mE{kkQb|RUUw^0^9#lT$Mi(W(4h_l%_C3jnE2DEmvDF%Wx}f?dmMhd3w`}y0S}Q z3UIQ})l*R2S6F*8uli(O@kvKXw=uoXp3!Zzbm<*%hpK0A%R@;8A<>4tILS&s&Qd@A zl4I(v5ovqFT?fNE0&#HuzZK8?T_SvBRy|2ozsv&WvvLvpP?h@DZTnD{2KBygtJQCz zb(Rmcjt_3|h$`mG^>YyZ1^-XF=7mZ43_e^^`3sHqc(T%5Le)Yxv8i@RVfz)3E@c)K*`_b4np)nhRIM781 z2!ibhV09+#0MsN&u!$hsNl_hQO14u{j>nk~$Lja6p_-7q0TKC2FwYC>7SyKE($gXxPI9I`P@xTzrc-lDcxCnK=9a9Jp#0bB>*~#Y z<+A(+TfN(O(t%g!^Km2?wGLFq=Q;=)$xbG3 z3o#c(7#lp-XQ-EY6XG^R&{s#$;XkqhYQKPz6v6buF+E5?b%4FH63eh0rmFVR1YQ^g z2>zRin*C%D`Gq_1tj$>74gz~SCUz^H;en0cN&*K_{1#}>Aqcmk1>3MnZ>(l7N_QxV z~`a@*P0fKrL3Ct(XBlNN$W(z9j1U9Z0 z%k083;Zva9O5nqN!Gi!7v6$r{nyr8uCKntc)gkD^F@n(q!4+E6O`h;-411c!yhfy7 zr^H=nB#cJI4ie~R>4I@);$3#aZvydOLdE@L$pbET@s-DeVDAH^`B5^2zmfs_e@~>E zmC0u0N_c&&5Ij`LAq)0U1QV#_S>B>j^jInYHPO6jZytZu5O7WHF2K>pQF zY{n-}%~OZ*Sq5wY=BL@#$1noONqJUe{kzomye#Wkf#XG)<7s*JiyS+&0KaHVe^Ht7 zs>b=EzVKyZ&a1Y$THgZ=L)8`-ShfF8ugo@Y~%BAO9G5cB^Z=y+4m8;(H=k%a15_gxkD>Im>-HYZ06k z0qV^G{G~p^4S|-uDEpo;=RSnR6QT2j3LZ?(VPwV;l4f&6gQZRAGKR9ndDb&+6xx@7;FI+^F)gAoFxtJ5$9nFY|&q`8qVkeE2KN4(Vf#N zhP2i(oo-mE9x~d8)F!Zl!r>oU;CsZnL7BW;q6HPGi?8gID_{`No}_Bw@;j5D_Dk5# z=Jh4S4T0gG7d0+nObH{e%3`K?#A#8~BpY`=hSX1|3{%N>70f4Y7hw-v6km0@A z@bz}>k6YD0;Pr0J_dAvU+*uTYe%^NdyxsE8;y9q%3V8qb7qS=5+UELf zFB{bN3q?1KtPws9PU)#zLxiit`KtoO8xiK6==?+InvlpQ1ib+k{2)>_$oqkW`fyrP z7|9(@sShC61`=ula4_&{$IyF-^i!0$ej?*^3~f+gJ{3tlg(JfVxCue5L&sJF*TRQb zc8E{`jKnZfErQV;PHzgQ6;nj;ltoJ`Sqit<+@?zFG^Kai3cFH@y3$H}GD-)E>U#@Z z17)@Sh2=e&WxdX#(^*A*8969OvpM8hCL*(Nm)yL19oGN14fcg<^L)Kw z0YGroQ2uCr-<0*yt$PPwSE}Fqe~!*Gs_Ar%_Mh%OGj>4*727yE>gbH4(jn9kNFfO+ zKoU|(0_nXc5PGjFy^DyV0s?|4MT)(50jYNEqI2%2`*7C!udKkZm>HLO%YOF$?Lxz% z|0hlV+RmMY5+x}YK96t8Qr}-|eR{697RyTgE7t0Yx}lLi?C&Z3I|#GX8{-%dy26_T z_7z7jvJ+5%yh&?4=`KhJG;ucvL_?#o1611w(KaCB{=}+0qNV$zwfo5OU0CTJqU;Y+ zG}PK|fL25#-vtq~4OXgf02D;84x%|>LH1GnMc4aDl7f|r0}RQ2YTTa$_HSrt$&B6@ zfLr2Agi@8YhzKZ5TocUSMO3+R8JojN>yXe35bc7AatRk4WT_C`BywUduP7l{%iKVY zaKe%|;Tbz3#D58dd)b^_)cE}Z$zJe$s>SeSA3CkIPttph6~eQz*#=ONAJnQ!r&q zC~-|N#RUc0{!t{sv@aBNU@@p+JA>HU!VLSum>ZEW8m2?l*IFOera;<;5GWRmc0>Vg z0#FaMElB>(V1Rtec7Q|E#~zsk=ie zFyt0G{}PRPjTCv4MY~R+T_Z*flVbXDjBX;MgAmil;$CI5AArx3$$JFWeK!9olm9$c z2%7&GS1=(IOvK5b3Z+lQvCn|^FA+_~3jyOZ0pnn)d|V@bt`LobHB<@|Q0bT?7JNQq z@qmMnJeMfO6ykB6bkeAOp_NbS6)()XX_Is+!7!C>o=P^%W?H6lZIkdG%%3@yshq^g zeDk6fRG2)wI0eXD}u0?@-q2CpHlE`>ok@+Ay>4}K0C~7(l8>g^h73{Z?Z?>=y?8WwUJ9Y#cCZ;k17-A)(g@0+G7UYUSr`l49C6L(+M84;e9dpjKF^Ij6OpS7kz_1hPi4 z`Gi>3BosHtNt#8X6S2}}p5Rm*|GXfkKb|qDq>spBK>r_+&_=oVAtv@>B(XP|Ji;YE zO6JVg={|I3e;LgCeg!%oE8*Dx^L7=C02c1l{I~_chteN+p$NWu@%1h!|K?1`-jj(`Qc zI+zIEc1JyMCGNNy1g-{LK!}J6KYW>Yc!@u;Iv}DML+rpscSkY0BfA2pGVO zo?PIuFL#qU9L)GDpv(<@0)_1(Mc!s}p9o`~8=(J7{xVhnCJ(CKq4U=~Ut|1SX82r{ z{HfgbsXX<4wc%rh^<9nWOQr22H2>CEKUCX3)tf)Un7G>V{;+C3Px>lT|IQ|w)u|@q zIL{!4nV0#trS!?Ej$*(CxU+H`>WpypO8$D<95+S|L_bxCe=a64hZ7*akOFjy!e`&n6flthAlA7?5nhRXo~oSmHLKS z`^h@<=_*xOnWD17&{U$RJ}NnuOV3S@NU65h)S7GR%_nk0r8*CK4kf8tSeA*D>%A#Q zMCO)bS1Kg+)D3uw1BJd7(UNEy9(q*EOr~!QCOV@)`HxtOA*>1{t_#LG1QS*UlAI8d zov2c9L+uWe?Eo5sj|9vi+i}VrP!oU5gLJzVji9=1A-Q`( zs}Q)hFe3Q*FH@;q$gnd(==}YmFd&Or<_2bI`bxh=*TJEPoV_Rryq_cs`WXD{5v1D; z){XFp8yLy}mU$tJ+JUDGF!|Tmv5#27r!?jh7Vi;*F~%1?<4B(@mOR2-Nii;#ybu8P zNAX<1doJWY*67EDyk{a%d&Cob=D1oh&gYEt1YT4bY4oDa`rT`*@XiOv;S4f`8 zMU#5nBnUwU#iY?VouHpKOXqCbnH2rYwEuO!q#34D^uYg_&PtogPngQI%@o>S=Go@* zlV{6P=BiVtD|2Tn^Jl8;vsKA2tMX>*(&s9n{yXQ@vCO%;qL(MKU!OYit|9OB@kK@G zZA;O+GsW+_3g)|xeC#cs?=JapzWifvpZZ<>aN@ zbC_-RPOHE10>?kGRY?b~Ut! z`gieSpI4_p$V_;k;M`GihE1XYrFqz_97(cXNj8rpTCb+-ucfO;6SX7Y|1leSpc>K! z16=)Oo2K8a8MGQM=oNhy(?zox=+KwVszJT7&jh-VaoDUGfLxeK(`#5{$Mu2)q&N3z zR2K{h7a$9uv7XZyS{15uO2ZkoevuThXbRP|DRrG{MQgmKNo+VF*PWEBk1Nzoym;6P zn#Jm~&^sR&-zkW>#ODl38N*wC= zuh8uaW`4l?+^+|d&yQP`3$P2^tNEYWQ}N%sr9bY~K`A7B`QJNLKcU`hr1wd%0~^-UA2mq%kzgwh*%LsJqCp}zPL)i$O;d1 zg%`F83Vi+XHSh*OsP-XMBBM@(5YG^3=g^Q)rgsuatr3iNm;%G$A5E{3ZdcfpZ1tNoPTay(8}5hcj;!zAoON*ukI&_TS?Q@X)7 z=?}zFPwZ*GkPCR~wdm*vV$Os~JCme%m9Bo3t9yOK_O8-6UuFDIsryiF{#cbT4@2Gx z4-__Ck>vksvXLUEzaS;Tyi(9jq^u4gLW9Bs=-zSApjfE&~3HjefAU zlbylg85{}a*V}@We?`gvByn7P+3S%IO_J{l6Ys>+oC3(JeIp$GqFjQh4uPb#L4;os zk&c)cz(l)q0mYe%HzkLd#JeJ3<&WEq=k6qOwuBRx`Gv0ZMX!NVP#6TzSliK=F=jhb z&HJ5%TZhK12tcnwg|EXicSg&76zMS;xl#6%hy)`-OK}Q=EhA<-QMijPbdx|9SmMf4 zdPwAd3Aj6AB!A0gu2K^*F%zm@xW&ogxn_i3?WxFTWz|?t)aP{7nom?n%gSY?mFk94 zMNO6YT(z#HfSF%oYB-*Byun^yN=z61=2t|tRLA8fAK>w}pfgD9!J#W%C$3u-o6e}f zWUgm09^Jp!SJcRJ!Qhs9g)g=wcw?9PlGX-bRt1Nz@S!^fO1AqS4JFz3VI*LV-5Mx$ z_7QCI(eDXixgcWK1~420p~*LP8!CDQY_GoLH6g(E=dXi?*3?nr*S$vVLDYgonf0v0XfJrodt>z%!19chm&WE6J`#l&y}UkRRa+y zbGqCV5a&4?XptE|h-kul>?j^>Lv3Q(x604rrkH>&P*1{(ONc@No0@Yi$eH&V9ey@$Fh0 zxPX4#>s`3p_x=9m?{_aR+#g!Fe{tdQg-;LL@AY=qN|J>;fyn32S?diU4$4Xo=1SMN zb>5=2p1Lhwmfb<-9SG^#0M!ORxCKaeAaz@OnXCQ7mjww{2U>m$x(vgVn%w)@_WP=s zYkJ`ogRD;{yJAsaH%o>S6Gl^%qjv3ZivFryd)cZRN>UHl%$M!@3kil{yJge@nO{r4 zNp;xI1RmKIn2UT(t+P#s^>R6JFzk zf%Uw?pIn8EtVczj#*tdctX4vFdl>0#1pO>AvNeL#f+ZbClBxp<5QnS^z*l*Zs{X;& zc;XuZiS?D((BDRP1c;2w34&ArQKx> z=d0?wODlTH$_7hIdWuRfq^GtfWSmkNPAHXiELm|_lzlHM-pLz^$(XCWMe98ixB4G( z4LXNF4Ur=6Gigs`>{+8~Hd*yDP5vg^^sX@BL%HEYRl?`G^pEA%`6~PSO56LY#P>&y z^A+a#YRiWT+vi%#r#jQ8`h-tade|f06v^LZYu~4c-X`#8^wJryfJ$jkPo8*qq~k1& zdyHpmW*SU82uTQra1(;M3hAOm@oGtE%SyY9rPdCIs}x0 zk(c>V*LjHlrr6M`_&sEBxkRr;u(o1iLD|?8!rK}a4fTlNfrRbD(LcfgMS#k%)hN+U zQhJysFDf$=YtF!=h&P8bw_?=?xQYY7ZKg-94g%>3?}EWP0)P~BZ~v5VeHz{--5HHv z9vHeZIKlygb4Ex15v72>nDB&Dyv-6INWvsa{t-~u;EB$mynQs`Znnx*Bm0Y^Iv^1J zB@yfwN)9O0z6qlJj1*>ZzOW<}n`I3EYP6<^bF@r(^jJnyjjp0pTvDkhJ|ZkD(U#Yz zpRdw46~z`+*_w_Qv^A%nu8l2AMZ_Faq}B1w>H8^>4iTaq-j|Q(T)%v$McM!nhM0|E zWmxL#C)aMZ4w_sev5x-erQSGbNpSEdZ^U9&0RP#Y> zEse(CpdQo@S{=F2Ne3wa7r)50a9x5;Hk9K6wE_W5*jQbHrCWlPf1qrxc-c-AYmI-* zIvZx%`<_F(#LdL$RYuJ1&<#mrAD8$_ayPQYU|5 zP>d~Jdv#L@3MjvuPBl&?nWs~=v)O4g$>!PgBsly}<=AKP6XtSFvjz6qTXLDed*CqE`*sa0_^U8dm<|59eSC zQ2M^>$b47nhpw_uJr$pNiWe^ezycZq9CXW9cyqb=%TUYLt1S=*0|{th^z7HGonNn? zgCM}-bLZm1-AfDiU=}>E@Mz%s|Ug;IR+)d!@#a-#9 zbMY|l@Hg-BldSQPZ19%-5n$L8qTS{n`Kw37k^q5&Z`vNr2oNx8@*by{?@JgrSu~ui8A>!P24w>{qtzf=gS%Ix{_WVGdxcd-qJEIamXiv!-`ySz)dpk z!&r8QrtL=;22jg`h>b|XF(kRdKcegarUXH(@*`Bk>K#n14h*jeimXM^>cQ}dq&DN| zXNbge(ad&IbQ>w6g+Ob;k&cCsj-#mc!ITEkRaSdOAi}M3R*AOjRP=F?~eei&7WH0lITIvc#(og|&*cH{}6LJAVzRQVvCgDtK ze?=o~R?UGkk&UC7M5XZwma`IL(tdinXO!%B9Ah;k zd_4&c{^->Rf}=Nal~1%wFnM(VWwl?Vg9prKIa`2E>_Y||1oYMJ3`!2w8{GlR7EE>y zh;$B#*@0*83T1B!fM_an6Dn#wa&hrr8$bpp%t{o+IZX2pGc8n_ADsqTN(#craSo@f z@zJ`+8xTzOpA7n%0Q^d*n*pW}Xh8v#&7m3ux0s(|^_EjNVo(mD( zywW5}R!VT9IY4({tfHDpYb<8+pdtx1HtD|5q(&ochX0xk;4Q^H!7?t0GYYRU$X8%+$#6z zm40kzk5pHDfd{6{J-8u&c_xbAAApCS>R_BIhOd?92_ z2;;|~1twlHDHTu1WsnFMmr5p-aWB-;NtgmF)Gu_(Nu%P0#qh#xdSO*fn^jXuU(bXCoF!xZ4?e8-WG zJ>{Pu4hA?NU;*`=`Z9R@%Sbb*K;K8tEGj=EZC|gS2mjCaTV3C8b}!uQTe#K#?f&5R zNBs+ruP!|4|MH~k#jT$1tcFZ4yuigb8c5xaKGBZeu(rpo@zibhPuLNtbwP+$dr8)M ziChAVyHTd!gXyaR$twfJ&H;r72zL$2XQe5Rt(u22))g6hP_69KYeo#B5tDi}K|5mC zU$H8Olg(EW6+_9UYe~v0cGYNtY$!=P0!cBjgIYyBI{k=64x@p~$$FRz^d@TijfRUR z^^jFN2t#3$`jSC;*`yvc>3R)|__z+8=Dg7cw}6Wv`{=Caq>>Ju_MA@DX|$eIYtP8k z%@RwyObQK>Eh2S`M0!f1IwO;xRcTt|rEm*qjpJSv#g57&Z|TW*wWM1L@=ZPEmOApL ziZCQ342fA+gp{X=^p|zk&t10fmvg`0DF1n{>gU6T|2}U1pVVIsJuff?UI5$A9k75_ zE!-~qai`?pd*ut)4}Tv$`enH2Lto14w)Ck|`QrrUh?I5?iz;)+X6z14+!2}xjqQN$ zcMB~IB2|Tu>Ji~penc?*mwI8U5ro>%s9HZ_!{SDOYX~793#J_pXPm^vw2~O-Nwl*x zMrTw^Cxvkm8_^I#stN#`P(-yKz9NwHKNcLdAta(6!#Iv*9!Evhpg6VIsKyWm1up3; zyxA^3x_u;@FEfh}eyu8CnGRIu?>pJ;6CmvaQ02yh5-6>3j#Mlj=IBPKNH1F=nb=0>1>Ae zO`iEJ6n>T2=IfI_S0;QePXvcQkpJf^tn(oIRKfY*^r6o9xgqHbs6$nzkG1ys!^xkH z>fdB*UZpBtnMKnY*_2W>7EgPBw&4APM*}9?NxZO;E->#UCLP2kxpLWCkofgMI0qm6 z8U%>{I0ttkG(4{J1u28L{1A1eA8&hDBvg}Z2&Jq>#Q#OfAep6qVrb66z=e+59Ln5D zq&oXW!qIdCGIm>dj8hP##sHN-T7xDng^NJA(Sx0d)g5N%=aG|i`-D*|Q3MB1wI|z# zjME-s2wc#l6+YpP7~IN$@Lv``3rY`K2`@7TmmvO=PTmwAz6^<5g~B@^<2(cjxD@?C zvGgEA?iQOEqD#ePO8=HKx6*(e1T3J$zyw2p)Q++#_KP^XV`PV0LrKn~W*rt+Rws2=T2CM0m7O>;&|cTu)!f&b(|lG} z)h4o)25`BnkjNE55DMUI@orDijGn)KDz;ShJ0sB(|9qhB`R!YcQPS`gh>#_2*ro2_ z%RF(8ZdmAwUExJs?#*56neUI3ZAHm`Ll}4Z#X5PYe@6lkKHkBdzs@5T7@q5Wf%ZUm zJQTeJiZwmiPCl_40RiD1zbQz(8Tx!tfDVpx@nZoy=#Oyj78H9UlD-M5;SrH5JV0a+ zIJp~k`C9j*lv{k|>%4RR3aNDq>Bdt5)G!>wzCt1mh7&u`5vPJe3;sk%o!xjVz3Iz5 znU3y>e~0Gm4=(Z!twVB75~4di!-4tV9~OBnl72su{g}=fqeqYPV#m2K@MS&b@E^x; zo-o+YnK92eLiqkO9``v9G=Hdfmp+xpKbL~xAF$8T#hkAgQUGydd=Bgd6C&}XkT(G_ zfq3~C456gLaiwZP6!%=NoB+<1Uh_gOexZ9#zx~VkH zY^q__uAa(Bm`>LN2y{BjFq3baE3nMwC(jio&K^yftFX<$ETBAXrZ#W7+yY+Em$fNx z8nRy2X1%J;e|s$BT|*&&AYQg)y=p0Z*OE049RaNskP&|0b@(IP1>hC{P@tZo`JS@R zz0Dv5eeG`q9MI>!rY{3cUxpwKeDeEf=hrJeUq(B=f(mr&!uOj!KW<-Gcz6-k{~vb; ze?A=e`K0grlk*=QcHHglX_nX${|HbpzzDW{aO>{UN@ChhT+| zbiJE#J6r>UDZh9|t_YT|^{Wad-%Uvz&$r$&EAL8Ut_W!ZYDuq6dBtoR)QYYo>Ok`! zHB0*vbp2NSRhxFyEFVfs?6ax{4T=$yZpfw>NYD>h6eBjpu-!0Zf)s$Z*P!c%T(Ajh z0>J;T?Y3Ha6A~Bm0!IBst+r2Z=+s+#wE8Zi5#D#{ja?cY1cZBans%f8j8+S?fHNw? zX_@4-(snvl-ptpWjgy`RUZ_%Yh9^2J6ts)t`XtN|3H!Q&dQ(iesifSLQ?JV-Z>aEB zw9G3)@=Y0eEG_<3ljiez`@(3!_nYPa-mm`e!MEy{MY`tTle#R-Oqaf zd^qwQ#Gku|7tKF6f%cR4c`)sLkL~5@wCBa5yIOKjbVNfSuIO(}`aj_r5OQ%N=l+8$ z^1zn*66?aKwSnaFAj%O>VkLrH6B1d2q}HP#fK06mjc5vvZpKi~;%VIx)ZR!+cNFhD zozW3a1MF>M5UCQDeNPNz1mMa58$pFHsV*3FBuXPL`UH-74997}F>COwDm(+f%mbci zz^!iyHoDW&QM_D+?g&R+El;V3AV5xeXIW)eMeX^L#-57$OV#y*H8q#YVFX;QRVl9e$3 zeSakF?UBTH<;IVd37={cJ~!Au)>uBkjiB24vC2MQmiD2}@UaH|5tKrjKR^%w+(Ct^ z*IDX!S)$kWxLKWaMlPC=a^4s5Ki|ImAS1P&Y$!(wO@D@E2E^r|l|Y_HFZUn-vH%q9 zRsIw>)vxs@L+y*BF9mJ^E`gk_fs5kLIwZJ&%)b0=q8^|J(dz?A@VW^LtmBCF{>+0h zj6HaO(r`A1&^I9IYmj6BrmYO6ug6+FI7Rrx3enMgO1kc!7`k&95xU5CVl6=e*^Y4W z7982p3o65)Ummv zH{`DeamzeOzqrM2_Rn#JDF8x!h-BK06$p2|N^U⁣*_7bm{rH2yT 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

R_rzGElt>C#3vGD)mDJn2aLF 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 o!B^}m%J3H0av@ATih|L8r#y$|+3 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

KA@Bhh3%f}N(BLD0NX^l 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Μ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

{?h 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 z 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 literal 0 HcmV?d00001 From 3d0b25abe0b294de4274913ea83a76efdc83984d Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 16:13:51 +0200 Subject: [PATCH 34/50] test support for webp images --- CImage.php | 86 +++++++++++++++++++++++++++++++++++----- REVISION.md | 8 ++++ defines.php | 5 +++ webroot/check_system.php | 1 - webroot/img_config.php | 2 +- 5 files changed, 90 insertions(+), 12 deletions(-) diff --git a/CImage.php b/CImage.php index 38a1cb0..0502e9c 100644 --- a/CImage.php +++ b/CImage.php @@ -640,7 +640,7 @@ class CImage */ private function checkFileExtension($extension) { - $valid = array('jpg', 'jpeg', 'png', 'gif'); + $valid = array('jpg', 'jpeg', 'png', 'gif', 'webp'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); @@ -663,7 +663,7 @@ class CImage if ($extension == 'jpeg') { $extension = 'jpg'; - } + } return $extension; } @@ -941,17 +941,56 @@ class CImage is_readable($file) or $this->raiseError('Image file does not exist.'); - // Get details on image - $info = list($this->width, $this->height, $this->fileType, $this->attr) = getimagesize($file); + return $this->getImageDetails(); + } + + + + /** + * Get image details. + * + * @return $this + * @throws Exception + */ + protected function getImageDetails() + { + $info = list($this->width, $this->height, $this->fileType) = getimagesize($this->pathToImage); if (empty($info)) { - throw new Exception("The file doesn't seem to be a valid image."); + // To support webp + $this->fileType = false; + if (function_exists("exif_imagetype")) { + var_dump("has exif"); + $this->fileType = exif_imagetype($this->pathToImage); + var_dump($this->fileType); + if ($this->fileType === false) { + if (function_exists("imagecreatefromwebp")) { + var_dump("has imagecreatefromwebp"); + + //die("before"); + $webp = imagecreatefromwebp($this->pathToImage); + var_dump($webp); + die(); + if ($webp !== false) { + $this->width = imagesx($webp); + $this->height = imagesy($webp); + $this->fileType = IMG_WEBP; + } + die(); + + } + } + } + } + + if (!$this->fileType) { + throw new Exception("Loading image details, the file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); - $this->log(" Image filesize: " . filesize($file) . " bytes."); - $this->log(" Image mimetype: " . image_type_to_mime_type($this->fileType)); + $this->log(" Image filesize: " . filesize($this->pathToImage) . " bytes."); + $this->log(" Image mimetype: " . $this->getMimeType()); } return $this; @@ -959,6 +998,23 @@ class CImage + /** + * Get mime type for image type. + * + * @return $this + * @throws Exception + */ + protected function getMimeType() + { + if ($this->fileType === IMG_WEBP) { + return "image/webp"; + } + + return image_type_to_mime_type($this->fileType); + } + + + /** * Init new width and height and do some sanity checks on constraints, before any * processing can be done. @@ -1470,13 +1526,18 @@ class CImage $this->setSource($src, $dir); } - $this->loadImageDetails($this->pathToImage); + is_readable($this->pathToImage) + or $this->raiseError('Image file does not exist.'); - $this->image = imagecreatefromstring(file_get_contents($this->pathToImage)); + $imageAsString = file_get_contents($this->pathToImage); + $this->image = imagecreatefromstring($imageAsString); if ($this->image === false) { throw new Exception("Could not load image."); } + $this->getImageDetails(); + + /* Removed v0.7.7 if (image_type_to_mime_type($this->fileType) == 'image/png') { $type = $this->getPngType(); @@ -2391,6 +2452,11 @@ class CImage imagegif($this->image, $this->cacheFileName); break; + case 'webp': + $this->Log("Saving image as WEBP to cache using quality = {$this->quality}."); + imagewebp($this->image, $this->cacheFileName, $this->quality); + break; + case 'png': default: $this->Log("Saving image as PNG to cache using compression = {$this->compress}."); @@ -2691,7 +2757,7 @@ class CImage $this->load($file); $details['filename'] = basename($file); - $details['mimeType'] = image_type_to_mime_type($this->fileType); + $details['mimeType'] = $this->getMimeType($this->fileType); $details['width'] = $this->width; $details['height'] = $this->height; $details['aspectRatio'] = round($this->width / $this->height, 3); diff --git a/REVISION.md b/REVISION.md index 2c47505..2e688bc 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,10 +5,18 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) +v0.7.15 (2016-08-08) +------------------------------------- + +* Added the [Lenna/Lena sample image](http://www.cs.cmu.edu/~chuck/lennapg/) as tif and created a png, jpeg and webp version using Imagick convert `convert lena.tif lena.{png,jpg,webp}`. +* Support saving to imgp format through `sa=webp`, #132. + + v0.7.14 (2016-08-08) ------------------------------------- * Re-add removed cache directory. +* Make fast track cache disabled by default in the config file. v0.7.13 (2016-08-08) diff --git a/defines.php b/defines.php index b64ecbe..2e7ed52 100644 --- a/defines.php +++ b/defines.php @@ -4,3 +4,8 @@ define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); + +// Image type IMG_WEBP is only defined from 5.6.25 +if (!defined("IMG_WEBP")) { + define("IMG_WEBP", -1); +} diff --git a/webroot/check_system.php b/webroot/check_system.php index 2ae22b9..b101998 100644 --- a/webroot/check_system.php +++ b/webroot/check_system.php @@ -15,7 +15,6 @@ echo "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; echo "Extension gd is $no loaded.
"; - if (!$no) { echo "

", var_dump(gd_info()), "
"; } diff --git a/webroot/img_config.php b/webroot/img_config.php index df1d5fa..9654dd5 100644 --- a/webroot/img_config.php +++ b/webroot/img_config.php @@ -41,7 +41,7 @@ return array( * mode: 'production' */ //'mode' => 'production', - //'mode' => 'development', + 'mode' => 'development', //'mode' => 'strict', From 7677fc772ff77b0fa38d1621ac26bd1f61004230 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 16:21:36 +0200 Subject: [PATCH 35/50] remove debugging --- CImage.php | 9 --------- 1 file changed, 9 deletions(-) diff --git a/CImage.php b/CImage.php index 0502e9c..42d73c4 100644 --- a/CImage.php +++ b/CImage.php @@ -959,24 +959,15 @@ class CImage // To support webp $this->fileType = false; if (function_exists("exif_imagetype")) { - var_dump("has exif"); $this->fileType = exif_imagetype($this->pathToImage); - var_dump($this->fileType); if ($this->fileType === false) { if (function_exists("imagecreatefromwebp")) { - var_dump("has imagecreatefromwebp"); - - //die("before"); $webp = imagecreatefromwebp($this->pathToImage); - var_dump($webp); - die(); if ($webp !== false) { $this->width = imagesx($webp); $this->height = imagesy($webp); $this->fileType = IMG_WEBP; } - die(); - } } } From b5de49d601e7bbec1978b9bb4988f2ef8f9101dd Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 16:48:23 +0200 Subject: [PATCH 36/50] add debug for test --- CImage.php | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/CImage.php b/CImage.php index 42d73c4..183661f 100644 --- a/CImage.php +++ b/CImage.php @@ -941,28 +941,17 @@ class CImage is_readable($file) or $this->raiseError('Image file does not exist.'); - return $this->getImageDetails(); - } - - - - /** - * Get image details. - * - * @return $this - * @throws Exception - */ - protected function getImageDetails() - { $info = list($this->width, $this->height, $this->fileType) = getimagesize($this->pathToImage); if (empty($info)) { // To support webp $this->fileType = false; if (function_exists("exif_imagetype")) { - $this->fileType = exif_imagetype($this->pathToImage); + $this->fileType = exif_imagetype($file); if ($this->fileType === false) { if (function_exists("imagecreatefromwebp")) { - $webp = imagecreatefromwebp($this->pathToImage); + die("before create webp " . $file); + $webp = imagecreatefromwebp($file); + die("after create webp " . $file); if ($webp !== false) { $this->width = imagesx($webp); $this->height = imagesy($webp); @@ -980,7 +969,7 @@ class CImage if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); - $this->log(" Image filesize: " . filesize($this->pathToImage) . " bytes."); + $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . $this->getMimeType()); } @@ -1517,8 +1506,7 @@ class CImage $this->setSource($src, $dir); } - is_readable($this->pathToImage) - or $this->raiseError('Image file does not exist.'); + $this->loadImageDetails(); $imageAsString = file_get_contents($this->pathToImage); $this->image = imagecreatefromstring($imageAsString); @@ -1526,9 +1514,6 @@ class CImage throw new Exception("Could not load image."); } - $this->getImageDetails(); - - /* Removed v0.7.7 if (image_type_to_mime_type($this->fileType) == 'image/png') { $type = $this->getPngType(); From bbfd895c4c4114c173aa1fd2e17c30b7465c4346 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Mon, 8 Aug 2016 16:49:29 +0200 Subject: [PATCH 37/50] webp implemented but fail to verify --- CImage.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/CImage.php b/CImage.php index 183661f..1582c79 100644 --- a/CImage.php +++ b/CImage.php @@ -949,9 +949,7 @@ class CImage $this->fileType = exif_imagetype($file); if ($this->fileType === false) { if (function_exists("imagecreatefromwebp")) { - die("before create webp " . $file); $webp = imagecreatefromwebp($file); - die("after create webp " . $file); if ($webp !== false) { $this->width = imagesx($webp); $this->height = imagesy($webp); From 66c5a077671734193ef50d8120b9e9c11decaf6b Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Tue, 9 Aug 2016 09:32:02 +0200 Subject: [PATCH 38/50] webp partly working --- CImage.php | 27 +++++++++++++++++---------- defines.php | 2 +- webroot/img/webp/1.webp | Bin 0 -> 30320 bytes 3 files changed, 18 insertions(+), 11 deletions(-) create mode 100644 webroot/img/webp/1.webp diff --git a/CImage.php b/CImage.php index 1582c79..a1fd817 100644 --- a/CImage.php +++ b/CImage.php @@ -941,7 +941,7 @@ class CImage is_readable($file) or $this->raiseError('Image file does not exist.'); - $info = list($this->width, $this->height, $this->fileType) = getimagesize($this->pathToImage); + $info = list($this->width, $this->height, $this->fileType) = getimagesize($file); if (empty($info)) { // To support webp $this->fileType = false; @@ -1506,8 +1506,12 @@ class CImage $this->loadImageDetails(); - $imageAsString = file_get_contents($this->pathToImage); - $this->image = imagecreatefromstring($imageAsString); + if ($this->fileType === IMG_WEBP) { + $this->image = imagecreatefromwebp($this->pathToImage); + } else { + $imageAsString = file_get_contents($this->pathToImage); + $this->image = imagecreatefromstring($imageAsString); + } if ($this->image === false) { throw new Exception("Could not load image."); } @@ -2368,9 +2372,11 @@ class CImage // switch on mimetype if (isset($this->extension)) { return strtolower($this->extension); - } else { - return substr(image_type_to_extension($this->fileType), 1); + } elseif ($this->fileType === IMG_WEBP) { + return "webp"; } + + return substr(image_type_to_extension($this->fileType), 1); } @@ -2619,6 +2625,7 @@ class CImage $format = $this->outputFormat; } + $this->log("### Output"); $this->log("Output format is: $format"); if (!$this->verbose && $format == 'json') { @@ -2652,7 +2659,8 @@ class CImage $this->fastTrackCache->addHeader($header); } - if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { + if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) + && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { $this->log("304 not modified"); @@ -2667,10 +2675,8 @@ class CImage } else { - // Get details on image - $info = getimagesize($file); - !empty($info) or $this->raiseError("The file doesn't seem to be an image."); - $mime = $info['mime']; + $this->loadImageDetails($file); + $mime = $this->getMimeType(); $size = filesize($file); if ($this->verbose) { @@ -2833,6 +2839,7 @@ class CImage private function verboseOutput() { $log = null; + $this->log("### Summary of verbose log"); $this->log("As JSON: \n" . $this->json()); $this->log("Memory peak: " . round(memory_get_peak_usage() /1024/1024) . "M"); $this->log("Memory limit: " . ini_get('memory_limit')); diff --git a/defines.php b/defines.php index 2e7ed52..4789fd1 100644 --- a/defines.php +++ b/defines.php @@ -1,6 +1,6 @@ TmC{=ev&ww;z9|_ry=T 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 TU=pkm8Veub3_|1vJMaJi)t)C5 literal 0 HcmV?d00001 From 21e53887b8491f9fad4135673d25a308a6d19731 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Tue, 9 Aug 2016 10:19:49 +0200 Subject: [PATCH 39/50] prepare to tag v0.7.15 --- README.md | 6 ++-- REVISION.md | 4 +-- webroot/imgd.php | 86 ++++++++++++++++++++++++++++++++++++++---------- webroot/imgp.php | 86 ++++++++++++++++++++++++++++++++++++++---------- webroot/imgs.php | 6 ++-- 5 files changed, 146 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index d23c57d..ad2a686 100644 --- a/README.md +++ b/README.md @@ -49,14 +49,14 @@ There are several ways of installing. You either install the whole project which The [sourcode is available on GitHub](https://github.com/mosbth/cimage). Clone, fork or [download as zip](https://github.com/mosbth/cimage/archive/master.zip). -**Latest stable version is v0.7.14 released 2016-08-08.** +**Latest stable version is v0.7.15 released 2016-08-08.** I prefer cloning like this. Do switch to the latest stable version. ```bash git clone git://github.com/mosbth/cimage.git cd cimage -git checkout v0.7.14 +git checkout v0.7.15 ``` Make the cache-directory writable by the webserver. @@ -79,7 +79,7 @@ There are some all-included bundles of `img.php` that can be downloaded and used Dowload the version of your choice like this. ```bash -wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.14/webroot/imgp.php +wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.15/webroot/imgp.php ``` Open up the file in your editor and edit the array `$config`. Ensure that the paths to the image directory and the cache directory matches your environment, or create an own config-file for the script. diff --git a/REVISION.md b/REVISION.md index 2e688bc..6af934d 100644 --- a/REVISION.md +++ b/REVISION.md @@ -8,8 +8,8 @@ Revision history v0.7.15 (2016-08-08) ------------------------------------- -* Added the [Lenna/Lena sample image](http://www.cs.cmu.edu/~chuck/lennapg/) as tif and created a png, jpeg and webp version using Imagick convert `convert lena.tif lena.{png,jpg,webp}`. -* Support saving to imgp format through `sa=webp`, #132. +* Added the [Lenna/Lena sample image](http://www.cs.cmu.edu/~chuck/lennapg/) as tif and created a png, jpeg and webp version using Imagick convert `convert lena.tif lena.{png,jpg,webp}`, #152. +* Limited and basic support for WEBP format, se #132. v0.7.14 (2016-08-08) diff --git a/webroot/imgd.php b/webroot/imgd.php index a4e3891..18ac340 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -38,11 +38,16 @@ $config = array( // Version of cimage and img.php -define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); +define("CIMAGE_VERSION", "v0.7.15 (2016-08-09)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); +// Image type IMG_WEBP is only defined from 5.6.25 +if (!defined("IMG_WEBP")) { + define("IMG_WEBP", -1); +} + /** @@ -1740,7 +1745,7 @@ class CImage */ private function checkFileExtension($extension) { - $valid = array('jpg', 'jpeg', 'png', 'gif'); + $valid = array('jpg', 'jpeg', 'png', 'gif', 'webp'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); @@ -1763,7 +1768,7 @@ class CImage if ($extension == 'jpeg') { $extension = 'jpg'; - } + } return $extension; } @@ -2041,17 +2046,34 @@ class CImage is_readable($file) or $this->raiseError('Image file does not exist.'); - // Get details on image - $info = list($this->width, $this->height, $this->fileType, $this->attr) = getimagesize($file); + $info = list($this->width, $this->height, $this->fileType) = getimagesize($file); if (empty($info)) { - throw new Exception("The file doesn't seem to be a valid image."); + // To support webp + $this->fileType = false; + if (function_exists("exif_imagetype")) { + $this->fileType = exif_imagetype($file); + if ($this->fileType === false) { + if (function_exists("imagecreatefromwebp")) { + $webp = imagecreatefromwebp($file); + if ($webp !== false) { + $this->width = imagesx($webp); + $this->height = imagesy($webp); + $this->fileType = IMG_WEBP; + } + } + } + } + } + + if (!$this->fileType) { + throw new Exception("Loading image details, the file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); - $this->log(" Image mimetype: " . image_type_to_mime_type($this->fileType)); + $this->log(" Image mimetype: " . $this->getMimeType()); } return $this; @@ -2059,6 +2081,23 @@ class CImage + /** + * Get mime type for image type. + * + * @return $this + * @throws Exception + */ + protected function getMimeType() + { + if ($this->fileType === IMG_WEBP) { + return "image/webp"; + } + + return image_type_to_mime_type($this->fileType); + } + + + /** * Init new width and height and do some sanity checks on constraints, before any * processing can be done. @@ -2570,9 +2609,14 @@ class CImage $this->setSource($src, $dir); } - $this->loadImageDetails($this->pathToImage); + $this->loadImageDetails(); - $this->image = imagecreatefromstring(file_get_contents($this->pathToImage)); + if ($this->fileType === IMG_WEBP) { + $this->image = imagecreatefromwebp($this->pathToImage); + } else { + $imageAsString = file_get_contents($this->pathToImage); + $this->image = imagecreatefromstring($imageAsString); + } if ($this->image === false) { throw new Exception("Could not load image."); } @@ -3433,9 +3477,11 @@ class CImage // switch on mimetype if (isset($this->extension)) { return strtolower($this->extension); - } else { - return substr(image_type_to_extension($this->fileType), 1); + } elseif ($this->fileType === IMG_WEBP) { + return "webp"; } + + return substr(image_type_to_extension($this->fileType), 1); } @@ -3491,6 +3537,11 @@ class CImage imagegif($this->image, $this->cacheFileName); break; + case 'webp': + $this->Log("Saving image as WEBP to cache using quality = {$this->quality}."); + imagewebp($this->image, $this->cacheFileName, $this->quality); + break; + case 'png': default: $this->Log("Saving image as PNG to cache using compression = {$this->compress}."); @@ -3679,6 +3730,7 @@ class CImage $format = $this->outputFormat; } + $this->log("### Output"); $this->log("Output format is: $format"); if (!$this->verbose && $format == 'json') { @@ -3712,7 +3764,8 @@ class CImage $this->fastTrackCache->addHeader($header); } - if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { + if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) + && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { $this->log("304 not modified"); @@ -3727,10 +3780,8 @@ class CImage } else { - // Get details on image - $info = getimagesize($file); - !empty($info) or $this->raiseError("The file doesn't seem to be an image."); - $mime = $info['mime']; + $this->loadImageDetails($file); + $mime = $this->getMimeType(); $size = filesize($file); if ($this->verbose) { @@ -3791,7 +3842,7 @@ class CImage $this->load($file); $details['filename'] = basename($file); - $details['mimeType'] = image_type_to_mime_type($this->fileType); + $details['mimeType'] = $this->getMimeType($this->fileType); $details['width'] = $this->width; $details['height'] = $this->height; $details['aspectRatio'] = round($this->width / $this->height, 3); @@ -3893,6 +3944,7 @@ class CImage private function verboseOutput() { $log = null; + $this->log("### Summary of verbose log"); $this->log("As JSON: \n" . $this->json()); $this->log("Memory peak: " . round(memory_get_peak_usage() /1024/1024) . "M"); $this->log("Memory limit: " . ini_get('memory_limit')); diff --git a/webroot/imgp.php b/webroot/imgp.php index 43928f8..cbf008a 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -38,11 +38,16 @@ $config = array( // Version of cimage and img.php -define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); +define("CIMAGE_VERSION", "v0.7.15 (2016-08-09)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); +// Image type IMG_WEBP is only defined from 5.6.25 +if (!defined("IMG_WEBP")) { + define("IMG_WEBP", -1); +} + /** @@ -1740,7 +1745,7 @@ class CImage */ private function checkFileExtension($extension) { - $valid = array('jpg', 'jpeg', 'png', 'gif'); + $valid = array('jpg', 'jpeg', 'png', 'gif', 'webp'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); @@ -1763,7 +1768,7 @@ class CImage if ($extension == 'jpeg') { $extension = 'jpg'; - } + } return $extension; } @@ -2041,17 +2046,34 @@ class CImage is_readable($file) or $this->raiseError('Image file does not exist.'); - // Get details on image - $info = list($this->width, $this->height, $this->fileType, $this->attr) = getimagesize($file); + $info = list($this->width, $this->height, $this->fileType) = getimagesize($file); if (empty($info)) { - throw new Exception("The file doesn't seem to be a valid image."); + // To support webp + $this->fileType = false; + if (function_exists("exif_imagetype")) { + $this->fileType = exif_imagetype($file); + if ($this->fileType === false) { + if (function_exists("imagecreatefromwebp")) { + $webp = imagecreatefromwebp($file); + if ($webp !== false) { + $this->width = imagesx($webp); + $this->height = imagesy($webp); + $this->fileType = IMG_WEBP; + } + } + } + } + } + + if (!$this->fileType) { + throw new Exception("Loading image details, the file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); - $this->log(" Image mimetype: " . image_type_to_mime_type($this->fileType)); + $this->log(" Image mimetype: " . $this->getMimeType()); } return $this; @@ -2059,6 +2081,23 @@ class CImage + /** + * Get mime type for image type. + * + * @return $this + * @throws Exception + */ + protected function getMimeType() + { + if ($this->fileType === IMG_WEBP) { + return "image/webp"; + } + + return image_type_to_mime_type($this->fileType); + } + + + /** * Init new width and height and do some sanity checks on constraints, before any * processing can be done. @@ -2570,9 +2609,14 @@ class CImage $this->setSource($src, $dir); } - $this->loadImageDetails($this->pathToImage); + $this->loadImageDetails(); - $this->image = imagecreatefromstring(file_get_contents($this->pathToImage)); + if ($this->fileType === IMG_WEBP) { + $this->image = imagecreatefromwebp($this->pathToImage); + } else { + $imageAsString = file_get_contents($this->pathToImage); + $this->image = imagecreatefromstring($imageAsString); + } if ($this->image === false) { throw new Exception("Could not load image."); } @@ -3433,9 +3477,11 @@ class CImage // switch on mimetype if (isset($this->extension)) { return strtolower($this->extension); - } else { - return substr(image_type_to_extension($this->fileType), 1); + } elseif ($this->fileType === IMG_WEBP) { + return "webp"; } + + return substr(image_type_to_extension($this->fileType), 1); } @@ -3491,6 +3537,11 @@ class CImage imagegif($this->image, $this->cacheFileName); break; + case 'webp': + $this->Log("Saving image as WEBP to cache using quality = {$this->quality}."); + imagewebp($this->image, $this->cacheFileName, $this->quality); + break; + case 'png': default: $this->Log("Saving image as PNG to cache using compression = {$this->compress}."); @@ -3679,6 +3730,7 @@ class CImage $format = $this->outputFormat; } + $this->log("### Output"); $this->log("Output format is: $format"); if (!$this->verbose && $format == 'json') { @@ -3712,7 +3764,8 @@ class CImage $this->fastTrackCache->addHeader($header); } - if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { + if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) + && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { $this->log("304 not modified"); @@ -3727,10 +3780,8 @@ class CImage } else { - // Get details on image - $info = getimagesize($file); - !empty($info) or $this->raiseError("The file doesn't seem to be an image."); - $mime = $info['mime']; + $this->loadImageDetails($file); + $mime = $this->getMimeType(); $size = filesize($file); if ($this->verbose) { @@ -3791,7 +3842,7 @@ class CImage $this->load($file); $details['filename'] = basename($file); - $details['mimeType'] = image_type_to_mime_type($this->fileType); + $details['mimeType'] = $this->getMimeType($this->fileType); $details['width'] = $this->width; $details['height'] = $this->height; $details['aspectRatio'] = round($this->width / $this->height, 3); @@ -3893,6 +3944,7 @@ class CImage private function verboseOutput() { $log = null; + $this->log("### Summary of verbose log"); $this->log("As JSON: \n" . $this->json()); $this->log("Memory peak: " . round(memory_get_peak_usage() /1024/1024) . "M"); $this->log("Memory limit: " . ini_get('memory_limit')); diff --git a/webroot/imgs.php b/webroot/imgs.php index 41fb381..645773e 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -1,11 +1,11 @@ 'strict', ); define("CIMAGE_VERSION", "v0.7.13 (2016-08-08)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { return; } $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at - http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType, $this->attr) = getimagesize($file); if (empty($info)) { throw new Exception("The file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . image_type_to_mime_type($this->fileType)); } return $this; } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } else { $this->newWidth = $width; $this->newHeight = $height; } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails($this->pathToImage); $this->image = imagecreatefromstring(file_get_contents($this->pathToImage)); if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newWidth < $this->width) { $cropX = round(($this->width/2) - ($this->newWidth/2)); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } if ($this->newHeight < $this->height) { $cropY = round(($this->height/2) - ($this->newHeight/2)); } $this->log(" cwidth: $this->cropWidth"); $this->log(" cheight: $this->cropHeight"); $this->log(" nwidth: $this->newWidth"); $this->log(" nheight: $this->newHeight"); $this->log(" width: $this->width"); $this->log(" height: $this->height"); $this->log(" posX: $posX"); $this->log(" posY: $posY"); $this->log(" cropX: $cropX"); $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with + define("CIMAGE_BUNDLE", true); $config = array( 'mode' => 'strict', ); define("CIMAGE_VERSION", "v0.7.15 (2016-08-09)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); if (!defined("IMG_WEBP")) { define("IMG_WEBP", -1); } function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { return; } $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif', 'webp'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at + http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType) = getimagesize($file); if (empty($info)) { $this->fileType = false; if (function_exists("exif_imagetype")) { $this->fileType = exif_imagetype($file); if ($this->fileType === false) { if (function_exists("imagecreatefromwebp")) { $webp = imagecreatefromwebp($file); if ($webp !== false) { $this->width = imagesx($webp); $this->height = imagesy($webp); $this->fileType = IMG_WEBP; } } } } } if (!$this->fileType) { throw new Exception("Loading image details, the file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . $this->getMimeType()); } return $this; } protected function getMimeType() { if ($this->fileType === IMG_WEBP) { return "image/webp"; } return image_type_to_mime_type($this->fileType); } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } else { $this->newWidth = $width; $this->newHeight = $height; } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails(); if ($this->fileType === IMG_WEBP) { $this->image = imagecreatefromwebp($this->pathToImage); } else { $imageAsString = file_get_contents($this->pathToImage); $this->image = imagecreatefromstring($imageAsString); } if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newWidth < $this->width) { $cropX = round(($this->width/2) - ($this->newWidth/2)); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } if ($this->newHeight < $this->height) { $cropY = round(($this->height/2) - ($this->newHeight/2)); } $this->log(" cwidth: $this->cropWidth"); $this->log(" cheight: $this->cropHeight"); $this->log(" nwidth: $this->newWidth"); $this->log(" nheight: $this->newHeight"); $this->log(" width: $this->width"); $this->log(" height: $this->height"); $this->log(" posX: $posX"); $this->log(" posY: $posY"); $this->log(" cropX: $cropX"); $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with 11 float values. Got $expression." ); } array_walk($part, function ($item, $key) { if (!is_numeric($item)) { throw new Exception("Argument to convolve expression should be float but is not."); } }); return array( array( array($part[0], $part[1], $part[2]), array($part[3], $part[4], $part[5]), array($part[6], $part[7], $part[8]), ), $part[9], $part[10], ); } public function addConvolveExpressions($options) { $this->convolves = array_merge($this->convolves, $options); return $this; } public function imageConvolution($options = null) { $options = $options ? $options : $this->convolve; $this->log("Convolution with '$options'"); $options = explode(":", $options); foreach ($options as $option) { list($matrix, $divisor, $offset) = $this->createConvolveArguments($option); imageconvolution($this->image, $matrix, $divisor, $offset); } return $this; } public function setDefaultBackgroundColor($color) { $this->log("Setting default background color to '$color'."); if (!(strlen($color) == 6 || strlen($color) == 8)) { throw new Exception( "Background color needs a hex value of 6 or 8 digits. 000000-FFFFFF or 00000000-FFFFFF7F. Current value was: '$color'." ); } $red = hexdec(substr($color, 0, 2)); $green = hexdec(substr($color, 2, 2)); $blue = hexdec(substr($color, 4, 2)); $alpha = (strlen($color) == 8) ? hexdec(substr($color, 6, 2)) : null; if (($red < 0 || $red > 255) || ($green < 0 || $green > 255) || ($blue < 0 || $blue > 255) || ($alpha < 0 || $alpha > 127) ) { throw new Exception( "Background color out of range. Red, green blue should be 00-FF and alpha should be 00-7F. - Current value was: '$color'." ); } $this->bgColor = strtolower($color); $this->bgColorDefault = array( 'red' => $red, 'green' => $green, 'blue' => $blue, 'alpha' => $alpha ); return $this; } private function getBackgroundColor($img = null) { $img = isset($img) ? $img : $this->image; if ($this->bgColorDefault) { $red = $this->bgColorDefault['red']; $green = $this->bgColorDefault['green']; $blue = $this->bgColorDefault['blue']; $alpha = $this->bgColorDefault['alpha']; if ($alpha) { $color = imagecolorallocatealpha($img, $red, $green, $blue, $alpha); } else { $color = imagecolorallocate($img, $red, $green, $blue); } return $color; } else { return 0; } } private function createImageKeepTransparency($width, $height) { $this->log("Creating a new working image width={$width}px, height={$height}px."); $img = imagecreatetruecolor($width, $height); imagealphablending($img, false); imagesavealpha($img, true); $index = $this->image ? imagecolortransparent($this->image) : -1; if ($index != -1) { imagealphablending($img, true); $transparent = imagecolorsforindex($this->image, $index); $color = imagecolorallocatealpha($img, $transparent['red'], $transparent['green'], $transparent['blue'], $transparent['alpha']); imagefill($img, 0, 0, $color); $index = imagecolortransparent($img, $color); $this->Log("Detected transparent color = " . implode(", ", $transparent) . " at index = $index"); } elseif ($this->bgColorDefault) { $color = $this->getBackgroundColor($img); imagefill($img, 0, 0, $color); $this->Log("Filling image with background color."); } return $img; } public function setPostProcessingOptions($options) { if (isset($options['jpeg_optimize']) && $options['jpeg_optimize']) { $this->jpegOptimizeCmd = $options['jpeg_optimize_cmd']; } else { $this->jpegOptimizeCmd = null; } if (isset($options['png_filter']) && $options['png_filter']) { $this->pngFilterCmd = $options['png_filter_cmd']; } else { $this->pngFilterCmd = null; } if (isset($options['png_deflate']) && $options['png_deflate']) { $this->pngDeflateCmd = $options['png_deflate_cmd']; } else { $this->pngDeflateCmd = null; } return $this; } protected function getTargetImageExtension() { if (isset($this->extension)) { return strtolower($this->extension); } else { return substr(image_type_to_extension($this->fileType), 1); } } public function save($src = null, $base = null, $overwrite = true) { if (isset($src)) { $this->setTarget($src, $base); } if ($overwrite === false && is_file($this->cacheFileName)) { $this->Log("Not overwriting file since its already exists and \$overwrite if false."); return; } is_writable($this->saveFolder) or $this->raiseError('Target directory is not writable.'); $type = $this->getTargetImageExtension(); $this->Log("Saving image as " . $type); switch($type) { case 'jpeg': case 'jpg': $this->Log("Saving image as JPEG to cache using quality = {$this->quality}."); imagejpeg($this->image, $this->cacheFileName, $this->quality); if ($this->jpegOptimizeCmd) { if ($this->verbose) { clearstatcache(); $this->log("Filesize before optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->jpegOptimizeCmd . " -outfile $this->cacheFileName $this->cacheFileName"; exec($cmd, $res); $this->log($cmd); $this->log($res); } break; case 'gif': $this->Log("Saving image as GIF to cache."); imagegif($this->image, $this->cacheFileName); break; case 'png': default: $this->Log("Saving image as PNG to cache using compression = {$this->compress}."); imagealphablending($this->image, false); imagesavealpha($this->image, true); imagepng($this->image, $this->cacheFileName, $this->compress); if ($this->pngFilterCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before filter optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngFilterCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } if ($this->pngDeflateCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before deflate optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngDeflateCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } break; } if ($this->verbose) { clearstatcache(); $this->log("Saved image to cache."); $this->log(" Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->ColorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index > 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function convert2sRGBColorSpace($src, $dir, $cache, $iccFile, $useCache = true) { if ($this->verbose) { $this->log("# Converting image to sRGB colorspace."); } if (!class_exists("Imagick")) { $this->log(" Ignoring since Imagemagick is not installed."); return false; } $this->setSaveFolder($cache) ->setSource($src, $dir) ->generateFilename(null, false, 'srgb_'); if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { $this->log(" Using cached version: " . $this->cacheFileName); return $this->cacheFileName; } } if (is_writable($this->saveFolder)) { $image = new Imagick($this->pathToImage); $colorspace = $image->getImageColorspace(); $this->log(" Current colorspace: " . $colorspace); $profiles = $image->getImageProfiles('*', false); $hasICCProfile = (array_search('icc', $profiles) !== false); $this->log(" Has ICC color profile: " . ($hasICCProfile ? "YES" : "NO")); if ($colorspace != Imagick::COLORSPACE_SRGB || $hasICCProfile) { $this->log(" Converting to sRGB."); $sRGBicc = file_get_contents($iccFile); $image->profileImage('icc', $sRGBicc); $image->transformImageColorspace(Imagick::COLORSPACE_SRGB); $image->writeImage($this->cacheFileName); return $this->cacheFileName; } } return false; } public function linkToCacheFile($alias) { if ($alias === null) { $this->log("Ignore creating alias."); return $this; } if (is_readable($alias)) { unlink($alias); } $res = link($this->cacheFileName, $alias); if ($res) { $this->log("Created an alias as: $alias"); } else { $this->log("Failed to create the alias: $alias"); } return $this; } public function addHTTPHeader($type, $value) { $this->HTTPHeader[$type] = $value; } public function output($file = null, $format = null) { if (is_null($file)) { $file = $this->cacheFileName; } if (is_null($format)) { $format = $this->outputFormat; } $this->log("Output format is: $format"); if (!$this->verbose && $format == 'json') { header('Content-type: application/json'); echo $this->json($file); exit; } elseif ($format == 'ascii') { header('Content-type: text/plain'); echo $this->ascii($file); exit; } $this->log("Outputting image: $file"); clearstatcache(); $lastModified = filemtime($file); $lastModifiedFormat = "D, d M Y H:i:s"; $gmdate = gmdate($lastModifiedFormat, $lastModified); if (!$this->verbose) { $header = "Last-Modified: $gmdate GMT"; header($header); $this->fastTrackCache->addHeader($header); $this->fastTrackCache->setLastModified($lastModified); } foreach ($this->HTTPHeader as $key => $val) { $header = "$key: $val"; header($header); $this->fastTrackCache->addHeader($header); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { $this->log("304 not modified"); $this->verboseOutput(); exit; } header("HTTP/1.0 304 Not Modified"); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 304"); } } else { $info = getimagesize($file); !empty($info) or $this->raiseError("The file doesn't seem to be an image."); $mime = $info['mime']; $size = filesize($file); if ($this->verbose) { $this->log("Last-Modified: " . $gmdate . " GMT"); $this->log("Content-type: " . $mime); $this->log("Content-length: " . $size); $this->verboseOutput(); if (is_null($this->verboseFileName)) { exit; } } $header = "Content-type: $mime"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $header = "Content-length: $size"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 200"); } readfile($file); } exit; } public function json($file = null) { $file = $file ? $file : $this->cacheFileName; $details = array(); clearstatcache(); $details['src'] = $this->imageSrc; $lastModified = filemtime($this->pathToImage); $details['srcGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $details['cache'] = basename($this->cacheFileName); $lastModified = filemtime($this->cacheFileName); $details['cacheGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $this->load($file); $details['filename'] = basename($file); $details['mimeType'] = image_type_to_mime_type($this->fileType); $details['width'] = $this->width; $details['height'] = $this->height; $details['aspectRatio'] = round($this->width / $this->height, 3); $details['size'] = filesize($file); $details['colors'] = $this->colorsTotal($this->image); $details['includedFiles'] = count(get_included_files()); $details['memoryPeek'] = round(memory_get_peak_usage()/1024/1024, 3) . " MB" ; $details['memoryCurrent'] = round(memory_get_usage()/1024/1024, 3) . " MB"; $details['memoryLimit'] = ini_get('memory_limit'); if (isset($_SERVER['REQUEST_TIME_FLOAT'])) { $details['loadTime'] = (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 3) . "s"; } if ($details['mimeType'] == 'image/png') { $details['pngType'] = $this->getPngTypeAsString(null, $file); } $options = null; if (defined("JSON_PRETTY_PRINT") && defined("JSON_UNESCAPED_SLASHES")) { $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES; } return json_encode($details, $options); } public function setAsciiOptions($options = array()) { $this->asciiOptions = $options; } public function ascii($file = null) { $file = $file ? $file : $this->cacheFileName; $asciiArt = new CAsciiArt(); $asciiArt->setOptions($this->asciiOptions); return $asciiArt->createFromFile($file); } public function log($message) { if ($this->verbose) { $this->log[] = $message; } return $this; } public function setVerboseToFile($fileName) { $this->log("Setting verbose output to file."); $this->verboseFileName = $fileName; } private function verboseOutput() { $log = null; $this->log("As JSON: \n" . $this->json()); $this->log("Memory peak: " . round(memory_get_peak_usage() /1024/1024) . "M"); $this->log("Memory limit: " . ini_get('memory_limit')); $included = get_included_files(); $this->log("Included files: " . count($included)); foreach ($this->log as $val) { if (is_array($val)) { foreach ($val as $val1) { $log .= htmlentities($val1) . '
'; } } else { $log .= htmlentities($val) . '
'; } } if (!is_null($this->verboseFileName)) { file_put_contents( $this->verboseFileName, str_replace("
", "\n", $log) ); } else { echo <<bgColor = strtolower($color); $this->bgColorDefault = array( 'red' => $red, 'green' => $green, 'blue' => $blue, 'alpha' => $alpha ); return $this; } private function getBackgroundColor($img = null) { $img = isset($img) ? $img : $this->image; if ($this->bgColorDefault) { $red = $this->bgColorDefault['red']; $green = $this->bgColorDefault['green']; $blue = $this->bgColorDefault['blue']; $alpha = $this->bgColorDefault['alpha']; if ($alpha) { $color = imagecolorallocatealpha($img, $red, $green, $blue, $alpha); } else { $color = imagecolorallocate($img, $red, $green, $blue); } return $color; } else { return 0; } } private function createImageKeepTransparency($width, $height) { $this->log("Creating a new working image width={$width}px, height={$height}px."); $img = imagecreatetruecolor($width, $height); imagealphablending($img, false); imagesavealpha($img, true); $index = $this->image ? imagecolortransparent($this->image) : -1; if ($index != -1) { imagealphablending($img, true); $transparent = imagecolorsforindex($this->image, $index); $color = imagecolorallocatealpha($img, $transparent['red'], $transparent['green'], $transparent['blue'], $transparent['alpha']); imagefill($img, 0, 0, $color); $index = imagecolortransparent($img, $color); $this->Log("Detected transparent color = " . implode(", ", $transparent) . " at index = $index"); } elseif ($this->bgColorDefault) { $color = $this->getBackgroundColor($img); imagefill($img, 0, 0, $color); $this->Log("Filling image with background color."); } return $img; } public function setPostProcessingOptions($options) { if (isset($options['jpeg_optimize']) && $options['jpeg_optimize']) { $this->jpegOptimizeCmd = $options['jpeg_optimize_cmd']; } else { $this->jpegOptimizeCmd = null; } if (isset($options['png_filter']) && $options['png_filter']) { $this->pngFilterCmd = $options['png_filter_cmd']; } else { $this->pngFilterCmd = null; } if (isset($options['png_deflate']) && $options['png_deflate']) { $this->pngDeflateCmd = $options['png_deflate_cmd']; } else { $this->pngDeflateCmd = null; } return $this; } protected function getTargetImageExtension() { if (isset($this->extension)) { return strtolower($this->extension); } elseif ($this->fileType === IMG_WEBP) { return "webp"; } return substr(image_type_to_extension($this->fileType), 1); } public function save($src = null, $base = null, $overwrite = true) { if (isset($src)) { $this->setTarget($src, $base); } if ($overwrite === false && is_file($this->cacheFileName)) { $this->Log("Not overwriting file since its already exists and \$overwrite if false."); return; } is_writable($this->saveFolder) or $this->raiseError('Target directory is not writable.'); $type = $this->getTargetImageExtension(); $this->Log("Saving image as " . $type); switch($type) { case 'jpeg': case 'jpg': $this->Log("Saving image as JPEG to cache using quality = {$this->quality}."); imagejpeg($this->image, $this->cacheFileName, $this->quality); if ($this->jpegOptimizeCmd) { if ($this->verbose) { clearstatcache(); $this->log("Filesize before optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->jpegOptimizeCmd . " -outfile $this->cacheFileName $this->cacheFileName"; exec($cmd, $res); $this->log($cmd); $this->log($res); } break; case 'gif': $this->Log("Saving image as GIF to cache."); imagegif($this->image, $this->cacheFileName); break; case 'webp': $this->Log("Saving image as WEBP to cache using quality = {$this->quality}."); imagewebp($this->image, $this->cacheFileName, $this->quality); break; case 'png': default: $this->Log("Saving image as PNG to cache using compression = {$this->compress}."); imagealphablending($this->image, false); imagesavealpha($this->image, true); imagepng($this->image, $this->cacheFileName, $this->compress); if ($this->pngFilterCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before filter optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngFilterCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } if ($this->pngDeflateCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before deflate optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngDeflateCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } break; } if ($this->verbose) { clearstatcache(); $this->log("Saved image to cache."); $this->log(" Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->ColorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index > 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function convert2sRGBColorSpace($src, $dir, $cache, $iccFile, $useCache = true) { if ($this->verbose) { $this->log("# Converting image to sRGB colorspace."); } if (!class_exists("Imagick")) { $this->log(" Ignoring since Imagemagick is not installed."); return false; } $this->setSaveFolder($cache) ->setSource($src, $dir) ->generateFilename(null, false, 'srgb_'); if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { $this->log(" Using cached version: " . $this->cacheFileName); return $this->cacheFileName; } } if (is_writable($this->saveFolder)) { $image = new Imagick($this->pathToImage); $colorspace = $image->getImageColorspace(); $this->log(" Current colorspace: " . $colorspace); $profiles = $image->getImageProfiles('*', false); $hasICCProfile = (array_search('icc', $profiles) !== false); $this->log(" Has ICC color profile: " . ($hasICCProfile ? "YES" : "NO")); if ($colorspace != Imagick::COLORSPACE_SRGB || $hasICCProfile) { $this->log(" Converting to sRGB."); $sRGBicc = file_get_contents($iccFile); $image->profileImage('icc', $sRGBicc); $image->transformImageColorspace(Imagick::COLORSPACE_SRGB); $image->writeImage($this->cacheFileName); return $this->cacheFileName; } } return false; } public function linkToCacheFile($alias) { if ($alias === null) { $this->log("Ignore creating alias."); return $this; } if (is_readable($alias)) { unlink($alias); } $res = link($this->cacheFileName, $alias); if ($res) { $this->log("Created an alias as: $alias"); } else { $this->log("Failed to create the alias: $alias"); } return $this; } public function addHTTPHeader($type, $value) { $this->HTTPHeader[$type] = $value; } public function output($file = null, $format = null) { if (is_null($file)) { $file = $this->cacheFileName; } if (is_null($format)) { $format = $this->outputFormat; } $this->log("### Output"); $this->log("Output format is: $format"); if (!$this->verbose && $format == 'json') { header('Content-type: application/json'); echo $this->json($file); exit; } elseif ($format == 'ascii') { header('Content-type: text/plain'); echo $this->ascii($file); exit; } $this->log("Outputting image: $file"); clearstatcache(); $lastModified = filemtime($file); $lastModifiedFormat = "D, d M Y H:i:s"; $gmdate = gmdate($lastModifiedFormat, $lastModified); if (!$this->verbose) { $header = "Last-Modified: $gmdate GMT"; header($header); $this->fastTrackCache->addHeader($header); $this->fastTrackCache->setLastModified($lastModified); } foreach ($this->HTTPHeader as $key => $val) { $header = "$key: $val"; header($header); $this->fastTrackCache->addHeader($header); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { $this->log("304 not modified"); $this->verboseOutput(); exit; } header("HTTP/1.0 304 Not Modified"); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 304"); } } else { $this->loadImageDetails($file); $mime = $this->getMimeType(); $size = filesize($file); if ($this->verbose) { $this->log("Last-Modified: " . $gmdate . " GMT"); $this->log("Content-type: " . $mime); $this->log("Content-length: " . $size); $this->verboseOutput(); if (is_null($this->verboseFileName)) { exit; } } $header = "Content-type: $mime"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $header = "Content-length: $size"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 200"); } readfile($file); } exit; } public function json($file = null) { $file = $file ? $file : $this->cacheFileName; $details = array(); clearstatcache(); $details['src'] = $this->imageSrc; $lastModified = filemtime($this->pathToImage); $details['srcGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $details['cache'] = basename($this->cacheFileName); $lastModified = filemtime($this->cacheFileName); $details['cacheGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $this->load($file); $details['filename'] = basename($file); $details['mimeType'] = $this->getMimeType($this->fileType); $details['width'] = $this->width; $details['height'] = $this->height; $details['aspectRatio'] = round($this->width / $this->height, 3); $details['size'] = filesize($file); $details['colors'] = $this->colorsTotal($this->image); $details['includedFiles'] = count(get_included_files()); $details['memoryPeek'] = round(memory_get_peak_usage()/1024/1024, 3) . " MB" ; $details['memoryCurrent'] = round(memory_get_usage()/1024/1024, 3) . " MB"; $details['memoryLimit'] = ini_get('memory_limit'); if (isset($_SERVER['REQUEST_TIME_FLOAT'])) { $details['loadTime'] = (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 3) . "s"; } if ($details['mimeType'] == 'image/png') { $details['pngType'] = $this->getPngTypeAsString(null, $file); } $options = null; if (defined("JSON_PRETTY_PRINT") && defined("JSON_UNESCAPED_SLASHES")) { $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES; } return json_encode($details, $options); } public function setAsciiOptions($options = array()) { $this->asciiOptions = $options; } public function ascii($file = null) { $file = $file ? $file : $this->cacheFileName; $asciiArt = new CAsciiArt(); $asciiArt->setOptions($this->asciiOptions); return $asciiArt->createFromFile($file); } public function log($message) { if ($this->verbose) { $this->log[] = $message; } return $this; } public function setVerboseToFile($fileName) { $this->log("Setting verbose output to file."); $this->verboseFileName = $fileName; } private function verboseOutput() { $log = null; $this->log("### Summary of verbose log"); $this->log("As JSON: \n" . $this->json()); $this->log("Memory peak: " . round(memory_get_peak_usage() /1024/1024) . "M"); $this->log("Memory limit: " . ini_get('memory_limit')); $included = get_included_files(); $this->log("Included files: " . count($included)); foreach ($this->log as $val) { if (is_array($val)) { foreach ($val as $val1) { $log .= htmlentities($val1) . '
'; } } else { $log .= htmlentities($val) . '
'; } } if (!is_null($this->verboseFileName)) { file_put_contents( $this->verboseFileName, str_replace("
", "\n", $log) ); } else { echo <<CImage Verbose Output
{$log}
EOD; From 9f6cba9292751432b81abfbb0a716e0e7fa57225 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Tue, 9 Aug 2016 10:21:41 +0200 Subject: [PATCH 40/50] changed date of release --- README.md | 2 +- REVISION.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ad2a686..f256a4a 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ There are several ways of installing. You either install the whole project which The [sourcode is available on GitHub](https://github.com/mosbth/cimage). Clone, fork or [download as zip](https://github.com/mosbth/cimage/archive/master.zip). -**Latest stable version is v0.7.15 released 2016-08-08.** +**Latest stable version is v0.7.15 released 2016-08-09.** I prefer cloning like this. Do switch to the latest stable version. diff --git a/REVISION.md b/REVISION.md index 6af934d..667360e 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,7 +5,7 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) -v0.7.15 (2016-08-08) +v0.7.15 (2016-08-09) ------------------------------------- * Added the [Lenna/Lena sample image](http://www.cs.cmu.edu/~chuck/lennapg/) as tif and created a png, jpeg and webp version using Imagick convert `convert lena.tif lena.{png,jpg,webp}`, #152. From 7ab19d39d6551c572122486c0e8feb0c89b06e53 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Tue, 9 Aug 2016 13:01:38 +0200 Subject: [PATCH 41/50] adding support for pngquant --- CImage.php | 48 +++++++++++++++++++++++++++++++++++++-- README.md | 6 ++--- REVISION.md | 8 +++++++ defines.php | 2 +- functions.php | 21 +++++++++++++++++ webroot/check_system.php | 3 +++ webroot/img.php | 23 ++++++++++++++++++- webroot/img/duke.png | Bin 0 -> 233674 bytes webroot/img_config.php | 13 ++++++++++- 9 files changed, 116 insertions(+), 8 deletions(-) create mode 100644 webroot/img/duke.png diff --git a/CImage.php b/CImage.php index a1fd817..dc64329 100644 --- a/CImage.php +++ b/CImage.php @@ -155,6 +155,13 @@ class CImage + /** + * Do lossy output using external postprocessing tools. + */ + private $lossy = null; + + + /** * Verbose mode to print out a trace and display the created image */ @@ -190,7 +197,15 @@ class CImage /** - * Path to command for filter optimize, for example optipng or null. + * Path to command for lossy optimize, for example pngquant. + */ + private $pngLossy; + private $pngLossyCmd; + + + + /** + * Path to command for filter optimize, for example optipng. */ private $pngFilter; private $pngFilterCmd; @@ -198,7 +213,7 @@ class CImage /** - * Path to command for deflate optimize, for example pngout or null. + * Path to command for deflate optimize, for example pngout. */ private $pngDeflate; private $pngDeflateCmd; @@ -827,6 +842,9 @@ class CImage // Output format 'outputFormat' => null, 'dpr' => 1, + + // Postprocessing using external tools + 'lossy' => null, ); // Convert crop settings from string to array @@ -2345,6 +2363,14 @@ class CImage $this->jpegOptimizeCmd = null; } + if (array_key_exists("png_lossy", $options) + && $options['png_lossy'] !== false) { + $this->pngLossy = $options['png_lossy']; + $this->pngLossyCmd = $options['png_lossy_cmd']; + } else { + $this->pngLossyCmd = null; + } + if (isset($options['png_filter']) && $options['png_filter']) { $this->pngFilterCmd = $options['png_filter_cmd']; } else { @@ -2446,6 +2472,24 @@ class CImage imagesavealpha($this->image, true); imagepng($this->image, $this->cacheFileName, $this->compress); + // Use external program to process lossy PNG, if defined + $lossyEnabled = $this->pngLossy === true; + $lossySoftEnabled = $this->pngLossy === null; + $lossyActiveEnabled = $this->lossy === true; + if ($lossyEnabled || ($lossySoftEnabled && $lossyActiveEnabled)) { + if ($this->verbose) { + clearstatcache(); + $this->log("Lossy enabled: $lossyEnabled"); + $this->log("Lossy soft enabled: $lossySoftEnabled"); + $this->Log("Filesize before lossy optimize: " . filesize($this->cacheFileName) . " bytes."); + } + $res = array(); + $cmd = $this->pngLossyCmd . " $this->cacheFileName $this->cacheFileName"; + exec($cmd, $res); + $this->Log($cmd); + $this->Log($res); + } + // Use external program to filter PNG, if defined if ($this->pngFilterCmd) { if ($this->verbose) { diff --git a/README.md b/README.md index f256a4a..c01b5cc 100644 --- a/README.md +++ b/README.md @@ -49,14 +49,14 @@ There are several ways of installing. You either install the whole project which The [sourcode is available on GitHub](https://github.com/mosbth/cimage). Clone, fork or [download as zip](https://github.com/mosbth/cimage/archive/master.zip). -**Latest stable version is v0.7.15 released 2016-08-09.** +**Latest stable version is v0.7.16 released 2016-08-09.** I prefer cloning like this. Do switch to the latest stable version. ```bash git clone git://github.com/mosbth/cimage.git cd cimage -git checkout v0.7.15 +git checkout v0.7.16 ``` Make the cache-directory writable by the webserver. @@ -79,7 +79,7 @@ There are some all-included bundles of `img.php` that can be downloaded and used Dowload the version of your choice like this. ```bash -wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.15/webroot/imgp.php +wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.16/webroot/imgp.php ``` Open up the file in your editor and edit the array `$config`. Ensure that the paths to the image directory and the cache directory matches your environment, or create an own config-file for the script. diff --git a/REVISION.md b/REVISION.md index 667360e..ee6c4f0 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,6 +5,14 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) +v0.7.16 (2016-08-09) +------------------------------------- + +* Fix default mode to be production. +* Added pngquant as extra postprocessing utility for PNG-images, #154. +* Bug `&status` wrong variable name for fast track cache. + + v0.7.15 (2016-08-09) ------------------------------------- diff --git a/defines.php b/defines.php index 4789fd1..3cc5c5e 100644 --- a/defines.php +++ b/defines.php @@ -1,6 +1,6 @@ "; + + list($command) = explode(" ", $commandString); + $no = is_executable($command) ? null : 'NOT'; + $text .= "The command for $what is $no an executable.
"; + + return $text; +} diff --git a/webroot/check_system.php b/webroot/check_system.php index b101998..1443de8 100644 --- a/webroot/check_system.php +++ b/webroot/check_system.php @@ -21,6 +21,9 @@ if (!$no) { echo "Checking path for postprocessing tools"; +echo "
pngquant: "; +system("which pngquant"); + echo "
optipng: "; system("which optipng"); diff --git a/webroot/img.php b/webroot/img.php index 15d4a96..f93227e 100644 --- a/webroot/img.php +++ b/webroot/img.php @@ -840,6 +840,9 @@ verbose("upscale = $upscale"); * Get details for post processing */ $postProcessing = getConfig('postprocessing', array( + 'png_lossy' => false, + 'png_lossy_cmd' => '/usr/local/bin/pngquant --force --output', + 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', @@ -852,6 +855,15 @@ $postProcessing = getConfig('postprocessing', array( +/** + * lossy - Do lossy postprocessing, if available. + */ +$lossy = getDefined(array('lossy'), true, null); + +verbose("lossy = $lossy"); + + + /** * alias - Save resulting image to another alias name. * Password always apply, must be defined. @@ -970,7 +982,7 @@ if ($status) { $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; - $res = $cache->getStatusOfSubdir($fasttrackCache); + $res = $cache->getStatusOfSubdir($fastTrackCache); $text .= "Cache fasttrack $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; @@ -987,6 +999,11 @@ if ($status) { $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; + $text .= checkExternalCommand("PNG LOSSY", $postProcessing["png_lossy"], $postProcessing["png_lossy_cmd"]); + $text .= checkExternalCommand("PNG FILTER", $postProcessing["png_filter"], $postProcessing["png_filter_cmd"]); + $text .= checkExternalCommand("PNG DEFLATE", $postProcessing["png_deflate"], $postProcessing["png_deflate_cmd"]); + $text .= checkExternalCommand("JPEG OPTIMIZE", $postProcessing["jpeg_optimize"], $postProcessing["jpeg_optimize_cmd"]); + if (!$no) { $text .= print_r(gd_info(), 1); } @@ -1055,6 +1072,7 @@ if (is_callable($hookBeforeCImage)) { // Other 'postProcessing' => $postProcessing, + 'lossy' => $lossy, )); verbose(print_r($allConfig, 1)); extract($allConfig); @@ -1139,6 +1157,9 @@ $img->log("Incoming arguments: " . print_r(verbose(), 1)) // Output format 'outputFormat' => $outputFormat, 'dpr' => $dpr, + + // Postprocessing using external tools + 'lossy' => $lossy, ) ) ->loadImageDetails() diff --git a/webroot/img/duke.png b/webroot/img/duke.png new file mode 100644 index 0000000000000000000000000000000000000000..5927b8fbc126f3afe8dac88775911c5f36deed89 GIT binary patch literal 233674 zcmV)*K#9MJP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x010qNS#tmY3labT3lag+-G2N4000McNliru;0Or`4l}uG z!hQe%fB;EEK~#9!t>V9sX-ECfk4gUo$s0V*<%h7;qGfKJw#@n zefB-KKy;H$(iFCBTV`ZrglB~N=WBiITg&nP`hWks?V@X!ohJ8OQrGtFN=t$^<=m%~ za!F7!7IQ14UTj%PD%!etfZ4q`s9EV@WvXS^R1HuO49Os)gS#^#0W%<&yL$_Yh=`0t z00;o?=AHJxnIcGB? zB4!2vcOOp6%tSQofzs9_VgN;54Vj!t-FhuR=!Ad_0APsbV928A1VC=`0av!+48y_0B`%+E z_-J^&ZNv6d!*{nGX}fJd8cucjyJn`U?hZpYb-&V{&uix|Xg~bB*gmg4pSS&+YUkxA zBGXwF*kd5gYT5dhVg)5h;lM?(7w%b0(3~KXp|aPG?Brk!(7PA4o{+k}C6|aCLvZn8 z+Lf%uG0O0e7}mW_%~dUqY7rr#lC?{{8Hh-X@#6g1uwO)m@vo{WB|`uJ5kW-NoKhm9 z5Q3T_5dgWnxw$*K4`?%Vtf99J17O?rFL$Y-RS0B`1pwFM)y+-85fKpG2@n7X)_WYC z0Du7_9-~Xa)d) z>ZDGD%K+mWPpwY zK*Mz%*f9-54*}85aox-pJLE8QhdX?EWM1yL%)EWO9qRu&BVqW~fD~7r;4c_d+s14G zecQs94#=UanAz}di$VXh4bIQo{#}8^|CFZ6{$A78w2EEsO_PdXh@>g^()Bq&ClJL` z?;R;7!$Jmx#E7N|UEC4^x$EJiRx3HJa@XdP$hCGha0dbeCm}@hzv-84sPJ4;082+%Vu~RuHk@H0e}!-ZDT?Jbi@n=(E%KQoz@LM)77SvJnyLP4k+$!IygAy;5dwI za{&xYjz|LLjzWT--2{;b4-h~Bki57NAOaXXw-y*22#t)92vLS+Iuvk2kV0;5r~rUW z19CbV!E?*bz!BVl2#^tgfDmyo0SM3>5kX(*Pg~<%o@%lXh9yAjRcL z;ujx(rAe1Rz2X@S9cJq>4bA(XV!8ZDEsj6w`TtFA|EAgrn}G%ZG8v7lP>tiL8>g<# zU0YVGu4_}QsP7|H%vG%Vl&VT%$bCw_prT5Qs;rSLI(5#)R*9no2_BpoikpNeRef!C zcQ%_HT)(!rzdzmCoy=yl-JNDK9qsIPUDvm5+qSF4^7Qod=;+DC`T382_T9x|(f2(7 zq?DG+WiGj@$caML2*;c=ATx6*CFe{;2yCFR9Yiy2IcT6mT=c4IUt(BN7q2J21I95`vKza6`8e901S(2#CSa)j*lho|6t& zpM<+RxEX*mf&(BqGqR(g140HsGy)d{2NT2y0ALP)goakE1Plre?mGC7h$1XVnM!c4 z5F#K00)T?6Swt}RV(tj&>P(1Wh-U7Dj$rQDLBRnPfCYgJ6baFR7>6$cqr>nA0I+$D zfCOj*w}k`%YJ)+9=72ERMF{4DJLc}l^wOTXb!;zFEn9~L{HLD0ODKi9uA?P{z^RfLqlo0#V=k7p zbOlfWvLk{k0*q!mT2`xkQM9X?c<0uwS6_eg#?9MredX=hY__wv*NjI_jEF1}W1N@F z%!1_ZrrGj(LVI@h@c#SnfBNaC`t)heSz$i@)4&~RfB+cS4_q4vgo@zk7SI4S z5V$K48mvd2sw%pft9l^0)Va3<$<^J#(T%_ffB_H;9Ym-C3WM+F#odFOI3RM39AIr( z6u=&^1#kdGOyC6^5d&gPT(JPU7>t}6;M!?Tdyyl#0cHb3b3$S=a(8cq3SdUhNDQV< z+1*`(dogfSAOcr203dU_!n43HCrw}@yqCN z1*d+2Gj*AS{sjkL{>s1AvHEZI{QqW~It(HST$mBal{H4MD~xrRv~_92vTI`u?JD(s zPBB+3DTLZeN+pGyyKD)yxFWl%fN>KDHJ)f>0&_GuAf9b*K5 ztX4{K#Owe}z~lrljKxR{NCdA;U%!3p-miZ1*XHy2!-o&Q_r34^i+}Mie)`j&-nen6 zZI=U&D?+*S?j8g8d6=*ffYwfsA=sKR-LkpxvH-y_p{>W8>Hsc|Ku8Xb4v6SL;ErfG zctZp6fS{-Z%%F~dgiI)8h}^g#iUX-rcI?f`K@p1+Y_2{GNf?4;Ft~C~0E8%@f`sT1 zA-Y#Uqss^2%Z~rW zbcTqi>Xp%Th0wY3`ZDfpkEFH#`W$qwY@elp;67_`O$vn> zByiQlR3t5$W?6~IB6eMy`j7%~3enh8rz`Gy?h{ibqb0%GZAV z*ZnQ+JMVBngJ@2(_o8X?@-i)sdEr4j3`I}ya&qw34jrYU*ND| zw_mg);AIGMrSs|Fu3q9<*I^)dIlc_>!7XF5wScZ1_EK);a;q*!sb2bBcoAPNU*a+_ zeICU8+YUwlNuh1q=6}uY-&8xd$U;Q;;~)K8-OX%pDh#~1xx2Non0MK_Ugyhhe%79! z%-dyG^3sjkRX#txXy*&hD+UG6U;fG~Uw!whU;3plPxmGnQt_Nh?)#QV5NU`QnGHq& zfK%}@$Q+P>h={<kT}I+p;j4yu}!%QxtXTTTv!Ffb7X z-4J-S8jq(brJ9479X1X3tBHgf%Rqo;l;Yl&(iP36v{Wt@T|Jo@(yH%5;J_e^O_4w( zsE~RxjVuwFoDiu(sK}U0Ko~1cGmkQaRGJWl*mB9H%4{Nv^o(;>&+bXBFF8c2go~zE z9mHU)GQp|_A#-v7rUY3DR^Yv>qX{FKLMf@5%*jtsPrbAVEyFqJ!n0w$FkQGihTu$T zjg%`dAp|B+&1Qxy?yhEo!+V+UKtvG%fWGg|tg5QPDjAH&RPt6XaM_vqtUt2d^I3Kl zF1aw5MK=II7`BhpybOf?`jZ#Eo?&2^mCM|_UD{sSo`2uA%U0y&{pLfYa^3RhKg9lZ zJ-*A%@8vyfb=AffCL)>6#wlyx_g1ni5K&EWh`6X*P^_|5HAg{VT{XT~c;Dp-a}0Qj zd9`d`xpVu=U;e^ZzWT-e!~JG9YRhWg^=8Qt&>5VEAjP_anE?`#dvO5RBFko80ue?8 zB5*TzFC_s$&iTgS!Jq&2Kl}RY_x|O#zxGf5(ck;o55Gex?^Sgwxz8mPb*PEN9ayAl zYVQlEgSlcMTT_fcex(ck;%9T|?OIOaI84{zQmt~aVs#|bv|24D43nJ+EG`Vt%)v7v zHB14$APGktp%N@p@2-)gMs9>A2}UAgse~#j1px@f0NtQsjHqr7B~@S(3bQH@QAI)k zMF~~ST&)<;4!9a1hXk&`6~`FFDK}jgokuKVjuD8qRFqopE@(=Ej7ZMNgseq(nmB5j znfZC@PfJF^NVFiz4u#x_*~FzJRW%EU>_&z|EFIJVfE*oP(5+pePOdm0+wS-h-{kX+ zpwHn!hNwLt`r3uvc%Vb%9nf$cv=_K!YJGOhd|qex4`qA#{rRkS`N#dbm+A&ChxWJk zaBZ+`wn4B4B28mWRx9SE6fI5y=m-oUa$VOkKplNGrCB>WI(oL8uXabx!NHxndgTjm zz54D~zciZd6!k^FJYTe3>WQEVF~ny33yB=mkTfgI#@Qyin+u}T+{jK(_O5X7#$5vzzM;;BMm6~n8pT^La{g{HUwo-BqOO@#S9#gr6HO+RBBO37{yr~D)a)V z=;}5>ECh&T2uWQWDCgd<@N%Eqg3A>J?eK!=c{J?`Yx{Zb%=Q5M zd?Cyhtq@T)uj%rEss~JK*48xkY5Zv|9);SH8+M2hWA&$KrjDk1kWRMSI&Rg z;@dvx%hR?H0W*g{4wTJPpF03I1w%6hGe8PV(@7lzPNuO~RX22cauShm-@Nw9y<3OZ z_Uc9+KRZq-b*ZQuqJWb-LqSDDL_jA8AR6WqLZ`Ko0?82o$pHY&e6TtJ2-o4wfkW{+ z){jq~owXPH*AKq=tAFNeZ@%%PFMj#={=2{XNB`;%7Aaj6T|rR*Sx1r)z=3#>?*V{; z;ab7LgA4ZJEwj&p%X&QERf~}v3?TOwT*pAy>zc6a1SZu0Ub-R`u>>#x%i_k?H=04M z#0XjzZjs|Yag%Ld@j$pXsM-{Jwc?7P!Ie=1vE^t8e zQ#W@F1`K8nK^3xvY*t*F5t;#c0aeY#@^BMICZ5#+H~<>C76SmH*<@_${j#lk-!Whk zBBNYPIGS_Ou4E)vA!KzlCmR@UBr+e=%uWtNbbs5`uEcA$p37&+kzrtOiFSCI1-_j* z;WP89y8>+cw-2VzMh~q3TT!xs6AoSTGi^Xb=Bun6{(BIR{vWYjZS!Xgna_sCF27}@ zmx9Zch}#vc8IF;9rL_{JnMsrQ-v)S!?w-3m4cV~8Z zZ3jq?&Q33usT6Y{4iSOOG$nOHBPF6hY&Zl;9KZ}w4Mb$n_z#aQrId3oCs+95c^n8hSeX{ds{`_CKckAxW+qeJl```cGPksblCoDxVNY&KiMZW;RL7R&X z4yLXS&dASAI)n=V0776w2ldKr z!aQo4g=$t!CC_>tq3$z`3LFs39I#j@795eV5Oin;V0jhM1xo~otaS_k0LmUhD()qd zBB2wL5Cx_-8x|)55keO)7$_>asX1ygRa9VAMiOR`GVj%j1E88i(V_sRE>Me^qB*Js z#SvoyQlPOkyBK$|Z#8Fwwv>yK(EB8!zy@GQN^8ju0R+N9?z6TP2#3T2d@g}~&YKMJ zAoz^AaV0ABBGWM#IB+Eg!R*Cn_rf3=djID1LlTBQA097$@g)M{|9~u)m)-$@=XoB( zuFGD`i+5?GDg=HhxM(g2NJD&Jn6?2Ca7Ymuj*)@gM8v@20>uV_wvR@2&RkMo%G%H+ zG(+OZ{YDmTc!VnpqIBZe`(VtINJWuXmXf=!Po9jC>VQ?`nq)MYmXyVjQ3TbL5CyWak!l7ijspk)5E_~X6b?-6 zjOsw(fPje0RUbm&ss>kECCs@3+LKUvpJ6x@Ndn39()ttkv!X{tNv*TNfAiu1=uRFt zw#gNf@QMU>OZRSg)vNQTZU@80@*Ez+OW9liK;%onG?*j+fJD5tQa2XOU|6lwv$p5i zVAk_?zI3eqd%j(nBe$rbZkP9L!A0l=5V-^;1TQllFQd{Gg~#?7$;pXu001E5k~%Q+ zBB79Y3|x|_YVu@e4j^2kngCV;LeOV01;Rkq6AKa{L#SfigczLI12G~Jio1ishHeK$ zSJjkCDuaZT1_a8bIQS4-UhB&o-F-COQ`LT@nkmXSxttWErrz6m?a%z?Z;waykN?%T zAAS1CPUNHW`RVdPVg+lF3LCg0IU^7bvXaa2ec8>vG7{XKn84PZZ|$lfB0z=&Ok@SM z>`ivR^7dOq*0uBdpPY7mDvnK6M-G@XW)B%>4Blytan{U0ab_Ic>YV%5ki{dLNDC#a zIw}f{B9D-2&;T4`990!zD4M%I=iYMXq$D&XJ(y{Uq4AW+T-Z>}9Nogc7Qf}t1@ z6bDlWEgrF==)`KEITHdRp_}zy0A0Ww6r3IEV!=J-Lb39|3T_@crd^>65ec^F?V{LH zp$Fh0@8Obda@hk#9P*z0atB>Y>FlZiZ++OyBrR7)(UmW5ht}n25jX=3%$d8ZgV9F6 z?QXtJdRUt_Zbnx!(YB$Y|KPS4afCjL%ZM1|xw!H2iz~|M7ih9elfmV)U2==+k(rs6 zY#GP_ECdQ6s`il(1xzqyglxSQb2H^>J*q{lFY{IFK#WpXlUkT1lGGql)iKtLm`mv* z55fv_T}$)_hDF^(B!n;;jfU8B-}hacJPs`;TobMc;NZ0AdvPM5X+7;Noy^bMMPE(F zX7TNJ-@P`9<=NA8{A7Q6>)OqO4<9^wvYb1r8#$;0Iidq11yH?wr!M!NE7RuoCa&$i z;jrQM5tg8fc0P7!M)k?b@jv;!e_U1Je15JDUFsFNX~qn$t@pWY-JQwXZZfK8bzM3O zijXvwb_}tQ6yhGeEje3X3D;E^H5hW?RH`8Rv*~EIvzm9SbNCFY|eJ&-N8KbLVO`|?(*Y&O%lp+wB z=TZVxXkf`zwRn+$)Nn;{S&?YcQdH3q82}jrasEuScnuk5ml0<$WQHOemn&dw(P79w z|196}SsmSG9_8&Jh+E4P%?ADB@FWdzt${LoPV{WS&fO7syMNfTO+@&2jTL`_?Xp9+ zh8TXqBHR9)D6-wZO@)D%*(@954!5`K@~3`jwHj`0R*A-U+feK>+S9F!3z<{G>b#p>Oa8oDB=MuX{g{bm{3H3gI`n^ ztALmwBYR!X6C5w}yn`c{IS_h@K^OgL7zGG1VTe^CfKW=^JN2FC)Nf+gDDju&MJvOp#(0>ii7{>(0Xw+LPvzm+LLAi69TZn7_hJ=&?IiP`_u@E zS41wHK;4}}K#m!(^o58b2{}S>FGlWSLkS5dq9`G-po2IDVsNix#W5J6fe#6k1`yH4 zb+ei;A(fhiv{dd5!>IJ$x04D}w;IN=I&jN^QMR@aD3ed^<= z&gxmMs$xzZp(9m*L?p~i%z&)sr2u+a^DzS)4c&C8H*snEyb1i$@ZNynIu=grS`{Jy z2);Ik9el%7Fao+i4{N~?RdBk@F5yrFX)E)7ar|Eff+0Bj93s`2sN_<`DkY7vGIfy< z1<{ce#F(8B#E}h20CAnL59Dj>jyECaEreY`wBfq^yMOC%UAZ0WW(^PpVD5lER5)N} zM0R&gC8bnSafcXV-PCo6B7+xCEX2aN&YoST>X@!+QFky`^D;zrZGcE0XdT|&-F@=( zsF;QrSIaJjYC4&no}5*qk-O#Gm)rvYu@DF%3Rc>dfE*=!<*Q%$^pj7Y-hUuQv7*EM zy;4e-J4X){X(@FTOov(rfI<=jF=x$P-!TV38glN47?IYu0S$pSnnPx!fn#}0tjm^PtXU3lM%!Ynqy(~X0JYkT_wu9lEdk;*zh5@V1`0vc4rv(ace znnD3AklWI&TGeD~U7y-zsbyMuAVstxOvu1Q%mh7#p`Z>i6EZOgGjZ^BK`t@{Q!NIL zGyp0E79mC_a8fgO=MdKn84YD}kdYXL!3OsM1-S~$1a6iKV|3yUuyZetL+p~=f!2YB zp;Xuq4x}Mcxaos1Xc0`!9f=UJxaE{{DX?K=a>*%`Dn>zSL;_kZSPPCuRb7SLx3Ao~ zu{b`j)eoETNUaLhq>hng($uA0MSzAm0tz!DfVpWVLJ<~`7%EkFbJwA81qe|LQbozd zd{cG749v~V;AMu(FScb~^5L5KF&GkM!RZpO1UNv>I=%Dxz48G|wqD-m$<7ynvqZt*8uN;gVPV_v?+}Ni1gf=TE{8bz)j7D!b}9WTP@%z`MkF4Pg@MqK9Cck{VQ4ndrVa~)0L+e55IeV( z`NC}h)?}O3;qLz4E4QwRDHUsgcE{7(`}=Rb`TF7BxabnuI7(7a$tz+&h!QFiL8>{7 zq!PpKqRnl|tK_8&IOZD2!Z=LXoZSPXL?%WSlt7Lv7GyydA_5W`us&3Po$~@8s;h>cQ8OF8fNJA+m!NfqX!Hh@*%(+>#A$p>3G7L8b-?9tP#+@u45p( zzB}vAPj1g9F{f+IXv(N)0bIMKn0en)&IglGFteO$5ldM_s!-)*TA=T<2on*r5HT89 zDY;KMC659?4xr|4uo>I%QY86>mdoX7dkY}zkhmZ)ZRRV4O~3$%7@tRWXe%SewZ-ze zc?`c`yKH2I5CEvEssRpEoxuq)unf-)282Px7fqup;Bwhex=ia1n`}i&SGaK;>H*=9 z!-s@~>&XlWV-RseRdrw27Bh4Laxk-j3LGH6AcrA3Ni?9^I`GUqbTo%j)J;_pja;fG zR@LO<;^N}$JTwyonlCycF^uY%ocWvSbOvH}aG;4AMV5+K^ds{!?;pq*PA1}ow2B&?f z5rv3`jLwRf%)!828HtFexIy>@69U%34O1dB zF(*VZ$cxpgPbFngWTd(p#kj7+SH+4E3aUqo6@|d=uHfL7lLHhaLJZ7|!pP)^P6~_! z1muD|j3j2ZLZGI(WG(9I=qNsjI}i-f866Pa8I=IYiULt+Vwgl#O`V}zB^Y~H7Knls zVPGn5K*ogXrf#llmxA4gJ~8Nc8Ib@9$&84aPb4`~`WcK;U z0uaO)h&J`ThB1TYWjK7W_Yl$1VMA2EaMFQSdI`IH`M@jSGVF;lmQrG@bIviww(S9+ zl$2l{Fd`zrQcTg^g~-+g%mzp!2ZO8GTbDuO@~x1|>dDKSZKmttOFsC8I>=OknJJK4 z&~;hcA`&)5AkjBPJscT*IKOXTb8tL~qym6q>h7|sx8knn=W`;udF^^#kG}hZA03~4 zbmP{m2ZuKbEZLwd3Qi161ge(%RFA^N+3C*yWYu4o$a!kN_AB2wdwBm}{de7?XHRG2 zQBq46i{0_gpL*w)e(Q1yj8X|QXS0Gxfdf#FP?Y=7aBPH`hnU9df;5|#p~mo#wB?4Hy$}L0ApOP2EbI%qfP+iBO$_gMP0W0>3u`w*B z>lkk_0tYu;$Nq_YUD}FlC@$gX<}j2e=B8=-lKY%=!>uwA6PLalhrqe75oZaK+7u$hB5BEhvv7PcYe?P&+9+x;`%5CFXBplsF8&%Zbvv$Zw0 z`Co%Z6xKGS57`uGZus0syTS)wj?i6h4F8?K{dcaQ-R1uqKycg`NVt|n022?U7PE+m zZ7DYxu$V=ZX(RDPg$J2(ygqayh94P~-h}5yB zsz6n!Rvc+H;c60MBt%`Ta#7RbV1USgrl`gHLW)ep1dJ3pRw5O$pn3u_W+EX8OhO7JZkEus*$L;LEshVIpy9}Rg0>68T#isyuGCk5P%4I zUABf0hJ;xI2ZU~w`kc&NLWnUk5e(FCNxLzQ498@%k-Yuo*Z$i7`mcWJ-7iJ(oR+05 zn+E6Y+0Q=w5jSw&osC4t4UB5NzF!~g%I+-OySw+7e&^5q`k(&g*I&D~zgJa~SMz7k z_hYeaCDb5J$k2s+p5m_J#xXx&L@eFq33FjgevDiWXp7!FZ? z+@L{3WJJQD1}g!g0~&2+W+EhFBHaAFkj`_-{h=$!GHlOtFAd>21%u!!B9Vm=&5ElU zI)alwH!s!*g5X2^=ViEYd6Unx=q~$I1D>tFPiVIGn2^AY0Fa1sR=DbV4L5|r!9lmc z=4))Pyq0L5@7=!l7ytTy{{Q`d{XZVP_vm2MIG0y%?kq#~X#Vi}&TfT7W~cLc zuLV?%m?h-xt;d161Y`zsbRJM~xGS4Lol*pI2U9Xeq=*y<1JW}qsV`jet?{U4s);an z+I6Yx1CBzd`qmbU-Yv|UIxs;30Srh+R7DcOPy?|8DL5c94XhPVKqM}iJv6mP!K%n8 zh7kK@TF$%P3J*B%6#%Lh-~#L%0*efpBMxAUzy#zb$&t_zkcm+O4QcBc6;0hTnPLGK zu)vy)iiA>WPSz!DGdDF>!MwPtl@wG*Ht@E@2tB|`2F?zXxv7E=30y-eH8P;UP?8q` zkpM-+6o9abah)x#UcBrO#gunrHRf>l#`SOf^1E2c3Nr?M`uH*Ab~Qf%PigV&`r*B2 z&pri~$K6Um1NzzNaf~rq;&O29+LT1T^3`uHSHJY5AHV;}M@NqzoE$wqzJJ`O3|;nY zU@RG>E1s2;xuG!=q3ht@t?dZ>EOq+FZ@%`Y5J8ZH$#N-x>XzM#gE;~+A`vhQhBFbd zF|n!+!|c+)v>`WYuyL*`de+C#_VpEJWGH$s9Q(c(5mjU6=OK9}LS$z50zt@?QeZ+d(h?om*r#x>#+7lUI~PQmIBPdOw|nuiPrTFw+9aq zwskFaT8kP6ub(!01R^3P02ss$T0pgc7j;9X$t@+cVhfzZv<77Ooo7x@PzE8Qh z8jBzRpqr_g!axZy4y?g*YTn(fm>C2&bTu?^7%FDFqiLCqq-bq+YdV=R&q9m}V~LIM zWHJr0S}fZ6qN}*BtETiRVnkO&CAJVK*1=axg*G(KpZio@tIbv*>>q>$UiK9EA1mZaO{blG)ZiYw{C`67`$fP6| zf`Ug`7;2DuDzH#LO{JhzU(dP-w^vTMH+N9Go4< zaR^VqU_6F!>+UNeQdEaZ$yO8rg2>cOm&=36iyAKck$%u!?s_Z zJbRp17ZLR9U;e`C^te4gKRbE+;KTPU%^|OjAAWT6+Dy~Rt^N6@KltR+pG>Aao5`rA zFTHi|m%s9bZ+_#Q8t7m)4(^tcl^$Iy@hGT{JQ&x5n~3YokAdvGVh&s(GGCaafnoh6 z2Y`T3F%P_9R!wHbT-Q#F5D`KcA_jyYfry8=h^|9On~=z*l1x{XwHy0|FB=hCpc$m_ zrVwN7QwkxfDl?m^FhvqZAVfz4L?mSAVMt&88z|UI-j=^;RXhimzrAe}UD_NJhdKpA zK#~w>xWzIM4};5w=*-9jA~e`(%)~6~6Ec~v&*Sdyx|MDU8<8;&MwX$2FjX;RoDZK1 zN!PC?v*~!c_x^jIU>~ga#k}3yy}suTc5 z6p(60!9u18hRDL9cB&PtG7zyQ0V}5HBw;n{(-)iBEug!j$zB!n^4zpT>UixDU_?SS zFFivNPa#kU%z-5Ys#s!ZMiS!$1Tyu#x5!57(}ihkT(FK1V@569Vbi0eI3sAF-W~7Xx``6H zzEn-KoSzux;#$w9Z7vw7O{<(&g$e;hl;F&Rn+zUQrxF5CQC+!Z1S2FjRyFGhtR}8R zst}o}6iq2Dx|Q|4raqSf?BE)TPTXDUkx=99js5Xo{~Q11y)V3ec>Q2`adP_Mk53=` z_@kfx{_^DUwZl8}RPEe*Ud*X|s*B^++J1g= z3{XvbE5SGS#uzh(w0?A+?mW)XPuCwYqM0TN8b56yhSO`TBqQn@?y>Hu{(P%oG$f)Vu zI#WU>*V1XMt953>I=7n<1%OJ)m-y6ysbEAJO5AV#k1K452)hF@sTu&70yC4tsH(iA zab2TYCBcfqW_&7`qk|&@(ol!c+&2MrMq(r;B43j_bQxT(Ag#}Eb*XL~LH5!Qk^6+{GtSXZHL-00K$N5t$7s+Mxfr3XtP2)PS_ zyEE~?IS}!x?+$>Y(Vr)j^)06Y2s&T8^1VcmuLdQyo9T8yQ0huWfMF32zYbT8Fy-}+B}^LPI0U*37+mDT+8;_TVcM?YonA+4Zj zq^j#uRS8q+SM&Y-@oXAz-aM2jMeXcte*gXh25XvXHkmNXa^AL!PP3k!oS3GaX}z=C z^xgccUw!L0e&d_FyY*^u(l5G6&4;t;?#?VQFPDpDn@qhJZ0HvY;vo_^s48tT_rU47 zq2mC+ZrR<4AOt4jp*~jAjGZ}wrCiiJaHwKkg^Bka{qf+lY^y}uwm24}sWM_y37RouP6^hDNYBd;Ue@eg4s5>+0XCM) zXKlRAe}v~e&gM6K4!FGNg}%V+T(aRV8At1!c-kDjmN-;RZ3R+S5FE)Bj5##T=w}~3 z>604Lvh9e_G!f{|Y$A?<0}~>mxd91=IA642I*Rem&1(-IeyrWn7OSJ9r_;Tiy|Luf z-no74PyOk4fB54+0M1n%NA)k4a@Q4H*n1EY z)Pt#858i<(Z1N8s0&wIY7|3ymG&&Hmq|$?9F;{e8a&!U<1P9LJia7YM{zt!d=j}I$ z?7g4;)p?)VqTrMZ%ALboyF0TQ**Yva=gx_$ zrmCW3Q=#Yv2&U$UK4eP~3L+sg0c^~DAP1u%Ptxl;GIL7F%tgZfwd+8^kYdy9?j7z< z_uRZ)tfEAT6^GyerR3E2UW@>N*v!{Co`lS_0lCX;?hCcxu6S*icMkF3VKJQHBh@6t zbr5n#fRYD+r^7%gqi?muLuj2h*1=_5*;)|8AOD@d{dcY)%N3Yd*Qed$%jba0iwO1H z&7&8#=imZY*VtT>;miSDycn1{Y1UL!L#UR0c=Ghfk#Z?aRB{rg7bu(KwFH zJf|Mnm}xOz?Cl)(eP`eUVFZA#O6Gzjg9r*x5QL#&8WD~WUpGELJVc+8Rl!66Jgeq7 zs*uDSt+<*2A+vDgY8IREs2Mdx)OG!8(dMLRprmG|XvJ+nH#7wF5si@mSb>zpB?3pF z05~F!M1e3O2b4e@h?!W>X*~eU+_WILFeza(t(#dxHA4W71~D0S7F3ukZpzY5pDr(+ zt z77jv?&N2e3c?JYQ0u81Wz)g2yyZh#y-}x{9^J}l(Y191p(MR3sk#t9^(^JYOjsi44 zJ0U2w@RKK>?Cnoisf$gWU8mF8jhokZXR}K9^ze zs{H8b{U~_z`tIxZZol!$jaTp83^hGFIXa(r>PeyW9tedCx!w~D`e0h3u+O?fu+j98iWV|7|P@Ho2G2QvqN|*Tl8*#El6AQ4pBO*VRRaSPpD8`!Hzz z28-r15|%4&&YIB0&!}Q94SB+~xPvwV!Iy)}CF zs+sQI`svSq-lk%}DQn+#0N$?pYdZ%#q#z-vSylre2Zo&4T)?g!?mmA1=jGYat)1y= zaZ<9sa{J!#(ea1x{rq?Sliz&w;K8Jt{@Snn>EowQOW((cbt6@T(YQK#d|XMbpomB; zi0tN`mE0JR+$*34sbUz3Oatu_?I7Mt`Fe;u!E08eY^e2URMj^anjK?5#6TQaJFh%XH?MtheB^XB=HTC{@FP-EEKRr78v|T(Y z^P^mrA*U{-QdLciVKSSADo~Uzb)o{rU6l<$%~cUf0PGnZA-g3&1vl_viP&h2n{Mlf zKyIo8TzwNnMM95c!%t#J6MBkZ+ z``qP{93h(vSEE_;{)e9&pIsn0vOOT2NRJ&CvjYaC9GOnIYdEh1>UT{KvoZTd%$S`uXzw{P_M(Osk`h1yjpd+w{f$#?7Hb_s+yV@KK=9)W>$s$YuB5}0Z9!UfBw_=n4uDByG0;! z4TO@5t(F-nxB|0eP3Ox++b{ZVDZy{vK78}7SMJ`uaqH$J#L$R&>Rfwr6$f!46OlBi z<9NsqLMH-1j8cJNQ3c?-ZYJYdsG_-dedp!`h~`!d+(QVX@t6p5NqyhuoXix!2cZjq z`o`KH#AQT0q<~)rm+iRQS||g>GgvVqg1}qqbExh#zyTo>IGT>Cnh=D!sKO=zXjrvt z2;&SSDfxPdL0TIfYwd~ga|I56>vwVqq|KRDe*Q|&b)G%iVhzHjWgP>{-VI7nT z!o{+hLIkMb`u_BzAATpdC(W#y)gv?_#e?0wUA zaS>npUGGjH)=U!YE$M+q094PoVNiB{h<}WzQa|a`j?X(06YhG_x_*lG19B>&GY}vh^{@ZAKl@w%>2FPL9M0#@=BE$K z#lug2{+;)J{=RB8sjr`%w(YX-`>ciCMoGjul^il~a!cxUGzo2ljysn6C_Q5bW#Y?l{(yWF2OU;ENqbtrcZCbLM8 zmaH}sXe3ll2&~o;3B?5r)-@J(qU5TrC!eI2n&(75kje zFD?QTfVmabWSZT~9nDO5OJ%I%K^srv1rp;_)cvgMj)=!{5=Z0^aDqdGxxceGH~ z&1lRxDm|1=bFVC;@BP6~PadrHMmHi?DKAlS)wuT@W8L?CuQ`F@?u2ZH=oo`E;1hru;`M9O-~OH7 z{=%<(9oXmR&oo`=>hbdQK{0;%XnuOspPeiLaWP+L;lsnbZQm^}=A#P8JGbJ*eUa(G zO{39xJh`|yBZ6Q3nS06^31U;NF3yP|1||kXUyE3Rut_;VL*8ZtF>gnX<=+Vy3ba!Vw9mm|R zcE%GjvSKxonibQg9zjvE{^5t;xiy8!Zd0s(@aadDgzNhU^ON)4aTCFgp0#_E+S2Lr zG<=G-qwbp?iF%S{ZUSPLS7kC^s?%!s+lEIt}H zRfwLvy=b2u&sTj>YpOa5r5LkRFy5QiJA23T{>ig*QXD~;I7Kibh1#{Y;(d$_6=uaK zUUb!2CzBDeN%Yyy==${=h%t`Gqgl1m(>RV!T0l8)Xd*?;N&~eQpU;w8;SihB6Lc@dsw2nOP+X5QUs@%b|XXo?9 zGW7*y^y$ZsCZpMOf9G5~6E`%}tms{z6a=Nt#WWRCCCiA)2#i$B!H|gsg&exl@5V9C zdoE>nQc;;V-oA5h|CKji`|bbYFHi35uI!?$jz0e3w;#Osv&F?6^UdR@i}`tL#;Nty zss!X4*LRC9gXrGD?0hkY5GK=IN1lutW*?8o&n{Nn?B06qO$prh7bhq8-I;m3y1?su zcXC^n%T-PxRtGgW11(p*V_3HR`T2qoyVcy6C!Uw=i@SHnZ@e~r?at)xjhU@Znotf# zxGO$3t6hX^1zGlv0+Ug=eeEDE7N@7jAx0O*s`kDQAq0u$o>Q+m=f3Ti7eel)r4-F> z3T}hhNk!MCxJ&_H?G_EIpSzPOfDa3Qu7}=bkKsz#WUF*VKr>KvEpEsF&frZIn<#zT z2a0H*%!q`JuI>t;u0zmjSWtYO7O{5N3GfBWAbB;vJFlT zy2Z`@t1IbUDqrfC5pMfyKWi>++^FIJ$OujjT#BbIGYJL*j7P_d2aisQaxTV$IaIpY zthsaJFp690Vh~juN{X`y-aPUJ;3Rtj)2KX=6OWELvPmaC>ZUz}Ib z?%lh2|Iz)?XdI)o?Zq$u%2zxmO=Vn1;1IzYvx#bzb1fQ# zg@**AvRIbBH!_*->_$eUQjJ3#SJikln(hc!XOB-JaDyCy$X%fTD+u&yMabYFL`@Tr zK+V)B_eLbUyE~JeU6KG%AYdw40s{J?D*{*) zvw;yCiw^op26j+%qM@{;JGu}txd0#zS=kh-x4- zA8Wt(0X+VTvWMB@!{IdGbn;zXA4fo$p8Vp&a3*#KCb0r-o4}C*5Jfe4@BRB-HqGj)U><^_-#&`cJcB3KWs*e!y6aJhgKc7FHpFjAOuYQe--v8*6aSS_?Q52q3<3>j3xz(iJ7j_*X>=5h|@390d z>;R5^(N$Mc=cv+PL&43HOKuLv&Ca+UO=i=*I#kCWKZ%Al5WAzRVRkWRcPUj>F$ITV z?Q38N6*qw=sq5#9<&!7RK6&_PzG`D5^|&saI0!|;K_o)N7@0$Y-VwkJ+`tsv(U~#W z%E7F3B`w>$OrA(Q28>RbDTq`O7{!cK(VS5`(~`lF)_J&=v|p{-?qXGokb2j5)7{y0 zXQCy6Tj?>Y0TGJ;IHA|V6}f>kfPe_V;(Y zZq>E@WIEB5y1o}CHw{%NWksx`NuUT#7%i6h>C@BH=U4CD$*Hrh&x^ipDlh}IOp(5#j(ymkA|&7H%8(ReJ#mU5p`r=DN?+PjaQKKb#F zf7GJ`KaA?b`Am9Gq=gne}A9;W{o)>Hsk4 zTet5L7La?vb!l7JEdBxjPFEIH@{LLkUS8AKH|oI4oRGT{$xyIv zsNb+&=Gj#;xR>kK4(f{Gq9-#2&&kJ4JUV{X_r29|z&Ljo3Eo>uS$I61TvHA6RX@GH zBRZMw_7MDSdG*5&KXK@$vjf1UPYZHjg0!5!^Tz8x|KP!?$d_Ng{=Fak(fdF7m#^RZ z^0UX)-u1oW(zPemv>DZO?n_wpMH2uqbHg$rno8(XuMVB(f}RyTbMz1>Dt0odcxN;{ zoW`cExv7P7vQS9eh7zv|*}$BQgkzLiD$aFU=G?V_MjRL;sEI}BQ&-Z$SIPP~!2=${ z6eTcLWR^JtBu6h+2x~(`G^Djy#w7?LQB|pCHH}!+RgFfLF=rDI;m9IDp4}{EL(ps? zR;2*BBOn8^1Q7~E-70axF13Zd?pF2QI7~);YKceyYV%;gz$1=@EFmIdZ_cJ@sN`XY zS{Se+fc1`qP$O2z)9KDvzy3>Kc=sFU{fVE<#m}ESxW77YYuWKa;`;Q{$FIKr#>vUa zY|^CEr<7t-Lz_mSo*R+N#reuucMtY~uzwT=D^CbtG&PJ>G+-gPBx(YRf(`Sp)=c*2xwOyW^JXJ3odAvA% zJQ_{jeskx|w+_!2`0CQ!W93`5UlvAI( zA*~k?-B2|n!chE(Ic%qP+vN9Q@KOxcgZV}J7T5BVt&uXQT`mWY;0gsxh=b}%fd?DO zoCtV`c$qPa`yj1$+g$QFG;K=N*icjNO0lS+#vZLpP#U@+qPjDYgSx{e|B^Rc^d&*v zC57H)n0S#uhR@qB+eBLwBMQTkAFk`dEyUo4T6%LHH`8%bgPpq>p@14V&KIkT#cFRl zWQ%W%I6+i&hv|4H=hg9Iv3v8@+0lK7R!zgsWasTKf8p%uV)w8PRr%(%+~8&94ck=@&w7?k5zUU_~0@U8Ft=;No$`R!Z#y6j|`M%f!T z@=}VfazP5kG$&UyFa}-MF5w8XorZUUqpcS6-c}jf_OuOPWP=6hfDVEjg=+~-<%PV^ zro0wew!T{tVGyiBT{yV9r=rUOJ)J&|7LV+oulDZayUJXqwj>ja98a#vdW)9-$K%pLKNyQZFn81oqvo~9GE3R`$ zJtV_Y#JoW)EZGs5T2OL8guF>YK>+Rgajb$m2STcSwRE3NZtPi&O_=okJSx6@@3rOK zr}y7`7)N9G)pEHkc^QL`CZn9gXc|+3qoc*?`2|a@82SuVh&kt~3MF-#yOhhbv(q>-uH5!M>WE?_lVq>{1&sKexmy1-~M$NR^ z*(Yhe^vlI+XYAJxClblIHPZ3^?!lei!|UU_H=A1@H}{_%e|&oJ;K@@ABc<@@dTEG}0Uf395fb+rPA zp;VO*4t`%24Z|Xh7T9855gXVPQR1EDX)A=onjT2t%p6eaAWhiW z**SV}K0i9eUJ0~`0a!E@UL z39Oj_`arkkPH>p2#{lR_vhY_ zKdR7BtAP^+<*AA?Gj=@qT*2c{$OW% z=hihL7bJH=U=VZkK>->`&z^m(`S{>qI=ykrWhZHf&E%tpAB|?=<{P^>O8?^b-@AVE z;Le?!M^B#Cp=qi(pP#(>#yzz9*`ues<7w#^jQzF4Ddhg_=!uz6geoN0VrEP%B&vSV zcj_oWq~Iw76t2CR#Ad&0n!s%01^SE$8myoIm?9`30s}Hq5NSfFDzI?$@ciOr<;7hK zkcS{7L5m^`g`b)zwIiD=xE0CuD2(=kjMQlm30dwEWB?^}6lRV@Q7~3m1%M8MqGXCr zl~WDeAde`9h%sOQh)%(TF>n>7Ua!dE?gr>XtQ6f%$@UI*O^9aA!K?SC*AFp-RZ6U$ zy99lf-lVt~1rs)M268L_*}ZHQS|EfUr92^uafUYH( zp&KpceM!U?kgM~HRhxPc1m>!lN;T%Xl5suS8`aZLpzrzxT3I=smR%i61#JM}G6^EO zUOX5P9o*2_Xq`T^_OLdL^zbv*Zk2DtM$do#nuvMP>-%FZmn(Y)%ACk$t@_)bAhQyi z`*b=9Avl18nnCH*0T+vfnYke{le>ePSzk&F!BZxN<7X!qc>I-jzS7pnY)IX!tik?WOH-)1Iip@HDx1Dxo0hrpmr*KpG&XBodDbc z&5?Z2aw8(*!%v=EoX!K*)A87~HS4n$Ko3=|IrUv8P!L(I(jxbL?i%1~hj(FCk4MsY zkGbm>7y58NNy5X{I+rH-<0I@I%8(=_TlnQcHr1Y57 zz)*oH1QtZ~g6KEz+=SE9RmGG2-SOV;YO$;)vwYq`K*XUO2q7>)6#)CPRDwY3%>6Qy zXLU*`nb}T=fkW+OI-Pv+i*I=a^Yf<%yW?^qtMldlY-bDtK-FY-e|Ng-&!@YMLwD!y zVI@`HS>4o$B$<{~JK5Vm7zv2Z_V>>|J>T6wEG0cXdVH|AJ3l|$-`Vx-Y1N)DSC5a6 zUU~DKllj7Tck8|VqbFy-{2PDn{QKWka{%Jdbg7X0V%`(Rj~_m|e*1QpjL>51PAHWu zJ0CTCa&&B`?Rc-MCQ>Vp0*=S{$?5xVe&q`X$E3xZYV_fw#p(Ic;^<+by`fh#A(*Qw zI1<4incIwxOG?xY5xbd@$qZq$rsZY#WHY9=5fT`P$c;twd`PZsqT#y)HV~bg(DHWN z!Mfb1Z_7)&J8gWN;cA35H2d;+mgUNbC<+c45aM5ykbb1_)2&KD*0?Gk{RdenO8k{2T7fWM86oA5v?tXH*x^?Xu$sH;CJ2TArocPJk;V1LuvvY^Z ztFK;v^X5mN{N5M7KDzbA$;0=K_wIaU4$UX`KfSplckapKPriS+``Y#K-m099VfEI{ z>nBHNZqE*0*`NHuGjH^LC^d1MV`l4uJ0ets!2I6^K{YIw6i-} zS-;ACB&@Sa+fyA+y9=r#jGE*+o=iuRS?+r4^LP?-U$ib&tkk@!0I-9$V`N}*2S=Sz zoinzdbm#r5nS@urvEx+|rqwEA^wEq+#>Xc|rKAu78j3fgNyKHs2FEwX?pjj6vN;2L zEVxQ-cOI%JBE=jH#Vb_u)K``Pl(2CL9T%WftST!ITaBUMD?4r)Z`EF#oQ0;%oY+Vv`XEKQX5*&|v$ zy0t6u_DwCs;0L=qx`VTEP1<^1#fps)5#wllOByhA$Ju1($-_s}>7?tr^RxLIx4(A& z}m0AuFLZD!PD2j^iH}UYwh~Asd7DP>gDnLt#`i;ag-)<`tABm)o=M3@43)?$o=hWe*{K z=_@z?%%A=G?|=Je|Mma-p9pBoCz&e@BS+KKT-=1I3`IX_DEYWvhyjA7V1d9Nk^DxFew;4<3_=$S}}0?#$pE87EV>MzF4em>12JFfzB6 z9DslTX{Z2T2;k%-;I3MV4{JF9BAS&;OLc>ofmz8}2>{VWqzX|)5XxHGw+%d_xzm+W z=D)xaxq=;+6C*!^vX{>JoGV`EG7O()E$)_bYGT!POJ?f(1mNnX;Kj7dsR+!lZ04u=OLN9c^3jtclY7b-RbP@YF2&YSHu0M-x=>;yZiR&$sBq?KEd6&z_whSChS4T(!NG{&ZaL{^~d1?(*onKm7RjfBz5b zcu;s$NcMN{HnptMg}0|ScSqAv=yFLXojPkCgJB11k;%$*I)y07ZB#V}d;4De;n9%< z1^_D>0>(PH83$DZ149OY0A(n;?; ze&gM{uiT|kb#eCi?D*lsPk#2{M?cFw-MaZ|(=K-j7Ur&rMz5pAHV;};=CJI({6P!inuyI-n)K#aq?J<7Z;E7 z>g37U#r+2lZ{NII&Gstbi=*S~cVAsC^v%5+|MZ{z{;#qM5M9-p6` zo!z*74FGrQTR-~VKl{qpzPg+*ZoTqK9EGE^<+U5PpBJ$tfRef;r! zVPNRUj3IdLvgM-4FNQ?6gJ|<&T}GQJFqbv+dWm7!S}a>Ocf*EWvP0{HrXHk(GMiV zw(E$%4B7_KgkA3yl%Yj?-j4wx$eT&i6}DVoa9e)7rN zU;4H2^o{Xk`rRM@;f>ojrnBp(^Mz7>?cRQ8-D>G!gt3v2?%zMWei*0Hrmg_w#iI}l zVhS}reR}`m{OHYBZ~fL^_~r*^50>php;n$?ojR9N z(sF)|P-qIH9ciX4jdNopnJOReazWyXxIz+S2{8l-fmr|<(47q#hbsVs#E^3mz=|Vy zSS-`o$+DYg&%hE4SYlkPmX9AkIzKyYqBI;XmS+JO3ZznuI0GbACnUy%p2#yeAOyt9 zv342}2Qx7h_E+Ax`{pu7`FxoPuHC!-&bwd6$ZFX%Gka{} zbZ<7LuBXkSUmefS_h$zL=3O~@`1ImzQB_klxqkgl$?bSDj#UKm z<$SR-8bRtGeE7jX{vW=*m@iH3{=>)fu7B|8>G8>Y)h6=sPk;L1?%p-#(c?$Q;J_$9 z{{BzTPS4v#slxQh627ozL@Xq%<6FsB%z7#|NL>AO3H?a zggPt@=EAOex%|o{*Tw*FaDrl}5pk$Bw^^+3g`$@0aFVa_Ws|rEh-m8!#Ep2y9M#>S zjH8ckU=(DcAsS8V zHTpKOaa;@Q5RkS~z?atz{p`-me#@=s?Rntyyo%j)i3_avrhM4ef>+n zI{BkN`iHlOufO@m<4=Cp>*Ccf+&g-9Ht$aluJ2KR`FwTn?yYS33;=AAe_=86u-aNP|F{Hk`HM_|ti*YkC%PG&9nWR_EL_$Ksp*ZAH zmVKXcHipS$%*?@w6T}fpG&5&G6rrXfrIOHH%?F*An`7f6TP#*5J*v0@i+ji%NG6Rm ztX9Z$wlmJNn3g?rhAadOiojx><&;bAQ!?}b3?j%b1}UZF&W=#L1jgLwvy1N8v-!n& zCn?rgxgn}m#0T}LTXmoQ=x6=u$@QDp7%7IBV)2NMs1BMmFabKbu|YEsG6v)T?jxeE z>rk-XncTd6^YG5~#cJNF`TYFxC!Z`IKSkslcW>_;-rT);EeAk$5UWQOBLZ8o+@@8R z6G275%SDS#-kH{1)dkcTV-&L(nnn$0(*uOS;1|aWt;+SigPon7WO)7HkQ7c%PJaLQ zfB)l;AKcpCfAGms+byPhyCU-O)B6?46TGOKF=71pgHJ=?aWy{r`04!V+3oSI_B8n+ z-GBJVO}_I_f2_rS3LlR!pQkqNjlc1$?|$&}AMNg6`-^|!n-3m-Ivdxg%XU%H+D3Or zLLzp3q0rHGJ?5OVnW?Il^-9}BG%R-nh{LKa&(~Gk#p9%uAUv85Ma0J+#%;;Mu;9lMI3;5 zT}Nur5(1@^2wW`@rRfY*pK04=NXhzu6N!!E%Ap6)Y*L!`|H(hh zVQ+V~cjFd(^69^t>`lM;?iYXj-JjjKb-24X`h#zOZxwFbynO?!kV`SM{n<`C*LIQb z|KT6qd*zM)&ENR*KlNb7N34HXi>r_(z3 z<>KjC*XKB{no-5Us>nnfvV`Ey*|fw)(1ZXz0ji-G7?7bWSW+pnHsG{4Kf5?x zfl3vsVC=vZ$#T_=!gMm4oGdQRA0Hp??v2J(O#xz(D1d4OIC$l1NNg5dM@Rv|Z78@1 zu@o87tI^}Mj+3VKjE)g1DtLT!wp{hMUisqN?|d!P{NUlokmj2Dk)V*6r<8l|xzDNO z#k8J8Gw)Uja}78fjrZT)7Y~m<{#5FCc{d>tp{l=Fl%Nu#md;I^P@O(GIy-+dszq0;{r&ypM~^6_ zCl4M02F*?=?P_UtxO?xFPv8IW#?AdNzxjp#&;Rqke)8dcW{fO>fLIt@4YH}4RqGjj zv*HH~f#Z!^;IyfqFf0u^m<#KQ3NOy_fH+9iw#b42hQwQ43Ya5eWC4I>%E6(QP?NA* zDMbkllu^J<-OS9__LU(Mq70M`7!AVjO=$ah#7Z7Mcs7|#c6MkoYAC`W5m(h12O^uy zhM2UO6&r+jpFx(FIzBHG)cNOq_cFu`*2?hNx)P#05W5pIJ$>{PjQcJlliILaC^XHu zsu~*>>~;fiD2@_RN->~AZ?LSZ?0O=wbWo?_+6UYl*KN*^atSTRk7Zo#-Iz8%!<8zHt6K**%~Q9`=TFlIKYrNHeL5MP zzyIO+!%q%gz4KrFSHJngpFDZ*2Tv-R{lgDFc;(jQ)_$0d4=l z>XgifQonUAd6hM1&FTe+NNS=;P@EXZNlnFREF**94&AcHBBcXc0cNhai6mZBbKadz z*`c(3&Y3I&hX4{o#SXEq!br4BtR{VdHZhOTEE)hqGqH0IdkcsJbc`hT-x@=_1k@)=NHS1 zrzbbwdhN$Q_~BRo%sX$r_15|M`J@_;xLzzS%&e|QQjbt`Ar`k@jW_F)4dUAE&>$jk zLd@{Ip5$7L0-L<#7X}o;rD3#XJdqK%DqA1~->mWIP?1bRn8Zj$6*?P2&kp8520SDg z(NLt^GHliYu_2H(STJ@uhAc-<&r|TyV-;NsMgi2K zOXL;#s=|!q?0{ATR(liE^q_AGGkQ6$YnLiQU){X(Mm4@M8eLDu@$l6$88?U5M|W;~ zc>MU?+i$%48(;r}zyE`t=ZAN8)KJc#Z7tc)NSxMcJLeY{$&Sv9mViKP%zJ9A_yqSJ+=W^IDASYZ^hM5sp5dK3{5v_L2bK#~BuoRow~l3O<8vrBf6d!LvkBd8YB+;y#?Bm$vn zt&&HV5<{}mGB+#{5RG$01PTyltb`gwgE+PpT+_;I+EhC&*-B^7%-AH?RS-#vDM_eW z5*U_cBsRt!)bn@WefN`}{~X8Q4QHl}vtSGpQ*7oI3a^?(2v7+VkOFrGIb=bUq9`^m zT(Ef_G&J+Y3oktXO0(Fxdsny(X|a9(=E31ZZjUSm3z(Xq3T0Uufm8=3Fhx;S3lhzo z2O+dZ1Y6~XtKPUYxnCUYg@)I+#wn!-JNI|qzcy>)6VE^2LxUU-?>{)Wzr9lQ%d%Kr zUFV}YsL(M^se@t3vC6Z7BU3FJRL#h5u8)e`EN}GM*p}ALCP!D!o$vJqM~9O})1~L0 zedporwI|PPT|9qK%@F*>$DaDrZ@!s?jrY0h8JkN4i=YUeHN_eLP7|I!xQygD(_TbU zO5G1c#JUea+(&PP(+#2N}c<^T7ugcC+7iKuEDIrG%iX*!uN<~6g{u>nWcSOLjw?!DJkDRzS~0iv};2FM^0 zs04&)Y)UaI0vW4G(eR+>EK~#&kZ8=TEU;}CXlOKE-rJv*ZVSp)=q=4OURYjw?vtN* z_l@tS3`b{{DNlaD`7q6^$@+!m^P3lMy}7-8bAnpVCz9oEeY8HQ!%JWL%F_DEr$7C~ z)eoKf&Y!;g&KnQ*?8?QpwXL%~*JE~b-J6m_2M$q1QrXMxz_$=QTAx{D_1>W&0I<%* z7*PPNVWS8f+tg{RoHOfdW3y5Z*T-s+2?*U_(DRu?2zA{u6GxTEV7;nVRYeIx9b=me zTWbs&E09ElEFOb{qADn@O!wyx?(gPJPh=)DZD$EsQ4mxN0$P{a;0*OLfA3&7Ix^0n zvBh{C+l66DnMBi|1L7nzH3><lZFv641lL!^y$^?wwcW z&9v9g2E%+b$jYG)EqbKACaPj+8mlzy4=lNmngrUCSD~WFt+iFt&YLD!=M9cm$Ms}p ziB`8(y+KGknM~?tngdsb`BPu%c(U1NtGpYJE5+eBwFP>XVVV+owb!ZGKA%X3lR8i_gH66CZeEPn2 zIaiOS0YCbYU{?*S-Bm?|2Gt-K1nMMy$5}LhXfbe905Uc)Pv(oZ5kOOv9?{*ne&^dS zes40J0f=&&IfZ0GT|M{ImG$NRpv*ehiNW;qd^Qg*%iDG~o8DYq4okhZ@5I`eLd-k~ zMeu_+uWhfKUp2*%^YL(>C%g64D<$*IgZ;aUMSbP*i%AaOz4hJm7oHvVp6!p%+}?S+ z92LdjJegt|j?O=^p*@wdPuXa9Z#F$VOooGpIl{aZOm0L)-bi)tAu>Mw%;Uog%eUKm zZy(*9rCCvwj`KW?L=0NUdfpagl~Naj#tJEpLqG?PM{XwUdV8g6jr2Iqwu9v8XykXDG8|0HZ()4jFJzF7=C1MoYk1 zOkE?EtJ^k)G#-pCIc1>eUi8=0e(MWge6Z-(wYGIDK|~-XVM*2@r!E3pL=q8Ndt5@)iR(@mld>$GvsJa|sNa+4 z?u6AvB6LJ224?8Y&>e)pL`FnHj1201Zk_L%ek6u0#F2FvV^L%+Got_iN?aTD9ml4g z=lucZoSH`e4ZJ|M?(-fo|MdNQB*$w zfV<7-)T4AVO5t>cdvrs2^bJruo7CwiLVuWwKAw2Y+{JT(XveyXBtxE)8i$j~WU-i4 zRb{d)Ns^Xx=aef;Yz-(xKqg}Vu|wC5D1Z=XzbL(LkDKhA5u==#G^G?IMUfO!iz*_M zrrC?KAhXa!i|TITc6mvOW?U(=Z_g{bS+h2SA>w9TqbmsC}&zO9e<(y@t z$w4x%$!)!ejm?a6PL(4^lX+L>7NAYctf*iJ9DpJ4rS<*dh0lMkcX8BfW|<3#^E_*s06obo%?)&9yZ@=EpCM7L4Hb#@Z2URt-xx0J!F0*Qzb{{iH7Jsz5U3?l(-rdqV(C1nyLa!w=H~ixzOp^5 zq%fnUl|JQdwJ^ppHci_S(RgKCH-Xa!tBXC{-E&zzJ6hy<9u`HJZKPJcb1IF*B$N@J z)QKP?nn$gcZ~{I(IyD~E|NOU{KXQ5mJ~~za08miL5*cGyB?Xqm7Rgx)#)`n*yLTs( zNxi5`LrAKu=vu^JEIW^&NhDcoVNHpHL3M~I(ON}Z zq;x3@D*542@^&lF&TU?#SKfY`@vQaW%8{}CjVp5d#=VU} zOc6F_&CbKw-uAp&9LBb^=<@{SFxz?i?fKq=4?p?Dg)F0w0F$xPyt9%%$ z_04q#3VAkF9)1NyT;8=Z0DyF_Nhu}g zsLLm>>qae=wqKT6lQLt`P-0SBmKjInEHgImm7}Hp?duQ6!=;D!9uA8^nAKiQN|JlO z2veU~jd5Pj$4f(lRP=^sT8B8xdb9|Y%X@9&UXdFWg$U#kFeL75qlc44U8UZrpMZyh zqTkD2dgYa!?L!2LQ3$=Y&e_5_rx2?Ot2$y=9`FMoL-%CKDIfHxaPE=Q$(;U{lOU8I z9X%gBkKL21AGD?+6DS&V9z+F@5s}>F=x}{~b!la|KRf);M?d~Q_~pO$cmH4iFd`jI zT4v3y#ms^7bUyXUi@GhG|6sU;`J!F4bDg@(*YkYP0}djD9r7!N$)0u>;HirNegHZ; z{_klk$`AeQBR@W+gp}Y>cT$(GB>;fhy%cF|Q>YteCUo9f%!&sO58iw4z3JqrsgupT z%dEFvnGIm(a&NqF&%Y{-a5vCI@x3m~vd59)`hi$tQp3jd#qj_rgck&s=tIy*YolyR&z+due6k?9wUSVbRjenghQH#Y4>$EMeZEbb;Xb%MQf?iIBDDUi)YSW z7~eg3xVClS>I={2eHqXkZ^ z&KLvG)wZ5Iq)MmSxs$Y)4>p$%E{TqQIvGG+s)7Qkv1lE~kW_^Mh%THvbL-ZfrM0Eu z^2$&A?9VodcMp$#<*)zRAARX74Qgtq-VhRH&H>`m(o!{Dd@x+v>WI*D0*M*0n@U1~9V--c^WVJb-ET@sWr~3&LG)ZbE2ivG)hG>nj zsz~abku8htsuk7zlc6N66Cx;~N!OlT{v9!9mHa|L=#TysSENy-I z>6+jvT@!-bJ!QkB1+NHs=Qg3;F7}XJhuz+AM%aL42(qb?kGi!TUZj3R>)Ed}m zs6#k73P*!{q+q;BmBd(}QI3et7}N|csAU7uDtA&@71flIh#&$wYn-uGg~;UUd)6R8 zX0-)r5|v^}y*0{c#9|PQNfLX?$x_=Qu@a*fgJ20WX{y4x!uJIjDoLndD3N$)P@sfN zVj_zS;zzxY{mf^seEf;`AKu9~*B*cFsk@7LXeZ027?-QO-Zrh&d$VMuO?dIj(>+eR zH?Qq%-!R4qaAYO)h=Qn~oH-8?QUI6xrO`+!tAp(AZV$v8gGfQOC1jg{L}=So4vK2J z$Z|S7*j`yKLo*wV^T}kAdq<#a8-3+i_DxxgP*Z4{x~>JN=#^Ddp#cRL4o4ttd?uAj z1at^$fUL15&s8ujjmKv%U3lWjXR~~;XeM`erU{GwXl#vF)eu79&?(l)T4G}1(IR(G~M)!91 zdxMfy*0(l3^|{afUw`B8J@?#)7K_E+_I5QrymDdf?Aq3i8`q3VQ&)>c?QC)ST-$nj z;9ZVj$qBc0tmmdn!RjJp1W&`Rx)0wNc=VlqR3`UBv@{$W6!B!l5CC*t=syrR^8+qz zK_U@IQQ8m$A!+) zk#M`18X5sIc_i?LET=#S2&4=ED9p;<80Xw^k{~G=RKf`4rjxqg)0hs?ggk3m4wGmb zMl5rYq-aGvU{RLKn`f`Q{n8t$4eg>)PD_Jod1cre&{j4~OV<|r(1$)Wdi(nQvR|yb z@zJ%(XyxIv=f~&Qo_pu|{cG1BzH#T?Zd0x7jXu0?S4LZdk*OzpVLs0?Z;gwy*{JV0 zM^aD=YM_wZiBsi>xOe?_$Y-0+Zj4vUrmEU{;xlgA)@Lry^N?Z+ZGvd~uAlWQY_U~B zCd7;l7%;gpjwCdS3Xv!=l1iHrXp}^dj1litlfwi`zyJmfsHg#xTN1RQDJ2jxD)}%s zXf<(DN!0`)#oW})$vH^W^Suya0MR~P{P1HJKla4Z<@IZaH}2nk`^xO2na|&T=lvr% zlEcZRr!L&Q`EYe}eY|ph`|x1n!dbgGxO?qg?=2bvQXv3hvY^CCT5S>;>;jh6MOT*A z7p36d!Tnyp$P2?#bF5L5A*rs2 z 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
>0VV_=N1goM#R+B6iP$XLUhiqn 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 z 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%0A0X&s-$fvKw>K9Dk5m2CR!?P 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ⅅbh!}hGo)UQRQ}$;1rbH0RxUTPms-mJ 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 O0000 'production', - 'mode' => 'development', + //'mode' => 'development', //'mode' => 'strict', @@ -321,8 +321,16 @@ return array( * Post processing of images using external tools, set to true or false * and set command to be executed. * + * The png_lossy can alos have a value of null which means that its + * enabled but not used as default. Each image having the option + * &lossy will be processed. This means one can individually choose + * when to use the lossy processing. + * * Default values. * + * png_lossy: false + * png_lossy_cmd: '/usr/local/bin/pngquant --force --output' + * * png_filter: false * png_filter_cmd: '/usr/local/bin/optipng -q' * @@ -334,6 +342,9 @@ return array( */ /* 'postprocessing' => array( + 'png_lossy' => false, + 'png_lossy_cmd' => '/usr/local/bin/pngquant --force --output', + 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', From c5de59a7546da2d55017e47347cb17bd3244d8ea Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Tue, 9 Aug 2016 13:02:25 +0200 Subject: [PATCH 42/50] prepare to tag v0.7.16 --- webroot/imgd.php | 94 +++++++++++++++++++++++++++++++++++++++++++++--- webroot/imgp.php | 94 +++++++++++++++++++++++++++++++++++++++++++++--- webroot/imgs.php | 10 +++--- 3 files changed, 185 insertions(+), 13 deletions(-) diff --git a/webroot/imgd.php b/webroot/imgd.php index 18ac340..4f22a85 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -38,7 +38,7 @@ $config = array( // Version of cimage and img.php -define("CIMAGE_VERSION", "v0.7.15 (2016-08-09)"); +define("CIMAGE_VERSION", "v0.7.16 (2016-08-09)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); @@ -217,6 +217,27 @@ function verbose($msg = null) +/** + * Log when verbose mode, when used without argument it returns the result. + * + * @param string $msg to log. + * + * @return void or array. + */ +function checkExternalCommand($what, $enabled, $commandString) +{ + $no = $enabled ? null : 'NOT'; + $text = "Post processing $what is $no enabled.
"; + + list($command) = explode(" ", $commandString); + $no = is_executable($command) ? null : 'NOT'; + $text .= "The command for $what is $no an executable.
"; + + return $text; +} + + + /** * Get a image from a remote server using HTTP GET and If-Modified-Since. * @@ -1260,6 +1281,13 @@ class CImage + /** + * Do lossy output using external postprocessing tools. + */ + private $lossy = null; + + + /** * Verbose mode to print out a trace and display the created image */ @@ -1295,7 +1323,15 @@ class CImage /** - * Path to command for filter optimize, for example optipng or null. + * Path to command for lossy optimize, for example pngquant. + */ + private $pngLossy; + private $pngLossyCmd; + + + + /** + * Path to command for filter optimize, for example optipng. */ private $pngFilter; private $pngFilterCmd; @@ -1303,7 +1339,7 @@ class CImage /** - * Path to command for deflate optimize, for example pngout or null. + * Path to command for deflate optimize, for example pngout. */ private $pngDeflate; private $pngDeflateCmd; @@ -1932,6 +1968,9 @@ class CImage // Output format 'outputFormat' => null, 'dpr' => 1, + + // Postprocessing using external tools + 'lossy' => null, ); // Convert crop settings from string to array @@ -3450,6 +3489,14 @@ class CImage $this->jpegOptimizeCmd = null; } + if (array_key_exists("png_lossy", $options) + && $options['png_lossy'] !== false) { + $this->pngLossy = $options['png_lossy']; + $this->pngLossyCmd = $options['png_lossy_cmd']; + } else { + $this->pngLossyCmd = null; + } + if (isset($options['png_filter']) && $options['png_filter']) { $this->pngFilterCmd = $options['png_filter_cmd']; } else { @@ -3551,6 +3598,24 @@ class CImage imagesavealpha($this->image, true); imagepng($this->image, $this->cacheFileName, $this->compress); + // Use external program to process lossy PNG, if defined + $lossyEnabled = $this->pngLossy === true; + $lossySoftEnabled = $this->pngLossy === null; + $lossyActiveEnabled = $this->lossy === true; + if ($lossyEnabled || ($lossySoftEnabled && $lossyActiveEnabled)) { + if ($this->verbose) { + clearstatcache(); + $this->log("Lossy enabled: $lossyEnabled"); + $this->log("Lossy soft enabled: $lossySoftEnabled"); + $this->Log("Filesize before lossy optimize: " . filesize($this->cacheFileName) . " bytes."); + } + $res = array(); + $cmd = $this->pngLossyCmd . " $this->cacheFileName $this->cacheFileName"; + exec($cmd, $res); + $this->Log($cmd); + $this->Log($res); + } + // Use external program to filter PNG, if defined if ($this->pngFilterCmd) { if ($this->verbose) { @@ -5183,6 +5248,9 @@ verbose("upscale = $upscale"); * Get details for post processing */ $postProcessing = getConfig('postprocessing', array( + 'png_lossy' => false, + 'png_lossy_cmd' => '/usr/local/bin/pngquant --force --output', + 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', @@ -5195,6 +5263,15 @@ $postProcessing = getConfig('postprocessing', array( +/** + * lossy - Do lossy postprocessing, if available. + */ +$lossy = getDefined(array('lossy'), true, null); + +verbose("lossy = $lossy"); + + + /** * alias - Save resulting image to another alias name. * Password always apply, must be defined. @@ -5313,7 +5390,7 @@ if ($status) { $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; - $res = $cache->getStatusOfSubdir($fasttrackCache); + $res = $cache->getStatusOfSubdir($fastTrackCache); $text .= "Cache fasttrack $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; @@ -5330,6 +5407,11 @@ if ($status) { $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; + $text .= checkExternalCommand("PNG LOSSY", $postProcessing["png_lossy"], $postProcessing["png_lossy_cmd"]); + $text .= checkExternalCommand("PNG FILTER", $postProcessing["png_filter"], $postProcessing["png_filter_cmd"]); + $text .= checkExternalCommand("PNG DEFLATE", $postProcessing["png_deflate"], $postProcessing["png_deflate_cmd"]); + $text .= checkExternalCommand("JPEG OPTIMIZE", $postProcessing["jpeg_optimize"], $postProcessing["jpeg_optimize_cmd"]); + if (!$no) { $text .= print_r(gd_info(), 1); } @@ -5398,6 +5480,7 @@ if (is_callable($hookBeforeCImage)) { // Other 'postProcessing' => $postProcessing, + 'lossy' => $lossy, )); verbose(print_r($allConfig, 1)); extract($allConfig); @@ -5482,6 +5565,9 @@ $img->log("Incoming arguments: " . print_r(verbose(), 1)) // Output format 'outputFormat' => $outputFormat, 'dpr' => $dpr, + + // Postprocessing using external tools + 'lossy' => $lossy, ) ) ->loadImageDetails() diff --git a/webroot/imgp.php b/webroot/imgp.php index cbf008a..00b1764 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -38,7 +38,7 @@ $config = array( // Version of cimage and img.php -define("CIMAGE_VERSION", "v0.7.15 (2016-08-09)"); +define("CIMAGE_VERSION", "v0.7.16 (2016-08-09)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); @@ -217,6 +217,27 @@ function verbose($msg = null) +/** + * Log when verbose mode, when used without argument it returns the result. + * + * @param string $msg to log. + * + * @return void or array. + */ +function checkExternalCommand($what, $enabled, $commandString) +{ + $no = $enabled ? null : 'NOT'; + $text = "Post processing $what is $no enabled.
"; + + list($command) = explode(" ", $commandString); + $no = is_executable($command) ? null : 'NOT'; + $text .= "The command for $what is $no an executable.
"; + + return $text; +} + + + /** * Get a image from a remote server using HTTP GET and If-Modified-Since. * @@ -1260,6 +1281,13 @@ class CImage + /** + * Do lossy output using external postprocessing tools. + */ + private $lossy = null; + + + /** * Verbose mode to print out a trace and display the created image */ @@ -1295,7 +1323,15 @@ class CImage /** - * Path to command for filter optimize, for example optipng or null. + * Path to command for lossy optimize, for example pngquant. + */ + private $pngLossy; + private $pngLossyCmd; + + + + /** + * Path to command for filter optimize, for example optipng. */ private $pngFilter; private $pngFilterCmd; @@ -1303,7 +1339,7 @@ class CImage /** - * Path to command for deflate optimize, for example pngout or null. + * Path to command for deflate optimize, for example pngout. */ private $pngDeflate; private $pngDeflateCmd; @@ -1932,6 +1968,9 @@ class CImage // Output format 'outputFormat' => null, 'dpr' => 1, + + // Postprocessing using external tools + 'lossy' => null, ); // Convert crop settings from string to array @@ -3450,6 +3489,14 @@ class CImage $this->jpegOptimizeCmd = null; } + if (array_key_exists("png_lossy", $options) + && $options['png_lossy'] !== false) { + $this->pngLossy = $options['png_lossy']; + $this->pngLossyCmd = $options['png_lossy_cmd']; + } else { + $this->pngLossyCmd = null; + } + if (isset($options['png_filter']) && $options['png_filter']) { $this->pngFilterCmd = $options['png_filter_cmd']; } else { @@ -3551,6 +3598,24 @@ class CImage imagesavealpha($this->image, true); imagepng($this->image, $this->cacheFileName, $this->compress); + // Use external program to process lossy PNG, if defined + $lossyEnabled = $this->pngLossy === true; + $lossySoftEnabled = $this->pngLossy === null; + $lossyActiveEnabled = $this->lossy === true; + if ($lossyEnabled || ($lossySoftEnabled && $lossyActiveEnabled)) { + if ($this->verbose) { + clearstatcache(); + $this->log("Lossy enabled: $lossyEnabled"); + $this->log("Lossy soft enabled: $lossySoftEnabled"); + $this->Log("Filesize before lossy optimize: " . filesize($this->cacheFileName) . " bytes."); + } + $res = array(); + $cmd = $this->pngLossyCmd . " $this->cacheFileName $this->cacheFileName"; + exec($cmd, $res); + $this->Log($cmd); + $this->Log($res); + } + // Use external program to filter PNG, if defined if ($this->pngFilterCmd) { if ($this->verbose) { @@ -5183,6 +5248,9 @@ verbose("upscale = $upscale"); * Get details for post processing */ $postProcessing = getConfig('postprocessing', array( + 'png_lossy' => false, + 'png_lossy_cmd' => '/usr/local/bin/pngquant --force --output', + 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', @@ -5195,6 +5263,15 @@ $postProcessing = getConfig('postprocessing', array( +/** + * lossy - Do lossy postprocessing, if available. + */ +$lossy = getDefined(array('lossy'), true, null); + +verbose("lossy = $lossy"); + + + /** * alias - Save resulting image to another alias name. * Password always apply, must be defined. @@ -5313,7 +5390,7 @@ if ($status) { $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; - $res = $cache->getStatusOfSubdir($fasttrackCache); + $res = $cache->getStatusOfSubdir($fastTrackCache); $text .= "Cache fasttrack $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; @@ -5330,6 +5407,11 @@ if ($status) { $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; + $text .= checkExternalCommand("PNG LOSSY", $postProcessing["png_lossy"], $postProcessing["png_lossy_cmd"]); + $text .= checkExternalCommand("PNG FILTER", $postProcessing["png_filter"], $postProcessing["png_filter_cmd"]); + $text .= checkExternalCommand("PNG DEFLATE", $postProcessing["png_deflate"], $postProcessing["png_deflate_cmd"]); + $text .= checkExternalCommand("JPEG OPTIMIZE", $postProcessing["jpeg_optimize"], $postProcessing["jpeg_optimize_cmd"]); + if (!$no) { $text .= print_r(gd_info(), 1); } @@ -5398,6 +5480,7 @@ if (is_callable($hookBeforeCImage)) { // Other 'postProcessing' => $postProcessing, + 'lossy' => $lossy, )); verbose(print_r($allConfig, 1)); extract($allConfig); @@ -5482,6 +5565,9 @@ $img->log("Incoming arguments: " . print_r(verbose(), 1)) // Output format 'outputFormat' => $outputFormat, 'dpr' => $dpr, + + // Postprocessing using external tools + 'lossy' => $lossy, ) ) ->loadImageDetails() diff --git a/webroot/imgs.php b/webroot/imgs.php index 645773e..de7a319 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -1,24 +1,24 @@ 'strict', ); define("CIMAGE_VERSION", "v0.7.15 (2016-08-09)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); if (!defined("IMG_WEBP")) { define("IMG_WEBP", -1); } function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { return; } $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif', 'webp'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at + define("CIMAGE_BUNDLE", true); $config = array( 'mode' => 'strict', ); define("CIMAGE_VERSION", "v0.7.16 (2016-08-09)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); if (!defined("IMG_WEBP")) { define("IMG_WEBP", -1); } function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { return; } $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } function checkExternalCommand($what, $enabled, $commandString) { $no = $enabled ? null : 'NOT'; $text = "Post processing $what is $no enabled.
"; list($command) = explode(" ", $commandString); $no = is_executable($command) ? null : 'NOT'; $text .= "The command for $what is $no an executable.
"; return $text; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $lossy = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngLossy; private $pngLossyCmd; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif', 'webp'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, 'lossy' => null, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType) = getimagesize($file); if (empty($info)) { $this->fileType = false; if (function_exists("exif_imagetype")) { $this->fileType = exif_imagetype($file); if ($this->fileType === false) { if (function_exists("imagecreatefromwebp")) { $webp = imagecreatefromwebp($file); if ($webp !== false) { $this->width = imagesx($webp); $this->height = imagesy($webp); $this->fileType = IMG_WEBP; } } } } } if (!$this->fileType) { throw new Exception("Loading image details, the file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . $this->getMimeType()); } return $this; } protected function getMimeType() { if ($this->fileType === IMG_WEBP) { return "image/webp"; } return image_type_to_mime_type($this->fileType); } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } else { $this->newWidth = $width; $this->newHeight = $height; } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails(); if ($this->fileType === IMG_WEBP) { $this->image = imagecreatefromwebp($this->pathToImage); } else { $imageAsString = file_get_contents($this->pathToImage); $this->image = imagecreatefromstring($imageAsString); } if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newWidth < $this->width) { $cropX = round(($this->width/2) - ($this->newWidth/2)); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } if ($this->newHeight < $this->height) { $cropY = round(($this->height/2) - ($this->newHeight/2)); } $this->log(" cwidth: $this->cropWidth"); $this->log(" cheight: $this->cropHeight"); $this->log(" nwidth: $this->newWidth"); $this->log(" nheight: $this->newHeight"); $this->log(" width: $this->width"); $this->log(" height: $this->height"); $this->log(" posX: $posX"); $this->log(" posY: $posY"); $this->log(" cropX: $cropX"); $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with 11 float values. Got $expression." ); } array_walk($part, function ($item, $key) { if (!is_numeric($item)) { throw new Exception("Argument to convolve expression should be float but is not."); } }); return array( array( array($part[0], $part[1], $part[2]), array($part[3], $part[4], $part[5]), array($part[6], $part[7], $part[8]), ), $part[9], $part[10], ); } public function addConvolveExpressions($options) { $this->convolves = array_merge($this->convolves, $options); return $this; } public function imageConvolution($options = null) { $options = $options ? $options : $this->convolve; $this->log("Convolution with '$options'"); $options = explode(":", $options); foreach ($options as $option) { list($matrix, $divisor, $offset) = $this->createConvolveArguments($option); imageconvolution($this->image, $matrix, $divisor, $offset); } return $this; } public function setDefaultBackgroundColor($color) { $this->log("Setting default background color to '$color'."); if (!(strlen($color) == 6 || strlen($color) == 8)) { throw new Exception( "Background color needs a hex value of 6 or 8 digits. 000000-FFFFFF or 00000000-FFFFFF7F. Current value was: '$color'." ); } $red = hexdec(substr($color, 0, 2)); $green = hexdec(substr($color, 2, 2)); $blue = hexdec(substr($color, 4, 2)); $alpha = (strlen($color) == 8) ? hexdec(substr($color, 6, 2)) : null; if (($red < 0 || $red > 255) || ($green < 0 || $green > 255) || ($blue < 0 || $blue > 255) || ($alpha < 0 || $alpha > 127) ) { throw new Exception( "Background color out of range. Red, green blue should be 00-FF and alpha should be 00-7F. - Current value was: '$color'." ); } $this->bgColor = strtolower($color); $this->bgColorDefault = array( 'red' => $red, 'green' => $green, 'blue' => $blue, 'alpha' => $alpha ); return $this; } private function getBackgroundColor($img = null) { $img = isset($img) ? $img : $this->image; if ($this->bgColorDefault) { $red = $this->bgColorDefault['red']; $green = $this->bgColorDefault['green']; $blue = $this->bgColorDefault['blue']; $alpha = $this->bgColorDefault['alpha']; if ($alpha) { $color = imagecolorallocatealpha($img, $red, $green, $blue, $alpha); } else { $color = imagecolorallocate($img, $red, $green, $blue); } return $color; } else { return 0; } } private function createImageKeepTransparency($width, $height) { $this->log("Creating a new working image width={$width}px, height={$height}px."); $img = imagecreatetruecolor($width, $height); imagealphablending($img, false); imagesavealpha($img, true); $index = $this->image ? imagecolortransparent($this->image) : -1; if ($index != -1) { imagealphablending($img, true); $transparent = imagecolorsforindex($this->image, $index); $color = imagecolorallocatealpha($img, $transparent['red'], $transparent['green'], $transparent['blue'], $transparent['alpha']); imagefill($img, 0, 0, $color); $index = imagecolortransparent($img, $color); $this->Log("Detected transparent color = " . implode(", ", $transparent) . " at index = $index"); } elseif ($this->bgColorDefault) { $color = $this->getBackgroundColor($img); imagefill($img, 0, 0, $color); $this->Log("Filling image with background color."); } return $img; } public function setPostProcessingOptions($options) { if (isset($options['jpeg_optimize']) && $options['jpeg_optimize']) { $this->jpegOptimizeCmd = $options['jpeg_optimize_cmd']; } else { $this->jpegOptimizeCmd = null; } if (isset($options['png_filter']) && $options['png_filter']) { $this->pngFilterCmd = $options['png_filter_cmd']; } else { $this->pngFilterCmd = null; } if (isset($options['png_deflate']) && $options['png_deflate']) { $this->pngDeflateCmd = $options['png_deflate_cmd']; } else { $this->pngDeflateCmd = null; } return $this; } protected function getTargetImageExtension() { if (isset($this->extension)) { return strtolower($this->extension); } elseif ($this->fileType === IMG_WEBP) { return "webp"; } return substr(image_type_to_extension($this->fileType), 1); } public function save($src = null, $base = null, $overwrite = true) { if (isset($src)) { $this->setTarget($src, $base); } if ($overwrite === false && is_file($this->cacheFileName)) { $this->Log("Not overwriting file since its already exists and \$overwrite if false."); return; } is_writable($this->saveFolder) or $this->raiseError('Target directory is not writable.'); $type = $this->getTargetImageExtension(); $this->Log("Saving image as " . $type); switch($type) { case 'jpeg': case 'jpg': $this->Log("Saving image as JPEG to cache using quality = {$this->quality}."); imagejpeg($this->image, $this->cacheFileName, $this->quality); if ($this->jpegOptimizeCmd) { if ($this->verbose) { clearstatcache(); $this->log("Filesize before optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->jpegOptimizeCmd . " -outfile $this->cacheFileName $this->cacheFileName"; exec($cmd, $res); $this->log($cmd); $this->log($res); } break; case 'gif': $this->Log("Saving image as GIF to cache."); imagegif($this->image, $this->cacheFileName); break; case 'webp': $this->Log("Saving image as WEBP to cache using quality = {$this->quality}."); imagewebp($this->image, $this->cacheFileName, $this->quality); break; case 'png': default: $this->Log("Saving image as PNG to cache using compression = {$this->compress}."); imagealphablending($this->image, false); imagesavealpha($this->image, true); imagepng($this->image, $this->cacheFileName, $this->compress); if ($this->pngFilterCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before filter optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngFilterCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } if ($this->pngDeflateCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before deflate optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngDeflateCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } break; } if ($this->verbose) { clearstatcache(); $this->log("Saved image to cache."); $this->log(" Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->ColorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index > 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function convert2sRGBColorSpace($src, $dir, $cache, $iccFile, $useCache = true) { if ($this->verbose) { $this->log("# Converting image to sRGB colorspace."); } if (!class_exists("Imagick")) { $this->log(" Ignoring since Imagemagick is not installed."); return false; } $this->setSaveFolder($cache) ->setSource($src, $dir) ->generateFilename(null, false, 'srgb_'); if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { $this->log(" Using cached version: " . $this->cacheFileName); return $this->cacheFileName; } } if (is_writable($this->saveFolder)) { $image = new Imagick($this->pathToImage); $colorspace = $image->getImageColorspace(); $this->log(" Current colorspace: " . $colorspace); $profiles = $image->getImageProfiles('*', false); $hasICCProfile = (array_search('icc', $profiles) !== false); $this->log(" Has ICC color profile: " . ($hasICCProfile ? "YES" : "NO")); if ($colorspace != Imagick::COLORSPACE_SRGB || $hasICCProfile) { $this->log(" Converting to sRGB."); $sRGBicc = file_get_contents($iccFile); $image->profileImage('icc', $sRGBicc); $image->transformImageColorspace(Imagick::COLORSPACE_SRGB); $image->writeImage($this->cacheFileName); return $this->cacheFileName; } } return false; } public function linkToCacheFile($alias) { if ($alias === null) { $this->log("Ignore creating alias."); return $this; } if (is_readable($alias)) { unlink($alias); } $res = link($this->cacheFileName, $alias); if ($res) { $this->log("Created an alias as: $alias"); } else { $this->log("Failed to create the alias: $alias"); } return $this; } public function addHTTPHeader($type, $value) { $this->HTTPHeader[$type] = $value; } public function output($file = null, $format = null) { if (is_null($file)) { $file = $this->cacheFileName; } if (is_null($format)) { $format = $this->outputFormat; } $this->log("### Output"); $this->log("Output format is: $format"); if (!$this->verbose && $format == 'json') { header('Content-type: application/json'); echo $this->json($file); exit; } elseif ($format == 'ascii') { header('Content-type: text/plain'); echo $this->ascii($file); exit; } $this->log("Outputting image: $file"); clearstatcache(); $lastModified = filemtime($file); $lastModifiedFormat = "D, d M Y H:i:s"; $gmdate = gmdate($lastModifiedFormat, $lastModified); if (!$this->verbose) { $header = "Last-Modified: $gmdate GMT"; header($header); $this->fastTrackCache->addHeader($header); $this->fastTrackCache->setLastModified($lastModified); } foreach ($this->HTTPHeader as $key => $val) { $header = "$key: $val"; header($header); $this->fastTrackCache->addHeader($header); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { $this->log("304 not modified"); $this->verboseOutput(); exit; } header("HTTP/1.0 304 Not Modified"); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 304"); } } else { $this->loadImageDetails($file); $mime = $this->getMimeType(); $size = filesize($file); if ($this->verbose) { $this->log("Last-Modified: " . $gmdate . " GMT"); $this->log("Content-type: " . $mime); $this->log("Content-length: " . $size); $this->verboseOutput(); if (is_null($this->verboseFileName)) { exit; } } $header = "Content-type: $mime"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $header = "Content-length: $size"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 200"); } readfile($file); } exit; } public function json($file = null) { $file = $file ? $file : $this->cacheFileName; $details = array(); clearstatcache(); $details['src'] = $this->imageSrc; $lastModified = filemtime($this->pathToImage); $details['srcGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $details['cache'] = basename($this->cacheFileName); $lastModified = filemtime($this->cacheFileName); $details['cacheGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $this->load($file); $details['filename'] = basename($file); $details['mimeType'] = $this->getMimeType($this->fileType); $details['width'] = $this->width; $details['height'] = $this->height; $details['aspectRatio'] = round($this->width / $this->height, 3); $details['size'] = filesize($file); $details['colors'] = $this->colorsTotal($this->image); $details['includedFiles'] = count(get_included_files()); $details['memoryPeek'] = round(memory_get_peak_usage()/1024/1024, 3) . " MB" ; $details['memoryCurrent'] = round(memory_get_usage()/1024/1024, 3) . " MB"; $details['memoryLimit'] = ini_get('memory_limit'); if (isset($_SERVER['REQUEST_TIME_FLOAT'])) { $details['loadTime'] = (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 3) . "s"; } if ($details['mimeType'] == 'image/png') { $details['pngType'] = $this->getPngTypeAsString(null, $file); } $options = null; if (defined("JSON_PRETTY_PRINT") && defined("JSON_UNESCAPED_SLASHES")) { $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES; } return json_encode($details, $options); } public function setAsciiOptions($options = array()) { $this->asciiOptions = $options; } public function ascii($file = null) { $file = $file ? $file : $this->cacheFileName; $asciiArt = new CAsciiArt(); $asciiArt->setOptions($this->asciiOptions); return $asciiArt->createFromFile($file); } public function log($message) { if ($this->verbose) { $this->log[] = $message; } return $this; } public function setVerboseToFile($fileName) { $this->log("Setting verbose output to file."); $this->verboseFileName = $fileName; } private function verboseOutput() { $log = null; $this->log("### Summary of verbose log"); $this->log("As JSON: \n" . $this->json()); $this->log("Memory peak: " . round(memory_get_peak_usage() /1024/1024) . "M"); $this->log("Memory limit: " . ini_get('memory_limit')); $included = get_included_files(); $this->log("Included files: " . count($included)); foreach ($this->log as $val) { if (is_array($val)) { foreach ($val as $val1) { $log .= htmlentities($val1) . '
'; } } else { $log .= htmlentities($val) . '
'; } } if (!is_null($this->verboseFileName)) { file_put_contents( $this->verboseFileName, str_replace("
", "\n", $log) ); } else { echo <<bgColor = strtolower($color); $this->bgColorDefault = array( 'red' => $red, 'green' => $green, 'blue' => $blue, 'alpha' => $alpha ); return $this; } private function getBackgroundColor($img = null) { $img = isset($img) ? $img : $this->image; if ($this->bgColorDefault) { $red = $this->bgColorDefault['red']; $green = $this->bgColorDefault['green']; $blue = $this->bgColorDefault['blue']; $alpha = $this->bgColorDefault['alpha']; if ($alpha) { $color = imagecolorallocatealpha($img, $red, $green, $blue, $alpha); } else { $color = imagecolorallocate($img, $red, $green, $blue); } return $color; } else { return 0; } } private function createImageKeepTransparency($width, $height) { $this->log("Creating a new working image width={$width}px, height={$height}px."); $img = imagecreatetruecolor($width, $height); imagealphablending($img, false); imagesavealpha($img, true); $index = $this->image ? imagecolortransparent($this->image) : -1; if ($index != -1) { imagealphablending($img, true); $transparent = imagecolorsforindex($this->image, $index); $color = imagecolorallocatealpha($img, $transparent['red'], $transparent['green'], $transparent['blue'], $transparent['alpha']); imagefill($img, 0, 0, $color); $index = imagecolortransparent($img, $color); $this->Log("Detected transparent color = " . implode(", ", $transparent) . " at index = $index"); } elseif ($this->bgColorDefault) { $color = $this->getBackgroundColor($img); imagefill($img, 0, 0, $color); $this->Log("Filling image with background color."); } return $img; } public function setPostProcessingOptions($options) { if (isset($options['jpeg_optimize']) && $options['jpeg_optimize']) { $this->jpegOptimizeCmd = $options['jpeg_optimize_cmd']; } else { $this->jpegOptimizeCmd = null; } if (array_key_exists("png_lossy", $options) && $options['png_lossy'] !== false) { $this->pngLossy = $options['png_lossy']; $this->pngLossyCmd = $options['png_lossy_cmd']; } else { $this->pngLossyCmd = null; } if (isset($options['png_filter']) && $options['png_filter']) { $this->pngFilterCmd = $options['png_filter_cmd']; } else { $this->pngFilterCmd = null; } if (isset($options['png_deflate']) && $options['png_deflate']) { $this->pngDeflateCmd = $options['png_deflate_cmd']; } else { $this->pngDeflateCmd = null; } return $this; } protected function getTargetImageExtension() { if (isset($this->extension)) { return strtolower($this->extension); } elseif ($this->fileType === IMG_WEBP) { return "webp"; } return substr(image_type_to_extension($this->fileType), 1); } public function save($src = null, $base = null, $overwrite = true) { if (isset($src)) { $this->setTarget($src, $base); } if ($overwrite === false && is_file($this->cacheFileName)) { $this->Log("Not overwriting file since its already exists and \$overwrite if false."); return; } is_writable($this->saveFolder) or $this->raiseError('Target directory is not writable.'); $type = $this->getTargetImageExtension(); $this->Log("Saving image as " . $type); switch($type) { case 'jpeg': case 'jpg': $this->Log("Saving image as JPEG to cache using quality = {$this->quality}."); imagejpeg($this->image, $this->cacheFileName, $this->quality); if ($this->jpegOptimizeCmd) { if ($this->verbose) { clearstatcache(); $this->log("Filesize before optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->jpegOptimizeCmd . " -outfile $this->cacheFileName $this->cacheFileName"; exec($cmd, $res); $this->log($cmd); $this->log($res); } break; case 'gif': $this->Log("Saving image as GIF to cache."); imagegif($this->image, $this->cacheFileName); break; case 'webp': $this->Log("Saving image as WEBP to cache using quality = {$this->quality}."); imagewebp($this->image, $this->cacheFileName, $this->quality); break; case 'png': default: $this->Log("Saving image as PNG to cache using compression = {$this->compress}."); imagealphablending($this->image, false); imagesavealpha($this->image, true); imagepng($this->image, $this->cacheFileName, $this->compress); $lossyEnabled = $this->pngLossy === true; $lossySoftEnabled = $this->pngLossy === null; $lossyActiveEnabled = $this->lossy === true; if ($lossyEnabled || ($lossySoftEnabled && $lossyActiveEnabled)) { if ($this->verbose) { clearstatcache(); $this->log("Lossy enabled: $lossyEnabled"); $this->log("Lossy soft enabled: $lossySoftEnabled"); $this->Log("Filesize before lossy optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngLossyCmd . " $this->cacheFileName $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } if ($this->pngFilterCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before filter optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngFilterCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } if ($this->pngDeflateCmd) { if ($this->verbose) { clearstatcache(); $this->Log("Filesize before deflate optimize: " . filesize($this->cacheFileName) . " bytes."); } $res = array(); $cmd = $this->pngDeflateCmd . " $this->cacheFileName"; exec($cmd, $res); $this->Log($cmd); $this->Log($res); } break; } if ($this->verbose) { clearstatcache(); $this->log("Saved image to cache."); $this->log(" Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->ColorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index > 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function convert2sRGBColorSpace($src, $dir, $cache, $iccFile, $useCache = true) { if ($this->verbose) { $this->log("# Converting image to sRGB colorspace."); } if (!class_exists("Imagick")) { $this->log(" Ignoring since Imagemagick is not installed."); return false; } $this->setSaveFolder($cache) ->setSource($src, $dir) ->generateFilename(null, false, 'srgb_'); if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { $this->log(" Using cached version: " . $this->cacheFileName); return $this->cacheFileName; } } if (is_writable($this->saveFolder)) { $image = new Imagick($this->pathToImage); $colorspace = $image->getImageColorspace(); $this->log(" Current colorspace: " . $colorspace); $profiles = $image->getImageProfiles('*', false); $hasICCProfile = (array_search('icc', $profiles) !== false); $this->log(" Has ICC color profile: " . ($hasICCProfile ? "YES" : "NO")); if ($colorspace != Imagick::COLORSPACE_SRGB || $hasICCProfile) { $this->log(" Converting to sRGB."); $sRGBicc = file_get_contents($iccFile); $image->profileImage('icc', $sRGBicc); $image->transformImageColorspace(Imagick::COLORSPACE_SRGB); $image->writeImage($this->cacheFileName); return $this->cacheFileName; } } return false; } public function linkToCacheFile($alias) { if ($alias === null) { $this->log("Ignore creating alias."); return $this; } if (is_readable($alias)) { unlink($alias); } $res = link($this->cacheFileName, $alias); if ($res) { $this->log("Created an alias as: $alias"); } else { $this->log("Failed to create the alias: $alias"); } return $this; } public function addHTTPHeader($type, $value) { $this->HTTPHeader[$type] = $value; } public function output($file = null, $format = null) { if (is_null($file)) { $file = $this->cacheFileName; } if (is_null($format)) { $format = $this->outputFormat; } $this->log("### Output"); $this->log("Output format is: $format"); if (!$this->verbose && $format == 'json') { header('Content-type: application/json'); echo $this->json($file); exit; } elseif ($format == 'ascii') { header('Content-type: text/plain'); echo $this->ascii($file); exit; } $this->log("Outputting image: $file"); clearstatcache(); $lastModified = filemtime($file); $lastModifiedFormat = "D, d M Y H:i:s"; $gmdate = gmdate($lastModifiedFormat, $lastModified); if (!$this->verbose) { $header = "Last-Modified: $gmdate GMT"; header($header); $this->fastTrackCache->addHeader($header); $this->fastTrackCache->setLastModified($lastModified); } foreach ($this->HTTPHeader as $key => $val) { $header = "$key: $val"; header($header); $this->fastTrackCache->addHeader($header); } if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) { if ($this->verbose) { $this->log("304 not modified"); $this->verboseOutput(); exit; } header("HTTP/1.0 304 Not Modified"); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 304"); } } else { $this->loadImageDetails($file); $mime = $this->getMimeType(); $size = filesize($file); if ($this->verbose) { $this->log("Last-Modified: " . $gmdate . " GMT"); $this->log("Content-type: " . $mime); $this->log("Content-length: " . $size); $this->verboseOutput(); if (is_null($this->verboseFileName)) { exit; } } $header = "Content-type: $mime"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $header = "Content-length: $size"; header($header); $this->fastTrackCache->addHeaderOnOutput($header); $this->fastTrackCache->setSource($file); $this->fastTrackCache->writeToCache(); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 200"); } readfile($file); } exit; } public function json($file = null) { $file = $file ? $file : $this->cacheFileName; $details = array(); clearstatcache(); $details['src'] = $this->imageSrc; $lastModified = filemtime($this->pathToImage); $details['srcGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $details['cache'] = basename($this->cacheFileName); $lastModified = filemtime($this->cacheFileName); $details['cacheGmdate'] = gmdate("D, d M Y H:i:s", $lastModified); $this->load($file); $details['filename'] = basename($file); $details['mimeType'] = $this->getMimeType($this->fileType); $details['width'] = $this->width; $details['height'] = $this->height; $details['aspectRatio'] = round($this->width / $this->height, 3); $details['size'] = filesize($file); $details['colors'] = $this->colorsTotal($this->image); $details['includedFiles'] = count(get_included_files()); $details['memoryPeek'] = round(memory_get_peak_usage()/1024/1024, 3) . " MB" ; $details['memoryCurrent'] = round(memory_get_usage()/1024/1024, 3) . " MB"; $details['memoryLimit'] = ini_get('memory_limit'); if (isset($_SERVER['REQUEST_TIME_FLOAT'])) { $details['loadTime'] = (string) round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']), 3) . "s"; } if ($details['mimeType'] == 'image/png') { $details['pngType'] = $this->getPngTypeAsString(null, $file); } $options = null; if (defined("JSON_PRETTY_PRINT") && defined("JSON_UNESCAPED_SLASHES")) { $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES; } return json_encode($details, $options); } public function setAsciiOptions($options = array()) { $this->asciiOptions = $options; } public function ascii($file = null) { $file = $file ? $file : $this->cacheFileName; $asciiArt = new CAsciiArt(); $asciiArt->setOptions($this->asciiOptions); return $asciiArt->createFromFile($file); } public function log($message) { if ($this->verbose) { $this->log[] = $message; } return $this; } public function setVerboseToFile($fileName) { $this->log("Setting verbose output to file."); $this->verboseFileName = $fileName; } private function verboseOutput() { $log = null; $this->log("### Summary of verbose log"); $this->log("As JSON: \n" . $this->json()); $this->log("Memory peak: " . round(memory_get_peak_usage() /1024/1024) . "M"); $this->log("Memory limit: " . ini_get('memory_limit')); $included = get_included_files(); $this->log("Included files: " . count($included)); foreach ($this->log as $val) { if (is_array($val)) { foreach ($val as $val1) { $log .= htmlentities($val1) . '
'; } } else { $log .= htmlentities($val) . '
'; } } if (!is_null($this->verboseFileName)) { file_put_contents( $this->verboseFileName, str_replace("
", "\n", $log) ); } else { echo <<CImage Verbose Output
{$log}
EOD; } } private function raiseError($message) { throw new Exception($message); } } class CCache { private $path; public function setDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = $path; return $this; } public function getPathToSubdir($subdir, $create = true) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return $path; } if ($create && is_writable($this->path)) { $path = $this->path . "/" . $subdir; if (mkdir($path)) { return realpath($path); } } return false; } public function getStatusOfSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); $exists = is_dir($path); $res = $exists ? "exists" : "does not exist"; if ($exists) { $res .= is_writable($path) ? ", writable" : ", not writable"; } return $res; } public function removeSubdir($subdir) { $path = realpath($this->path . "/" . $subdir); if (is_dir($path)) { return rmdir($path); } return null; } } class CFastTrackCache { private $enabled = false; private $path; private $filename; private $container; public function enable($enabled) { $this->enabled = $enabled; return $this; } public function setCacheDir($path) { if (!is_dir($path)) { throw new Exception("Cachedir is not a directory."); } $this->path = rtrim($path, "/"); return $this; } public function setFilename($clear) { $query = $_GET; foreach ($clear as $value) { unset($query[$value]); } arsort($query); $queryAsString = http_build_query($query); $this->filename = md5($queryAsString); if (CIMAGE_DEBUG) { $this->container["query-string"] = $queryAsString; } return $this->filename; } public function addHeader($header) { $this->container["header"][] = $header; return $this; } public function addHeaderOnOutput($header) { $this->container["header-output"][] = $header; return $this; } public function setSource($source) { $this->container["source"] = $source; return $this; } public function setLastModified($lastModified) { $this->container["last-modified"] = $lastModified; return $this; } public function getFilename() { return $this->path . "/" . $this->filename; } public function writeToCache() { if (!$this->enabled) { return false; } if (is_dir($this->path) && is_writable($this->path)) { $filename = $this->getFilename(); return file_put_contents($filename, json_encode($this->container)) !== false; } return false; } public function output() { $filename = $this->getFilename(); if (!is_readable($filename)) { return; } $item = json_decode(file_get_contents($filename), true); if (!is_readable($item["source"])) { return; } foreach ($item["header"] as $value) { header($value); } if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]) == $item["last-modified"]) { header("HTTP/1.0 304 Not Modified"); if (CIMAGE_DEBUG) { trace(__CLASS__ . " 304"); } exit; } foreach ($item["header-output"] as $value) { header($value); } if (CIMAGE_DEBUG) { trace(__CLASS__ . " 200"); } readfile($item["source"]); exit; } } $configFile = __DIR__.'/'.basename(__FILE__, '.php').'_config.php'; if (is_file($configFile)) { $config = require $configFile; } elseif (!isset($config)) { $config = array(); } if (!defined("CIMAGE_DEBUG")) { define("CIMAGE_DEBUG", false); } if (!defined("CIMAGE_BUNDLE")) { if (!isset($config["autoloader"])) { die("CImage: Missing autoloader."); } require $config["autoloader"]; } $verbose = getDefined(array('verbose', 'v'), true, false); $verboseFile = getDefined('vf', true, false); verbose("img.php version = " . CIMAGE_VERSION); $status = getDefined('status', true, false); $mode = getConfig('mode', 'production'); set_time_limit(20); ini_set('gd.jpeg_ignore_warning', 1); if (!extension_loaded('gd')) { errorPage("Extension gd is not loaded.", 500); } if ($mode == 'strict') { error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'production') { error_reporting(-1); ini_set('display_errors', 0); ini_set('log_errors', 1); $verbose = false; $status = false; $verboseFile = false; } elseif ($mode == 'development') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); $verboseFile = false; } elseif ($mode == 'test') { error_reporting(-1); ini_set('display_errors', 1); ini_set('log_errors', 0); } else { errorPage("Unknown mode: $mode", 500); } verbose("mode = $mode"); verbose("error log = " . ini_get('error_log')); $defaultTimezone = getConfig('default_timezone', null); if ($defaultTimezone) { date_default_timezone_set($defaultTimezone); } elseif (!ini_get('default_timezone')) { date_default_timezone_set('UTC'); } $pwdConfig = getConfig('password', false); $pwdAlways = getConfig('password_always', false); $pwdType = getConfig('password_type', 'text'); $pwd = get(array('password', 'pwd'), null); $passwordMatch = null; if ($pwd) { switch ($pwdType) { case 'md5': $passwordMatch = ($pwdConfig === md5($pwd)); break; case 'hash': $passwordMatch = password_verify($pwd, $pwdConfig); break; case 'text': $passwordMatch = ($pwdConfig === $pwd); break; default: $passwordMatch = false; } } if ($pwdAlways && $passwordMatch !== true) { errorPage("Password required and does not match or exists.", 403); } verbose("password match = $passwordMatch"); $allowHotlinking = getConfig('allow_hotlinking', true); $hotlinkingWhitelist = getConfig('hotlinking_whitelist', array()); $serverName = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $refererHost = parse_url($referer, PHP_URL_HOST); if (!$allowHotlinking) { if ($passwordMatch) { ; verbose("Hotlinking since passwordmatch"); } elseif ($passwordMatch === false) { errorPage("Hotlinking/leeching not allowed when password missmatch.", 403); } elseif (!$referer) { errorPage("Hotlinking/leeching not allowed and referer is missing.", 403); } elseif (strcmp($serverName, $refererHost) == 0) { ; verbose("Hotlinking disallowed but serverName matches refererHost."); } elseif (!empty($hotlinkingWhitelist)) { $whitelist = new CWhitelist(); $allowedByWhitelist = $whitelist->check($refererHost, $hotlinkingWhitelist); if ($allowedByWhitelist) { verbose("Hotlinking/leeching allowed by whitelist."); } else { errorPage("Hotlinking/leeching not allowed by whitelist. Referer: $referer.", 403); } } else { errorPage("Hotlinking/leeching not allowed.", 403); } } verbose("allow_hotlinking = $allowHotlinking"); verbose("referer = $referer"); verbose("referer host = $refererHost"); $CImage = getConfig('CImage', 'CImage'); $img = new $CImage(); $img->setVerbose($verbose || $verboseFile); $CCache = getConfig('CCache', 'CCache'); $cachePath = getConfig('cache_path', __DIR__ . '/../cache/'); $cache = new $CCache(); $cache->setDir($cachePath); $useCache = getDefined(array('no-cache', 'nc'), false, true); verbose("use cache = $useCache"); $fastTrackCache = "fasttrack"; $allowFastTrackCache = getConfig('fast_track_allow', false); $CFastTrackCache = getConfig('CFastTrackCache', 'CFastTrackCache'); $ftc = new $CFastTrackCache(); $ftc->setCacheDir($cache->getPathToSubdir($fastTrackCache)) ->enable($allowFastTrackCache) ->setFilename(array('no-cache', 'nc')); $img->injectDependency("fastTrackCache", $ftc); if ($useCache && $allowFastTrackCache) { if (CIMAGE_DEBUG) { trace("img.php fast track cache enabled and used"); } $ftc->output(); } $allowRemote = getConfig('remote_allow', false); if ($allowRemote && $passwordMatch !== false) { $cacheRemote = $cache->getPathToSubdir("remote"); $pattern = getConfig('remote_pattern', null); $img->setRemoteDownload($allowRemote, $cacheRemote, $pattern); $whitelist = getConfig('remote_whitelist', null); $img->setRemoteHostWhitelist($whitelist); } $shortcut = get(array('shortcut', 'sc'), null); $shortcutConfig = getConfig('shortcut', array( 'sepia' => "&f=grayscale&f0=brightness,-10&f1=contrast,-20&f2=colorize,120,60,0,0&sharpen", )); verbose("shortcut = $shortcut"); if (isset($shortcut) && isset($shortcutConfig[$shortcut])) { parse_str($shortcutConfig[$shortcut], $get); verbose("shortcut-constant = {$shortcutConfig[$shortcut]}"); $_GET = array_merge($_GET, $get); } $srcImage = urldecode(get('src')) or errorPage('Must set src-attribute.', 404); $srcAltImage = urldecode(get('src-alt', null)); $srcAltConfig = getConfig('src_alt', null); if (empty($srcAltImage)) { $srcAltImage = $srcAltConfig; } $imagePath = getConfig('image_path', __DIR__ . '/img/'); $imagePathConstraint = getConfig('image_path_constraint', true); $validFilename = getConfig('valid_filename', '#^[a-z0-9A-Z-/_ \.:]+$#'); $remoteSource = false; $dummyEnabled = getConfig('dummy_enabled', true); $dummyFilename = getConfig('dummy_filename', 'dummy'); $dummyImage = false; preg_match($validFilename, $srcImage) or errorPage('Source filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } elseif ($allowRemote && $img->isRemoteSource($srcImage)) { $remoteSource = true; } else { $pathToImage = realpath($imagePath . $srcImage); if (!is_file($pathToImage) && !empty($srcAltImage)) { $srcImage = $srcAltImage; $pathToImage = realpath($imagePath . $srcImage); preg_match($validFilename, $srcImage) or errorPage('Source (alt) filename contains invalid characters.', 404); if ($dummyEnabled && $srcImage === $dummyFilename) { $dummyImage = true; } } if (!$dummyImage) { is_file($pathToImage) or errorPage( 'Source image is not a valid file, check the filename and that a matching file exists on the filesystem.', 404 ); } } if ($imagePathConstraint && !$dummyImage && !$remoteSource) { $imageDir = realpath($imagePath); substr_compare($imageDir, $pathToImage, 0, strlen($imageDir)) == 0 or errorPage( 'Security constraint: Source image is not below the directory "image_path" - as specified in the config file img_config.php.', 404 ); } verbose("src = $srcImage"); $sizeConstant = getConfig('size_constant', function () { $sizes = array( 'w1' => 613, 'w2' => 630, ); $gridColumnWidth = 30; $gridGutterWidth = 10; $gridColumns = 24; for ($i = 1; $i <= $gridColumns; $i++) { $sizes['c' . $i] = ($gridColumnWidth + $gridGutterWidth) * $i - $gridGutterWidth; } return $sizes; }); $sizes = call_user_func($sizeConstant); $newWidth = get(array('width', 'w')); $maxWidth = getConfig('max_width', 2000); if (isset($sizes[$newWidth])) { $newWidth = $sizes[$newWidth]; } if ($newWidth[strlen($newWidth)-1] == '%') { is_numeric(substr($newWidth, 0, -1)) or errorPage('Width % not numeric.', 404); } else { is_null($newWidth) or ($newWidth > 10 && $newWidth <= $maxWidth) or errorPage('Width out of range.', 404); } verbose("new width = $newWidth"); $newHeight = get(array('height', 'h')); $maxHeight = getConfig('max_height', 2000); if (isset($sizes[$newHeight])) { $newHeight = $sizes[$newHeight]; } if ($newHeight[strlen($newHeight)-1] == '%') { is_numeric(substr($newHeight, 0, -1)) or errorPage('Height % out of range.', 404); } else { is_null($newHeight) or ($newHeight > 10 && $newHeight <= $maxHeight) or errorPage('Height out of range.', 404); } verbose("new height = $newHeight"); $aspectRatio = get(array('aspect-ratio', 'ar')); $aspectRatioConstant = getConfig('aspect_ratio_constant', function () { return array( '3:1' => 3/1, '3:2' => 3/2, '4:3' => 4/3, '8:5' => 8/5, '16:10' => 16/10, '16:9' => 16/9, 'golden' => 1.618, ); }); $aspectRatios = call_user_func($aspectRatioConstant); $negateAspectRatio = ($aspectRatio[0] == '!') ? true : false; $aspectRatio = $negateAspectRatio ? substr($aspectRatio, 1) : $aspectRatio; if (isset($aspectRatios[$aspectRatio])) { $aspectRatio = $aspectRatios[$aspectRatio]; } if ($negateAspectRatio) { $aspectRatio = 1 / $aspectRatio; } is_null($aspectRatio) or is_numeric($aspectRatio) or errorPage('Aspect ratio out of range', 404); verbose("aspect ratio = $aspectRatio"); $cropToFit = getDefined(array('crop-to-fit', 'cf'), true, false); verbose("crop to fit = $cropToFit"); $backgroundColor = getConfig('background_color', null); if ($backgroundColor) { $img->setDefaultBackgroundColor($backgroundColor); verbose("Using default background_color = $backgroundColor"); } $bgColor = get(array('bgColor', 'bg-color', 'bgc'), null); verbose("bgColor = $bgColor"); $resizeStrategy = getDefined(array('no-resample'), true, false); if ($resizeStrategy) { $img->setCopyResizeStrategy($img::RESIZE); verbose("Setting = Resize instead of resample"); } $fillToFit = get(array('fill-to-fit', 'ff'), null); verbose("fill-to-fit = $fillToFit"); if ($fillToFit !== null) { if (!empty($fillToFit)) { $bgColor = $fillToFit; verbose("fillToFit changed bgColor to = $bgColor"); } $fillToFit = true; verbose("fill-to-fit (fixed) = $fillToFit"); } $keepRatio = getDefined(array('no-ratio', 'nr', 'stretch'), false, true); verbose("keep ratio = $keepRatio"); $crop = get(array('crop', 'c')); verbose("crop = $crop"); $area = get(array('area', 'a')); verbose("area = $area"); $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { verbose("skip original is default ON"); $useOriginal = false; } verbose("use original = $useOriginal"); $quality = get(array('quality', 'q')); $qualityDefault = getConfig('jpg_quality', null); is_null($quality) or ($quality > 0 and $quality <= 100) or errorPage('Quality out of range', 404); if (is_null($quality) && !is_null($qualityDefault)) { $quality = $qualityDefault; } verbose("quality = $quality"); $compress = get(array('compress', 'co')); $compressDefault = getConfig('png_compression', null); is_null($compress) or ($compress > 0 and $compress <= 9) or errorPage('Compress out of range', 404); if (is_null($compress) && !is_null($compressDefault)) { $compress = $compressDefault; } verbose("compress = $compress"); $saveAs = get(array('save-as', 'sa')); verbose("save as = $saveAs"); $scale = get(array('scale', 's')); is_null($scale) or ($scale >= 0 and $scale <= 400) or errorPage('Scale out of range', 404); verbose("scale = $scale"); $palette = getDefined(array('palette', 'p'), true, false); verbose("palette = $palette"); $sharpen = getDefined('sharpen', true, null); verbose("sharpen = $sharpen"); $emboss = getDefined('emboss', true, null); verbose("emboss = $emboss"); $blur = getDefined('blur', true, null); verbose("blur = $blur"); $rotateBefore = get(array('rotateBefore', 'rotate-before', 'rb')); is_null($rotateBefore) or ($rotateBefore >= -360 and $rotateBefore <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateBefore = $rotateBefore"); $rotateAfter = get(array('rotateAfter', 'rotate-after', 'ra', 'rotate', 'r')); is_null($rotateAfter) or ($rotateAfter >= -360 and $rotateAfter <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateAfter = $rotateAfter"); $autoRotate = getDefined(array('autoRotate', 'auto-rotate', 'aro'), true, false); verbose("autoRotate = $autoRotate"); $filters = array(); $filter = get(array('filter', 'f')); if ($filter) { $filters[] = $filter; } for ($i = 0; $i < 10; $i++) { $filter = get(array("filter{$i}", "f{$i}")); if ($filter) { $filters[] = $filter; } } verbose("filters = " . print_r($filters, 1)); $outputFormat = getDefined('json', 'json', null); $outputFormat = getDefined('ascii', 'ascii', $outputFormat); verbose("outputformat = $outputFormat"); if ($outputFormat == 'ascii') { $defaultOptions = getConfig( 'ascii-options', array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ) ); $options = get('ascii'); $options = explode(',', $options); if (isset($options[0]) && !empty($options[0])) { $defaultOptions['characterSet'] = $options[0]; } if (isset($options[1]) && !empty($options[1])) { $defaultOptions['scale'] = $options[1]; } if (isset($options[2]) && !empty($options[2])) { $defaultOptions['luminanceStrategy'] = $options[2]; } if (count($options) > 3) { unset($options[0]); unset($options[1]); unset($options[2]); $characterString = implode($options); $defaultOptions['customCharacterSet'] = $characterString; } $img->setAsciiOptions($defaultOptions); } $dpr = get(array('ppi', 'dpr', 'device-pixel-ratio'), 1); verbose("dpr = $dpr"); $convolve = get('convolve', null); $convolutionConstant = getConfig('convolution_constant', array()); if ($convolve && isset($convolutionConstant)) { $img->addConvolveExpressions($convolutionConstant); verbose("convolve constant = " . print_r($convolutionConstant, 1)); } verbose("convolve = " . print_r($convolve, 1)); $upscale = getDefined(array('no-upscale', 'nu'), false, true); verbose("upscale = $upscale"); $postProcessing = getConfig('postprocessing', array( 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', 'png_deflate' => false, 'png_deflate_cmd' => '/usr/local/bin/pngout -q', 'jpeg_optimize' => false, 'jpeg_optimize_cmd' => '/usr/local/bin/jpegtran -copy none -optimize', )); $alias = get('alias', null); $aliasPath = getConfig('alias_path', null); $validAliasname = getConfig('valid_aliasname', '#^[a-z0-9A-Z-_]+$#'); $aliasTarget = null; if ($alias && $aliasPath && $passwordMatch) { $aliasTarget = $aliasPath . $alias; $useCache = false; is_writable($aliasPath) or errorPage("Directory for alias is not writable.", 403); preg_match($validAliasname, $alias) or errorPage('Filename for alias contains invalid characters. Do not add extension.', 404); } elseif ($alias) { errorPage('Alias is not enabled in the config file or password not matching.', 403); } verbose("alias = $alias"); $cacheControl = getConfig('cache_control', null); if ($cacheControl) { verbose("cacheControl = $cacheControl"); $img->addHTTPHeader("Cache-Control", $cacheControl); } if ($dummyImage === true) { $dummyDir = $cache->getPathToSubdir("dummy"); $img->setSaveFolder($dummyDir) ->setSource($dummyFilename, $dummyDir) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'bgColor' => $bgColor, ) ) ->setJpegQuality($quality) ->setPngCompression($compress) ->createDummyImage() ->generateFilename(null, false) ->save(null, null, false); $srcImage = $img->getTarget(); $imagePath = null; verbose("src (updated) = $srcImage"); } $srgbDefault = getConfig('srgb_default', false); $srgbColorProfile = getConfig('srgb_colorprofile', __DIR__ . '/../icc/sRGB_IEC61966-2-1_black_scaled.icc'); $srgb = getDefined('srgb', true, null); if ($srgb || $srgbDefault) { $filename = $img->convert2sRGBColorSpace( $srcImage, $imagePath, $cache->getPathToSubdir("srgb"), $srgbColorProfile, $useCache ); if ($filename) { $srcImage = $img->getTarget(); $imagePath = null; verbose("srgb conversion and saved to cache = $srcImage"); } else { verbose("srgb not op"); } } if ($status) { $text = "img.php version = " . CIMAGE_VERSION . "\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; $res = $cache->getStatusOfSubdir(""); $text .= "Cache $res\n"; $res = $cache->getStatusOfSubdir("remote"); $text .= "Cache remote $res\n"; $res = $cache->getStatusOfSubdir("dummy"); $text .= "Cache dummy $res\n"; $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; $res = $cache->getStatusOfSubdir($fasttrackCache); $text .= "Cache fasttrack $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; $text .= "Extension exif is $no loaded.
"; $no = extension_loaded('curl') ? null : 'NOT'; $text .= "Extension curl is $no loaded.
"; $no = extension_loaded('imagick') ? null : 'NOT'; $text .= "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; if (!$no) { $text .= print_r(gd_info(), 1); } echo << 613, 'w2' => 630, ); $gridColumnWidth = 30; $gridGutterWidth = 10; $gridColumns = 24; for ($i = 1; $i <= $gridColumns; $i++) { $sizes['c' . $i] = ($gridColumnWidth + $gridGutterWidth) * $i - $gridGutterWidth; } return $sizes; }); $sizes = call_user_func($sizeConstant); $newWidth = get(array('width', 'w')); $maxWidth = getConfig('max_width', 2000); if (isset($sizes[$newWidth])) { $newWidth = $sizes[$newWidth]; } if ($newWidth[strlen($newWidth)-1] == '%') { is_numeric(substr($newWidth, 0, -1)) or errorPage('Width % not numeric.', 404); } else { is_null($newWidth) or ($newWidth > 10 && $newWidth <= $maxWidth) or errorPage('Width out of range.', 404); } verbose("new width = $newWidth"); $newHeight = get(array('height', 'h')); $maxHeight = getConfig('max_height', 2000); if (isset($sizes[$newHeight])) { $newHeight = $sizes[$newHeight]; } if ($newHeight[strlen($newHeight)-1] == '%') { is_numeric(substr($newHeight, 0, -1)) or errorPage('Height % out of range.', 404); } else { is_null($newHeight) or ($newHeight > 10 && $newHeight <= $maxHeight) or errorPage('Height out of range.', 404); } verbose("new height = $newHeight"); $aspectRatio = get(array('aspect-ratio', 'ar')); $aspectRatioConstant = getConfig('aspect_ratio_constant', function () { return array( '3:1' => 3/1, '3:2' => 3/2, '4:3' => 4/3, '8:5' => 8/5, '16:10' => 16/10, '16:9' => 16/9, 'golden' => 1.618, ); }); $aspectRatios = call_user_func($aspectRatioConstant); $negateAspectRatio = ($aspectRatio[0] == '!') ? true : false; $aspectRatio = $negateAspectRatio ? substr($aspectRatio, 1) : $aspectRatio; if (isset($aspectRatios[$aspectRatio])) { $aspectRatio = $aspectRatios[$aspectRatio]; } if ($negateAspectRatio) { $aspectRatio = 1 / $aspectRatio; } is_null($aspectRatio) or is_numeric($aspectRatio) or errorPage('Aspect ratio out of range', 404); verbose("aspect ratio = $aspectRatio"); $cropToFit = getDefined(array('crop-to-fit', 'cf'), true, false); verbose("crop to fit = $cropToFit"); $backgroundColor = getConfig('background_color', null); if ($backgroundColor) { $img->setDefaultBackgroundColor($backgroundColor); verbose("Using default background_color = $backgroundColor"); } $bgColor = get(array('bgColor', 'bg-color', 'bgc'), null); verbose("bgColor = $bgColor"); $resizeStrategy = getDefined(array('no-resample'), true, false); if ($resizeStrategy) { $img->setCopyResizeStrategy($img::RESIZE); verbose("Setting = Resize instead of resample"); } $fillToFit = get(array('fill-to-fit', 'ff'), null); verbose("fill-to-fit = $fillToFit"); if ($fillToFit !== null) { if (!empty($fillToFit)) { $bgColor = $fillToFit; verbose("fillToFit changed bgColor to = $bgColor"); } $fillToFit = true; verbose("fill-to-fit (fixed) = $fillToFit"); } $keepRatio = getDefined(array('no-ratio', 'nr', 'stretch'), false, true); verbose("keep ratio = $keepRatio"); $crop = get(array('crop', 'c')); verbose("crop = $crop"); $area = get(array('area', 'a')); verbose("area = $area"); $useOriginal = getDefined(array('skip-original', 'so'), false, true); $useOriginalDefault = getConfig('skip_original', false); if ($useOriginalDefault === true) { verbose("skip original is default ON"); $useOriginal = false; } verbose("use original = $useOriginal"); $quality = get(array('quality', 'q')); $qualityDefault = getConfig('jpg_quality', null); is_null($quality) or ($quality > 0 and $quality <= 100) or errorPage('Quality out of range', 404); if (is_null($quality) && !is_null($qualityDefault)) { $quality = $qualityDefault; } verbose("quality = $quality"); $compress = get(array('compress', 'co')); $compressDefault = getConfig('png_compression', null); is_null($compress) or ($compress > 0 and $compress <= 9) or errorPage('Compress out of range', 404); if (is_null($compress) && !is_null($compressDefault)) { $compress = $compressDefault; } verbose("compress = $compress"); $saveAs = get(array('save-as', 'sa')); verbose("save as = $saveAs"); $scale = get(array('scale', 's')); is_null($scale) or ($scale >= 0 and $scale <= 400) or errorPage('Scale out of range', 404); verbose("scale = $scale"); $palette = getDefined(array('palette', 'p'), true, false); verbose("palette = $palette"); $sharpen = getDefined('sharpen', true, null); verbose("sharpen = $sharpen"); $emboss = getDefined('emboss', true, null); verbose("emboss = $emboss"); $blur = getDefined('blur', true, null); verbose("blur = $blur"); $rotateBefore = get(array('rotateBefore', 'rotate-before', 'rb')); is_null($rotateBefore) or ($rotateBefore >= -360 and $rotateBefore <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateBefore = $rotateBefore"); $rotateAfter = get(array('rotateAfter', 'rotate-after', 'ra', 'rotate', 'r')); is_null($rotateAfter) or ($rotateAfter >= -360 and $rotateAfter <= 360) or errorPage('RotateBefore out of range', 404); verbose("rotateAfter = $rotateAfter"); $autoRotate = getDefined(array('autoRotate', 'auto-rotate', 'aro'), true, false); verbose("autoRotate = $autoRotate"); $filters = array(); $filter = get(array('filter', 'f')); if ($filter) { $filters[] = $filter; } for ($i = 0; $i < 10; $i++) { $filter = get(array("filter{$i}", "f{$i}")); if ($filter) { $filters[] = $filter; } } verbose("filters = " . print_r($filters, 1)); $outputFormat = getDefined('json', 'json', null); $outputFormat = getDefined('ascii', 'ascii', $outputFormat); verbose("outputformat = $outputFormat"); if ($outputFormat == 'ascii') { $defaultOptions = getConfig( 'ascii-options', array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ) ); $options = get('ascii'); $options = explode(',', $options); if (isset($options[0]) && !empty($options[0])) { $defaultOptions['characterSet'] = $options[0]; } if (isset($options[1]) && !empty($options[1])) { $defaultOptions['scale'] = $options[1]; } if (isset($options[2]) && !empty($options[2])) { $defaultOptions['luminanceStrategy'] = $options[2]; } if (count($options) > 3) { unset($options[0]); unset($options[1]); unset($options[2]); $characterString = implode($options); $defaultOptions['customCharacterSet'] = $characterString; } $img->setAsciiOptions($defaultOptions); } $dpr = get(array('ppi', 'dpr', 'device-pixel-ratio'), 1); verbose("dpr = $dpr"); $convolve = get('convolve', null); $convolutionConstant = getConfig('convolution_constant', array()); if ($convolve && isset($convolutionConstant)) { $img->addConvolveExpressions($convolutionConstant); verbose("convolve constant = " . print_r($convolutionConstant, 1)); } verbose("convolve = " . print_r($convolve, 1)); $upscale = getDefined(array('no-upscale', 'nu'), false, true); verbose("upscale = $upscale"); $postProcessing = getConfig('postprocessing', array( 'png_lossy' => false, 'png_lossy_cmd' => '/usr/local/bin/pngquant --force --output', 'png_filter' => false, 'png_filter_cmd' => '/usr/local/bin/optipng -q', 'png_deflate' => false, 'png_deflate_cmd' => '/usr/local/bin/pngout -q', 'jpeg_optimize' => false, 'jpeg_optimize_cmd' => '/usr/local/bin/jpegtran -copy none -optimize', )); $lossy = getDefined(array('lossy'), true, null); verbose("lossy = $lossy"); $alias = get('alias', null); $aliasPath = getConfig('alias_path', null); $validAliasname = getConfig('valid_aliasname', '#^[a-z0-9A-Z-_]+$#'); $aliasTarget = null; if ($alias && $aliasPath && $passwordMatch) { $aliasTarget = $aliasPath . $alias; $useCache = false; is_writable($aliasPath) or errorPage("Directory for alias is not writable.", 403); preg_match($validAliasname, $alias) or errorPage('Filename for alias contains invalid characters. Do not add extension.', 404); } elseif ($alias) { errorPage('Alias is not enabled in the config file or password not matching.', 403); } verbose("alias = $alias"); $cacheControl = getConfig('cache_control', null); if ($cacheControl) { verbose("cacheControl = $cacheControl"); $img->addHTTPHeader("Cache-Control", $cacheControl); } if ($dummyImage === true) { $dummyDir = $cache->getPathToSubdir("dummy"); $img->setSaveFolder($dummyDir) ->setSource($dummyFilename, $dummyDir) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'bgColor' => $bgColor, ) ) ->setJpegQuality($quality) ->setPngCompression($compress) ->createDummyImage() ->generateFilename(null, false) ->save(null, null, false); $srcImage = $img->getTarget(); $imagePath = null; verbose("src (updated) = $srcImage"); } $srgbDefault = getConfig('srgb_default', false); $srgbColorProfile = getConfig('srgb_colorprofile', __DIR__ . '/../icc/sRGB_IEC61966-2-1_black_scaled.icc'); $srgb = getDefined('srgb', true, null); if ($srgb || $srgbDefault) { $filename = $img->convert2sRGBColorSpace( $srcImage, $imagePath, $cache->getPathToSubdir("srgb"), $srgbColorProfile, $useCache ); if ($filename) { $srcImage = $img->getTarget(); $imagePath = null; verbose("srgb conversion and saved to cache = $srcImage"); } else { verbose("srgb not op"); } } if ($status) { $text = "img.php version = " . CIMAGE_VERSION . "\n"; $text .= "PHP version = " . PHP_VERSION . "\n"; $text .= "Running on: " . $_SERVER['SERVER_SOFTWARE'] . "\n"; $text .= "Allow remote images = $allowRemote\n"; $res = $cache->getStatusOfSubdir(""); $text .= "Cache $res\n"; $res = $cache->getStatusOfSubdir("remote"); $text .= "Cache remote $res\n"; $res = $cache->getStatusOfSubdir("dummy"); $text .= "Cache dummy $res\n"; $res = $cache->getStatusOfSubdir("srgb"); $text .= "Cache srgb $res\n"; $res = $cache->getStatusOfSubdir($fastTrackCache); $text .= "Cache fasttrack $res\n"; $text .= "Alias path writable = " . is_writable($aliasPath) . "\n"; $no = extension_loaded('exif') ? null : 'NOT'; $text .= "Extension exif is $no loaded.
"; $no = extension_loaded('curl') ? null : 'NOT'; $text .= "Extension curl is $no loaded.
"; $no = extension_loaded('imagick') ? null : 'NOT'; $text .= "Extension imagick is $no loaded.
"; $no = extension_loaded('gd') ? null : 'NOT'; $text .= "Extension gd is $no loaded.
"; $text .= checkExternalCommand("PNG LOSSY", $postProcessing["png_lossy"], $postProcessing["png_lossy_cmd"]); $text .= checkExternalCommand("PNG FILTER", $postProcessing["png_filter"], $postProcessing["png_filter_cmd"]); $text .= checkExternalCommand("PNG DEFLATE", $postProcessing["png_deflate"], $postProcessing["png_deflate_cmd"]); $text .= checkExternalCommand("JPEG OPTIMIZE", $postProcessing["jpeg_optimize"], $postProcessing["jpeg_optimize_cmd"]); if (!$no) { $text .= print_r(gd_info(), 1); } echo << CImage status
$text
EOD; -exit; } if ($verboseFile) { $img->setVerboseToFile("$cachePath/log.txt"); } $hookBeforeCImage = getConfig('hook_before_CImage', null); if (is_callable($hookBeforeCImage)) { verbose("hookBeforeCImage activated"); $allConfig = $hookBeforeCImage($img, array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'aspectRatio' => $aspectRatio, 'keepRatio' => $keepRatio, 'cropToFit' => $cropToFit, 'fillToFit' => $fillToFit, 'crop' => $crop, 'area' => $area, 'upscale' => $upscale, 'scale' => $scale, 'rotateBefore' => $rotateBefore, 'autoRotate' => $autoRotate, 'bgColor' => $bgColor, 'palette' => $palette, 'filters' => $filters, 'sharpen' => $sharpen, 'emboss' => $emboss, 'blur' => $blur, 'convolve' => $convolve, 'rotateAfter' => $rotateAfter, 'outputFormat' => $outputFormat, 'dpr' => $dpr, 'postProcessing' => $postProcessing, )); verbose(print_r($allConfig, 1)); extract($allConfig); } if ($verbose) { $query = array(); parse_str($_SERVER['QUERY_STRING'], $query); unset($query['verbose']); unset($query['v']); unset($query['nocache']); unset($query['nc']); unset($query['json']); $url1 = '?' . htmlentities(urldecode(http_build_query($query))); $url2 = '?' . urldecode(http_build_query($query)); echo <<setVerboseToFile("$cachePath/log.txt"); } $hookBeforeCImage = getConfig('hook_before_CImage', null); if (is_callable($hookBeforeCImage)) { verbose("hookBeforeCImage activated"); $allConfig = $hookBeforeCImage($img, array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'aspectRatio' => $aspectRatio, 'keepRatio' => $keepRatio, 'cropToFit' => $cropToFit, 'fillToFit' => $fillToFit, 'crop' => $crop, 'area' => $area, 'upscale' => $upscale, 'scale' => $scale, 'rotateBefore' => $rotateBefore, 'autoRotate' => $autoRotate, 'bgColor' => $bgColor, 'palette' => $palette, 'filters' => $filters, 'sharpen' => $sharpen, 'emboss' => $emboss, 'blur' => $blur, 'convolve' => $convolve, 'rotateAfter' => $rotateAfter, 'outputFormat' => $outputFormat, 'dpr' => $dpr, 'postProcessing' => $postProcessing, 'lossy' => $lossy, )); verbose(print_r($allConfig, 1)); extract($allConfig); } if ($verbose) { $query = array(); parse_str($_SERVER['QUERY_STRING'], $query); unset($query['verbose']); unset($query['v']); unset($query['nocache']); unset($query['nc']); unset($query['json']); $url1 = '?' . htmlentities(urldecode(http_build_query($query))); $url2 = '?' . urldecode(http_build_query($query)); echo << @@ -38,4 +38,4 @@ window.getDetails = function (url, id) { EOD; -} $img->log("Incoming arguments: " . print_r(verbose(), 1)) ->setSaveFolder($cachePath) ->useCache($useCache) ->setSource($srcImage, $imagePath) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'aspectRatio' => $aspectRatio, 'keepRatio' => $keepRatio, 'cropToFit' => $cropToFit, 'fillToFit' => $fillToFit, 'crop' => $crop, 'area' => $area, 'upscale' => $upscale, 'scale' => $scale, 'rotateBefore' => $rotateBefore, 'autoRotate' => $autoRotate, 'bgColor' => $bgColor, 'palette' => $palette, 'filters' => $filters, 'sharpen' => $sharpen, 'emboss' => $emboss, 'blur' => $blur, 'convolve' => $convolve, 'rotateAfter' => $rotateAfter, 'outputFormat' => $outputFormat, 'dpr' => $dpr, ) ) ->loadImageDetails() ->initDimensions() ->calculateNewWidthAndHeight() ->setSaveAsExtension($saveAs) ->setJpegQuality($quality) ->setPngCompression($compress) ->useOriginalIfPossible($useOriginal) ->generateFilename($cachePath) ->useCacheIfPossible($useCache) ->load() ->preResize() ->resize() ->postResize() ->setPostProcessingOptions($postProcessing) ->save() ->linkToCacheFile($aliasTarget) ->output(); \ No newline at end of file +} $img->log("Incoming arguments: " . print_r(verbose(), 1)) ->setSaveFolder($cachePath) ->useCache($useCache) ->setSource($srcImage, $imagePath) ->setOptions( array( 'newWidth' => $newWidth, 'newHeight' => $newHeight, 'aspectRatio' => $aspectRatio, 'keepRatio' => $keepRatio, 'cropToFit' => $cropToFit, 'fillToFit' => $fillToFit, 'crop' => $crop, 'area' => $area, 'upscale' => $upscale, 'scale' => $scale, 'rotateBefore' => $rotateBefore, 'autoRotate' => $autoRotate, 'bgColor' => $bgColor, 'palette' => $palette, 'filters' => $filters, 'sharpen' => $sharpen, 'emboss' => $emboss, 'blur' => $blur, 'convolve' => $convolve, 'rotateAfter' => $rotateAfter, 'outputFormat' => $outputFormat, 'dpr' => $dpr, 'lossy' => $lossy, ) ) ->loadImageDetails() ->initDimensions() ->calculateNewWidthAndHeight() ->setSaveAsExtension($saveAs) ->setJpegQuality($quality) ->setPngCompression($compress) ->useOriginalIfPossible($useOriginal) ->generateFilename($cachePath) ->useCacheIfPossible($useCache) ->load() ->preResize() ->resize() ->postResize() ->setPostProcessingOptions($postProcessing) ->save() ->linkToCacheFile($aliasTarget) ->output(); \ No newline at end of file From 2337dbe94c753051d4c24d2a1f28fb9c1466d2da Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Tue, 9 Aug 2016 13:22:33 +0200 Subject: [PATCH 43/50] Made &lossless part of the generated cache filename. --- CImage.php | 3 ++- README.md | 6 +++--- REVISION.md | 6 ++++++ defines.php | 2 +- webroot/img_config.php | 2 +- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CImage.php b/CImage.php index dc64329..ce3a4bd 100644 --- a/CImage.php +++ b/CImage.php @@ -1398,6 +1398,7 @@ class CImage $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; + $lossy = $this->lossy ? "_l" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; @@ -1464,7 +1465,7 @@ class CImage . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor - . $convolve . $copyStrat . $saveAs; + . $convolve . $copyStrat . $lossy . $saveAs; return $this->setTarget($file, $base); } diff --git a/README.md b/README.md index c01b5cc..b52b82c 100644 --- a/README.md +++ b/README.md @@ -49,14 +49,14 @@ There are several ways of installing. You either install the whole project which The [sourcode is available on GitHub](https://github.com/mosbth/cimage). Clone, fork or [download as zip](https://github.com/mosbth/cimage/archive/master.zip). -**Latest stable version is v0.7.16 released 2016-08-09.** +**Latest stable version is v0.7.17 released 2016-08-09.** I prefer cloning like this. Do switch to the latest stable version. ```bash git clone git://github.com/mosbth/cimage.git cd cimage -git checkout v0.7.16 +git checkout v0.7.17 ``` Make the cache-directory writable by the webserver. @@ -79,7 +79,7 @@ There are some all-included bundles of `img.php` that can be downloaded and used Dowload the version of your choice like this. ```bash -wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.16/webroot/imgp.php +wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.17/webroot/imgp.php ``` Open up the file in your editor and edit the array `$config`. Ensure that the paths to the image directory and the cache directory matches your environment, or create an own config-file for the script. diff --git a/REVISION.md b/REVISION.md index ee6c4f0..0803356 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,6 +5,12 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) +v0.7.17 (2016-08-09) +------------------------------------- + +* Made `&lossless` part of the generated cache filename. + + v0.7.16 (2016-08-09) ------------------------------------- diff --git a/defines.php b/defines.php index 3cc5c5e..8ce825a 100644 --- a/defines.php +++ b/defines.php @@ -1,6 +1,6 @@ array( - 'png_lossy' => false, + 'png_lossy' => null, 'png_lossy_cmd' => '/usr/local/bin/pngquant --force --output', 'png_filter' => false, From e59ef91991e0e29648759d1583690fca7829882a Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Tue, 9 Aug 2016 13:23:04 +0200 Subject: [PATCH 44/50] prepare to tag v0.7.17 --- webroot/imgd.php | 5 +++-- webroot/imgp.php | 5 +++-- webroot/imgs.php | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/webroot/imgd.php b/webroot/imgd.php index 4f22a85..a16992e 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -38,7 +38,7 @@ $config = array( // Version of cimage and img.php -define("CIMAGE_VERSION", "v0.7.16 (2016-08-09)"); +define("CIMAGE_VERSION", "v0.7.17 (2016-08-09)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); @@ -2524,6 +2524,7 @@ class CImage $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; + $lossy = $this->lossy ? "_l" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; @@ -2590,7 +2591,7 @@ class CImage . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor - . $convolve . $copyStrat . $saveAs; + . $convolve . $copyStrat . $lossy . $saveAs; return $this->setTarget($file, $base); } diff --git a/webroot/imgp.php b/webroot/imgp.php index 00b1764..467f9de 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -38,7 +38,7 @@ $config = array( // Version of cimage and img.php -define("CIMAGE_VERSION", "v0.7.16 (2016-08-09)"); +define("CIMAGE_VERSION", "v0.7.17 (2016-08-09)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); @@ -2524,6 +2524,7 @@ class CImage $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; + $lossy = $this->lossy ? "_l" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; @@ -2590,7 +2591,7 @@ class CImage . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor - . $convolve . $copyStrat . $saveAs; + . $convolve . $copyStrat . $lossy . $saveAs; return $this->setTarget($file, $base); } diff --git a/webroot/imgs.php b/webroot/imgs.php index de7a319..9dd63eb 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -1,6 +1,6 @@ 'strict', ); define("CIMAGE_VERSION", "v0.7.16 (2016-08-09)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); if (!defined("IMG_WEBP")) { define("IMG_WEBP", -1); } function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { return; } $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } function checkExternalCommand($what, $enabled, $commandString) { $no = $enabled ? null : 'NOT'; $text = "Post processing $what is $no enabled.
"; list($command) = explode(" ", $commandString); $no = is_executable($command) ? null : 'NOT'; $text .= "The command for $what is $no an executable.
"; return $text; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $lossy = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngLossy; private $pngLossyCmd; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif', 'webp'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, 'lossy' => null, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at - http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType) = getimagesize($file); if (empty($info)) { $this->fileType = false; if (function_exists("exif_imagetype")) { $this->fileType = exif_imagetype($file); if ($this->fileType === false) { if (function_exists("imagecreatefromwebp")) { $webp = imagecreatefromwebp($file); if ($webp !== false) { $this->width = imagesx($webp); $this->height = imagesy($webp); $this->fileType = IMG_WEBP; } } } } } if (!$this->fileType) { throw new Exception("Loading image details, the file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . $this->getMimeType()); } return $this; } protected function getMimeType() { if ($this->fileType === IMG_WEBP) { return "image/webp"; } return image_type_to_mime_type($this->fileType); } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } else { $this->newWidth = $width; $this->newHeight = $height; } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails(); if ($this->fileType === IMG_WEBP) { $this->image = imagecreatefromwebp($this->pathToImage); } else { $imageAsString = file_get_contents($this->pathToImage); $this->image = imagecreatefromstring($imageAsString); } if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newWidth < $this->width) { $cropX = round(($this->width/2) - ($this->newWidth/2)); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } if ($this->newHeight < $this->height) { $cropY = round(($this->height/2) - ($this->newHeight/2)); } $this->log(" cwidth: $this->cropWidth"); $this->log(" cheight: $this->cropHeight"); $this->log(" nwidth: $this->newWidth"); $this->log(" nheight: $this->newHeight"); $this->log(" width: $this->width"); $this->log(" height: $this->height"); $this->log(" posX: $posX"); $this->log(" posY: $posY"); $this->log(" cropX: $cropX"); $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with + define("CIMAGE_BUNDLE", true); $config = array( 'mode' => 'strict', ); define("CIMAGE_VERSION", "v0.7.17 (2016-08-09)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); if (!defined("IMG_WEBP")) { define("IMG_WEBP", -1); } function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { return; } $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } function checkExternalCommand($what, $enabled, $commandString) { $no = $enabled ? null : 'NOT'; $text = "Post processing $what is $no enabled.
"; list($command) = explode(" ", $commandString); $no = is_executable($command) ? null : 'NOT'; $text .= "The command for $what is $no an executable.
"; return $text; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $lossy = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngLossy; private $pngLossyCmd; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif', 'webp'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, 'lossy' => null, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at + http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType) = getimagesize($file); if (empty($info)) { $this->fileType = false; if (function_exists("exif_imagetype")) { $this->fileType = exif_imagetype($file); if ($this->fileType === false) { if (function_exists("imagecreatefromwebp")) { $webp = imagecreatefromwebp($file); if ($webp !== false) { $this->width = imagesx($webp); $this->height = imagesy($webp); $this->fileType = IMG_WEBP; } } } } } if (!$this->fileType) { throw new Exception("Loading image details, the file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . $this->getMimeType()); } return $this; } protected function getMimeType() { if ($this->fileType === IMG_WEBP) { return "image/webp"; } return image_type_to_mime_type($this->fileType); } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } else { $this->newWidth = $width; $this->newHeight = $height; } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $lossy = $this->lossy ? "_l" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $lossy . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails(); if ($this->fileType === IMG_WEBP) { $this->image = imagecreatefromwebp($this->pathToImage); } else { $imageAsString = file_get_contents($this->pathToImage); $this->image = imagecreatefromstring($imageAsString); } if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newWidth < $this->width) { $cropX = round(($this->width/2) - ($this->newWidth/2)); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } if ($this->newHeight < $this->height) { $cropY = round(($this->height/2) - ($this->newHeight/2)); } $this->log(" cwidth: $this->cropWidth"); $this->log(" cheight: $this->cropHeight"); $this->log(" nwidth: $this->newWidth"); $this->log(" nheight: $this->newHeight"); $this->log(" width: $this->width"); $this->log(" height: $this->height"); $this->log(" posX: $posX"); $this->log(" posY: $posY"); $this->log(" cropX: $cropX"); $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with 11 float values. Got $expression." ); } array_walk($part, function ($item, $key) { if (!is_numeric($item)) { throw new Exception("Argument to convolve expression should be float but is not."); } }); return array( array( array($part[0], $part[1], $part[2]), array($part[3], $part[4], $part[5]), array($part[6], $part[7], $part[8]), ), $part[9], $part[10], ); } public function addConvolveExpressions($options) { $this->convolves = array_merge($this->convolves, $options); return $this; } public function imageConvolution($options = null) { $options = $options ? $options : $this->convolve; $this->log("Convolution with '$options'"); $options = explode(":", $options); foreach ($options as $option) { list($matrix, $divisor, $offset) = $this->createConvolveArguments($option); imageconvolution($this->image, $matrix, $divisor, $offset); } return $this; } public function setDefaultBackgroundColor($color) { $this->log("Setting default background color to '$color'."); if (!(strlen($color) == 6 || strlen($color) == 8)) { throw new Exception( "Background color needs a hex value of 6 or 8 digits. 000000-FFFFFF or 00000000-FFFFFF7F. Current value was: '$color'." ); } $red = hexdec(substr($color, 0, 2)); $green = hexdec(substr($color, 2, 2)); $blue = hexdec(substr($color, 4, 2)); $alpha = (strlen($color) == 8) ? hexdec(substr($color, 6, 2)) : null; if (($red < 0 || $red > 255) || ($green < 0 || $green > 255) || ($blue < 0 || $blue > 255) || ($alpha < 0 || $alpha > 127) ) { throw new Exception( "Background color out of range. Red, green blue From 0f9e0220f1c2a3dbbc0fb8b0cd10677acc274836 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Tue, 9 Aug 2016 13:27:30 +0200 Subject: [PATCH 45/50] Made &lossless a requirement to not use the original image. --- CImage.php | 1 + README.md | 6 +++--- REVISION.md | 6 ++++++ defines.php | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CImage.php b/CImage.php index ce3a4bd..6aa0acc 100644 --- a/CImage.php +++ b/CImage.php @@ -1365,6 +1365,7 @@ class CImage && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) + && !$this->lossy ) { $this->log("Using original image."); $this->output($this->pathToImage); diff --git a/README.md b/README.md index b52b82c..6879daa 100644 --- a/README.md +++ b/README.md @@ -49,14 +49,14 @@ There are several ways of installing. You either install the whole project which The [sourcode is available on GitHub](https://github.com/mosbth/cimage). Clone, fork or [download as zip](https://github.com/mosbth/cimage/archive/master.zip). -**Latest stable version is v0.7.17 released 2016-08-09.** +**Latest stable version is v0.7.18 released 2016-08-09.** I prefer cloning like this. Do switch to the latest stable version. ```bash git clone git://github.com/mosbth/cimage.git cd cimage -git checkout v0.7.17 +git checkout v0.7.18 ``` Make the cache-directory writable by the webserver. @@ -79,7 +79,7 @@ There are some all-included bundles of `img.php` that can be downloaded and used Dowload the version of your choice like this. ```bash -wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.17/webroot/imgp.php +wget https://raw.githubusercontent.com/mosbth/cimage/v0.7.18/webroot/imgp.php ``` Open up the file in your editor and edit the array `$config`. Ensure that the paths to the image directory and the cache directory matches your environment, or create an own config-file for the script. diff --git a/REVISION.md b/REVISION.md index 0803356..ac9bd6c 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,6 +5,12 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) +v0.7.18 (2016-08-09) +------------------------------------- + +* Made `&lossless` a requirement to not use the original image. + + v0.7.17 (2016-08-09) ------------------------------------- diff --git a/defines.php b/defines.php index 8ce825a..43d888b 100644 --- a/defines.php +++ b/defines.php @@ -1,6 +1,6 @@ Date: Tue, 9 Aug 2016 13:27:46 +0200 Subject: [PATCH 46/50] prepare to tag v0.7.18 --- webroot/imgd.php | 3 ++- webroot/imgp.php | 3 ++- webroot/imgs.php | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/webroot/imgd.php b/webroot/imgd.php index a16992e..432888e 100755 --- a/webroot/imgd.php +++ b/webroot/imgd.php @@ -38,7 +38,7 @@ $config = array( // Version of cimage and img.php -define("CIMAGE_VERSION", "v0.7.17 (2016-08-09)"); +define("CIMAGE_VERSION", "v0.7.18 (2016-08-09)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); @@ -2491,6 +2491,7 @@ class CImage && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) + && !$this->lossy ) { $this->log("Using original image."); $this->output($this->pathToImage); diff --git a/webroot/imgp.php b/webroot/imgp.php index 467f9de..cfef00f 100755 --- a/webroot/imgp.php +++ b/webroot/imgp.php @@ -38,7 +38,7 @@ $config = array( // Version of cimage and img.php -define("CIMAGE_VERSION", "v0.7.17 (2016-08-09)"); +define("CIMAGE_VERSION", "v0.7.18 (2016-08-09)"); // For CRemoteImage define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); @@ -2491,6 +2491,7 @@ class CImage && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) + && !$this->lossy ) { $this->log("Using original image."); $this->output($this->pathToImage); diff --git a/webroot/imgs.php b/webroot/imgs.php index 9dd63eb..9bcd372 100644 --- a/webroot/imgs.php +++ b/webroot/imgs.php @@ -1,6 +1,6 @@ 'strict', ); define("CIMAGE_VERSION", "v0.7.17 (2016-08-09)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); if (!defined("IMG_WEBP")) { define("IMG_WEBP", -1); } function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { return; } $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } function checkExternalCommand($what, $enabled, $commandString) { $no = $enabled ? null : 'NOT'; $text = "Post processing $what is $no enabled.
"; list($command) = explode(" ", $commandString); $no = is_executable($command) ? null : 'NOT'; $text .= "The command for $what is $no an executable.
"; return $text; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $lossy = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngLossy; private $pngLossyCmd; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif', 'webp'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, 'lossy' => null, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at - http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType) = getimagesize($file); if (empty($info)) { $this->fileType = false; if (function_exists("exif_imagetype")) { $this->fileType = exif_imagetype($file); if ($this->fileType === false) { if (function_exists("imagecreatefromwebp")) { $webp = imagecreatefromwebp($file); if ($webp !== false) { $this->width = imagesx($webp); $this->height = imagesy($webp); $this->fileType = IMG_WEBP; } } } } } if (!$this->fileType) { throw new Exception("Loading image details, the file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . $this->getMimeType()); } return $this; } protected function getMimeType() { if ($this->fileType === IMG_WEBP) { return "image/webp"; } return image_type_to_mime_type($this->fileType); } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } else { $this->newWidth = $width; $this->newHeight = $height; } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $lossy = $this->lossy ? "_l" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $lossy . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails(); if ($this->fileType === IMG_WEBP) { $this->image = imagecreatefromwebp($this->pathToImage); } else { $imageAsString = file_get_contents($this->pathToImage); $this->image = imagecreatefromstring($imageAsString); } if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newWidth < $this->width) { $cropX = round(($this->width/2) - ($this->newWidth/2)); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } if ($this->newHeight < $this->height) { $cropY = round(($this->height/2) - ($this->newHeight/2)); } $this->log(" cwidth: $this->cropWidth"); $this->log(" cheight: $this->cropHeight"); $this->log(" nwidth: $this->newWidth"); $this->log(" nheight: $this->newHeight"); $this->log(" width: $this->width"); $this->log(" height: $this->height"); $this->log(" posX: $posX"); $this->log(" posY: $posY"); $this->log(" cropX: $cropX"); $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with + define("CIMAGE_BUNDLE", true); $config = array( 'mode' => 'strict', ); define("CIMAGE_VERSION", "v0.7.18 (2016-08-09)"); define("CIMAGE_USER_AGENT", "CImage/" . CIMAGE_VERSION); if (!defined("IMG_WEBP")) { define("IMG_WEBP", -1); } function trace($msg) { $file = CIMAGE_DEBUG_FILE; if (!is_writable($file)) { return; } $timer = number_format((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]), 6); $details = "{$timer}ms"; $details .= ":" . round(memory_get_peak_usage()/1024/1024, 3) . "MB"; $details .= ":" . count(get_included_files()); file_put_contents($file, "$details:$msg\n", FILE_APPEND); } function errorPage($msg, $type = 500) { global $mode; switch ($type) { case 403: $header = "403 Forbidden"; break; case 404: $header = "404 Not Found"; break; default: $header = "500 Internal Server Error"; } if ($mode == "strict") { $header = "404 Not Found"; } header("HTTP/1.0 $header"); if ($mode == "development") { die("[img.php] $msg"); } error_log("[img.php] $msg"); die("HTTP/1.0 $header"); } set_exception_handler(function ($exception) { errorPage( "

img.php: Uncaught exception:

" . $exception->getMessage() . "

" . $exception->getTraceAsString() . "
", 500 ); }); function get($key, $default = null) { if (is_array($key)) { foreach ($key as $val) { if (isset($_GET[$val])) { return $_GET[$val]; } } } elseif (isset($_GET[$key])) { return $_GET[$key]; } return $default; } function getDefined($key, $defined, $undefined) { return get($key) === null ? $undefined : $defined; } function getConfig($key, $default) { global $config; return isset($config[$key]) ? $config[$key] : $default; } function verbose($msg = null) { global $verbose, $verboseFile; static $log = array(); if (!($verbose || $verboseFile)) { return; } if (is_null($msg)) { return $log; } $log[] = $msg; } function checkExternalCommand($what, $enabled, $commandString) { $no = $enabled ? null : 'NOT'; $text = "Post processing $what is $no enabled.
"; list($command) = explode(" ", $commandString); $no = is_executable($command) ? null : 'NOT'; $text .= "The command for $what is $no an executable.
"; return $text; } class CHttpGet { private $request = array(); private $response = array(); public function __construct() { $this->request['header'] = array(); } public function buildUrl($baseUrl, $merge) { $parts = parse_url($baseUrl); $parts = array_merge($parts, $merge); $url = $parts['scheme']; $url .= "://"; $url .= $parts['host']; $url .= isset($parts['port']) ? ":" . $parts['port'] : "" ; $url .= $parts['path']; return $url; } public function setUrl($url) { $parts = parse_url($url); $path = ""; if (isset($parts['path'])) { $pathParts = explode('/', $parts['path']); unset($pathParts[0]); foreach ($pathParts as $value) { $path .= "/" . rawurlencode($value); } } $url = $this->buildUrl($url, array("path" => $path)); $this->request['url'] = $url; return $this; } public function setHeader($field, $value) { $this->request['header'][] = "$field: $value"; return $this; } public function parseHeader() { $rawHeaders = rtrim($this->response['headerRaw'], "\r\n"); $headerGroups = explode("\r\n\r\n", $rawHeaders); $header = explode("\r\n", end($headerGroups)); $output = array(); if ('HTTP' === substr($header[0], 0, 4)) { list($output['version'], $output['status']) = explode(' ', $header[0]); unset($header[0]); } foreach ($header as $entry) { $pos = strpos($entry, ':'); $output[trim(substr($entry, 0, $pos))] = trim(substr($entry, $pos + 1)); } $this->response['header'] = $output; return $this; } public function doGet($debug = false) { $options = array( CURLOPT_URL => $this->request['url'], CURLOPT_HEADER => 1, CURLOPT_HTTPHEADER => $this->request['header'], CURLOPT_AUTOREFERER => true, CURLOPT_RETURNTRANSFER => true, CURLINFO_HEADER_OUT => $debug, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 5, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 2, ); $ch = curl_init(); curl_setopt_array($ch, $options); $response = curl_exec($ch); if (!$response) { throw new Exception("Failed retrieving url, details follows: " . curl_error($ch)); } $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->response['headerRaw'] = substr($response, 0, $headerSize); $this->response['body'] = substr($response, $headerSize); $this->parseHeader(); if ($debug) { $info = curl_getinfo($ch); echo "Request header
", var_dump($info['request_header']), "
"; echo "Response header (raw)
", var_dump($this->response['headerRaw']), "
"; echo "Response header (parsed)
", var_dump($this->response['header']), "
"; } curl_close($ch); return true; } public function getStatus() { return isset($this->response['header']['status']) ? (int) $this->response['header']['status'] : null; } public function getLastModified() { return isset($this->response['header']['Last-Modified']) ? strtotime($this->response['header']['Last-Modified']) : null; } public function getContentType() { $type = isset($this->response['header']['Content-Type']) ? $this->response['header']['Content-Type'] : null; return preg_match('#[a-z]+/[a-z]+#', $type) ? $type : null; } public function getDate($default = false) { return isset($this->response['header']['Date']) ? strtotime($this->response['header']['Date']) : $default; } public function getMaxAge($default = false) { $cacheControl = isset($this->response['header']['Cache-Control']) ? $this->response['header']['Cache-Control'] : null; $maxAge = null; if ($cacheControl) { $part = explode('=', $cacheControl); $maxAge = ($part[0] == "max-age") ? (int) $part[1] : null; } if ($maxAge) { return $maxAge; } $expire = isset($this->response['header']['Expires']) ? strtotime($this->response['header']['Expires']) : null; return $expire ? $expire : $default; } public function getBody() { return $this->response['body']; } } class CRemoteImage { private $saveFolder = null; private $useCache = true; private $http; private $status; private $defaultMaxAge = 604800; private $url; private $fileName; private $fileJson; private $cache; public function getStatus() { return $this->status; } public function getDetails() { return $this->cache; } public function setCache($path) { $this->saveFolder = rtrim($path, "/") . "/"; return $this; } public function isCacheWritable() { if (!is_writable($this->saveFolder)) { throw new Exception("Cache folder is not writable for downloaded files."); } return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function setHeaderFields() { $cimageVersion = "CImage"; if (defined("CIMAGE_USER_AGENT")) { $cimageVersion = CIMAGE_USER_AGENT; } $this->http->setHeader("User-Agent", "$cimageVersion (PHP/". phpversion() . " cURL)"); $this->http->setHeader("Accept", "image/jpeg,image/png,image/gif"); if ($this->useCache) { $this->http->setHeader("Cache-Control", "max-age=0"); } else { $this->http->setHeader("Cache-Control", "no-cache"); $this->http->setHeader("Pragma", "no-cache"); } } public function save() { $this->cache = array(); $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $type = $this->http->getContentType(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; $this->cache['Content-Type'] = $type; $this->cache['Url'] = $this->url; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } $body = $this->http->getBody(); $img = imagecreatefromstring($body); if ($img !== false) { file_put_contents($this->fileName, $body); file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } return false; } public function updateCacheDetails() { $date = $this->http->getDate(time()); $maxAge = $this->http->getMaxAge($this->defaultMaxAge); $lastModified = $this->http->getLastModified(); $this->cache['Date'] = gmdate("D, d M Y H:i:s T", $date); $this->cache['Max-Age'] = $maxAge; if ($lastModified) { $this->cache['Last-Modified'] = gmdate("D, d M Y H:i:s T", $lastModified); } file_put_contents($this->fileJson, json_encode($this->cache)); return $this->fileName; } public function download($url) { $this->http = new CHttpGet(); $this->url = $url; $this->loadCacheDetails(); if ($this->useCache) { $src = $this->getCachedSource(); if ($src) { $this->status = 1; return $src; } } $this->setHeaderFields(); $this->http->setUrl($this->url); $this->http->doGet(); $this->status = $this->http->getStatus(); if ($this->status === 200) { $this->isCacheWritable(); return $this->save(); } elseif ($this->status === 304) { $this->isCacheWritable(); return $this->updateCacheDetails(); } throw new Exception("Unknown statuscode when downloading remote image: " . $this->status); } public function loadCacheDetails() { $cacheFile = md5($this->url); $this->fileName = $this->saveFolder . $cacheFile; $this->fileJson = $this->fileName . ".json"; if (is_readable($this->fileJson)) { $this->cache = json_decode(file_get_contents($this->fileJson), true); } } public function getCachedSource() { $imageExists = is_readable($this->fileName); $date = strtotime($this->cache['Date']); $maxAge = $this->cache['Max-Age']; $now = time(); if ($imageExists && $date + $maxAge > $now) { return $this->fileName; } if ($imageExists && isset($this->cache['Last-Modified'])) { $this->http->setHeader("If-Modified-Since", $this->cache['Last-Modified']); } return false; } } class CWhitelist { private $whitelist = array(); public function set($whitelist = array()) { if (!is_array($whitelist)) { throw new Exception("Whitelist is not of a supported format."); } $this->whitelist = $whitelist; return $this; } public function check($item, $whitelist = null) { if ($whitelist !== null) { $this->set($whitelist); } if (empty($item) or empty($this->whitelist)) { return false; } foreach ($this->whitelist as $regexp) { if (preg_match("#$regexp#", $item)) { return true; } } return false; } } class CAsciiArt { private $characterSet = array( 'one' => "#0XT|:,.' ", 'two' => "@%#*+=-:. ", 'three' => "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. " ); private $characters = null; private $charCount = null; private $scale = null; private $luminanceStrategy = null; public function __construct() { $this->setOptions(); } public function addCharacterSet($key, $value) { $this->characterSet[$key] = $value; return $this; } public function setOptions($options = array()) { $default = array( "characterSet" => 'two', "scale" => 14, "luminanceStrategy" => 3, "customCharacterSet" => null, ); $default = array_merge($default, $options); if (!is_null($default['customCharacterSet'])) { $this->addCharacterSet('custom', $default['customCharacterSet']); $default['characterSet'] = 'custom'; } $this->scale = $default['scale']; $this->characters = $this->characterSet[$default['characterSet']]; $this->charCount = strlen($this->characters); $this->luminanceStrategy = $default['luminanceStrategy']; return $this; } public function createFromFile($filename) { $img = imagecreatefromstring(file_get_contents($filename)); list($width, $height) = getimagesize($filename); $ascii = null; $incY = $this->scale; $incX = $this->scale / 2; for ($y = 0; $y < $height - 1; $y += $incY) { for ($x = 0; $x < $width - 1; $x += $incX) { $toX = min($x + $this->scale / 2, $width - 1); $toY = min($y + $this->scale, $height - 1); $luminance = $this->luminanceAreaAverage($img, $x, $y, $toX, $toY); $ascii .= $this->luminance2character($luminance); } $ascii .= PHP_EOL; } return $ascii; } public function luminanceAreaAverage($img, $x1, $y1, $x2, $y2) { $numPixels = ($x2 - $x1 + 1) * ($y2 - $y1 + 1); $luminance = 0; for ($x = $x1; $x <= $x2; $x++) { for ($y = $y1; $y <= $y2; $y++) { $rgb = imagecolorat($img, $x, $y); $red = (($rgb >> 16) & 0xFF); $green = (($rgb >> 8) & 0xFF); $blue = ($rgb & 0xFF); $luminance += $this->getLuminance($red, $green, $blue); } } return $luminance / $numPixels; } public function getLuminance($red, $green, $blue) { switch ($this->luminanceStrategy) { case 1: $luminance = ($red * 0.2126 + $green * 0.7152 + $blue * 0.0722) / 255; break; case 2: $luminance = ($red * 0.299 + $green * 0.587 + $blue * 0.114) / 255; break; case 3: $luminance = sqrt(0.299 * pow($red, 2) + 0.587 * pow($green, 2) + 0.114 * pow($blue, 2)) / 255; break; case 0: default: $luminance = ($red + $green + $blue) / (255 * 3); } return $luminance; } public function luminance2character($luminance) { $position = (int) round($luminance * ($this->charCount - 1)); $char = $this->characters[$position]; return $char; } } class CImage { const PNG_GREYSCALE = 0; const PNG_RGB = 2; const PNG_RGB_PALETTE = 3; const PNG_GREYSCALE_ALPHA = 4; const PNG_RGB_ALPHA = 6; const JPEG_QUALITY_DEFAULT = 60; private $quality; private $useQuality = false; const PNG_COMPRESSION_DEFAULT = -1; private $compress; private $useCompress = false; private $HTTPHeader = array(); private $bgColorDefault = array( 'red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => null, ); private $bgColor; private $saveFolder; private $image; private $imageSrc; private $pathToImage; private $fileType; private $extension; private $outputFormat = null; private $lossy = null; private $verbose = false; private $log = array(); private $palette; private $cacheFileName; private $saveAs; private $pngLossy; private $pngLossyCmd; private $pngFilter; private $pngFilterCmd; private $pngDeflate; private $pngDeflateCmd; private $jpegOptimize; private $jpegOptimizeCmd; private $width; private $height; private $newWidth; private $newWidthOrig; private $newHeight; private $newHeightOrig; private $dpr = 1; const UPSCALE_DEFAULT = true; private $upscale = self::UPSCALE_DEFAULT; public $crop; public $cropOrig; private $convolve; private $convolves = array( 'lighten' => '0,0,0, 0,12,0, 0,0,0, 9, 0', 'darken' => '0,0,0, 0,6,0, 0,0,0, 9, 0', 'sharpen' => '-1,-1,-1, -1,16,-1, -1,-1,-1, 8, 0', 'sharpen-alt' => '0,-1,0, -1,5,-1, 0,-1,0, 1, 0', 'emboss' => '1,1,-1, 1,3,-1, 1,-1,-1, 3, 0', 'emboss-alt' => '-2,-1,0, -1,1,1, 0,1,2, 1, 0', 'blur' => '1,1,1, 1,15,1, 1,1,1, 23, 0', 'gblur' => '1,2,1, 2,4,2, 1,2,1, 16, 0', 'edge' => '-1,-1,-1, -1,8,-1, -1,-1,-1, 9, 0', 'edge-alt' => '0,1,0, 1,-4,1, 0,1,0, 1, 0', 'draw' => '0,-1,0, -1,5,-1, 0,-1,0, 0, 0', 'mean' => '1,1,1, 1,1,1, 1,1,1, 9, 0', 'motion' => '1,0,0, 0,1,0, 0,0,1, 3, 0', ); private $fillToFit; private $scale; private $rotateBefore; private $rotateAfter; private $autoRotate; private $sharpen; private $emboss; private $blur; private $offset; private $fillWidth; private $fillHeight; private $allowRemote = false; private $remoteCache; private $remotePattern = '#^https?://#'; private $useCache = true; private $fastTrackCache = null; private $remoteHostWhitelist = null; private $verboseFileName = null; private $asciiOptions = array(); const RESIZE = 1; const RESAMPLE = 2; private $copyStrategy = NULL; public $keepRatio; public $cropToFit; private $cropWidth; private $cropHeight; public $crop_x; public $crop_y; public $filters; private $attr; public function __construct($imageSrc = null, $imageFolder = null, $saveFolder = null, $saveName = null) { $this->setSource($imageSrc, $imageFolder); $this->setTarget($saveFolder, $saveName); } public function injectDependency($property, $object) { if (!property_exists($this, $property)) { $this->raiseError("Injecting unknown property."); } $this->$property = $object; return $this; } public function setVerbose($mode = true) { $this->verbose = $mode; return $this; } public function setSaveFolder($path) { $this->saveFolder = $path; return $this; } public function useCache($use = true) { $this->useCache = $use; return $this; } public function createDummyImage($width = null, $height = null) { $this->newWidth = $this->newWidth ?: $width ?: 100; $this->newHeight = $this->newHeight ?: $height ?: 100; $this->image = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); return $this; } public function setRemoteDownload($allow, $cache, $pattern = null) { $this->allowRemote = $allow; $this->remoteCache = $cache; $this->remotePattern = is_null($pattern) ? $this->remotePattern : $pattern; $this->log( "Set remote download to: " . ($this->allowRemote ? "true" : "false") . " using pattern " . $this->remotePattern ); return $this; } public function isRemoteSource($src) { $remote = preg_match($this->remotePattern, $src); $this->log("Detected remote image: " . ($remote ? "true" : "false")); return !!$remote; } public function setRemoteHostWhitelist($whitelist = null) { $this->remoteHostWhitelist = $whitelist; $this->log( "Setting remote host whitelist to: " . (is_null($whitelist) ? "null" : print_r($whitelist, 1)) ); return $this; } public function isRemoteSourceOnWhitelist($src) { if (is_null($this->remoteHostWhitelist)) { $this->log("Remote host on whitelist not configured - allowing."); return true; } $whitelist = new CWhitelist(); $hostname = parse_url($src, PHP_URL_HOST); $allow = $whitelist->check($hostname, $this->remoteHostWhitelist); $this->log( "Remote host is on whitelist: " . ($allow ? "true" : "false") ); return $allow; } private function checkFileExtension($extension) { $valid = array('jpg', 'jpeg', 'png', 'gif', 'webp'); in_array(strtolower($extension), $valid) or $this->raiseError('Not a valid file extension.'); return $this; } private function normalizeFileExtension($extension = null) { $extension = strtolower($extension ? $extension : $this->extension); if ($extension == 'jpeg') { $extension = 'jpg'; } return $extension; } public function downloadRemoteSource($src) { if (!$this->isRemoteSourceOnWhitelist($src)) { throw new Exception("Hostname is not on whitelist for remote sources."); } $remote = new CRemoteImage(); if (!is_writable($this->remoteCache)) { $this->log("The remote cache is not writable."); } $remote->setCache($this->remoteCache); $remote->useCache($this->useCache); $src = $remote->download($src); $this->log("Remote HTTP status: " . $remote->getStatus()); $this->log("Remote item is in local cache: $src"); $this->log("Remote details on cache:" . print_r($remote->getDetails(), true)); return $src; } public function setSource($src, $dir = null) { if (!isset($src)) { $this->imageSrc = null; $this->pathToImage = null; return $this; } if ($this->allowRemote && $this->isRemoteSource($src)) { $src = $this->downloadRemoteSource($src); $dir = null; } if (!isset($dir)) { $dir = dirname($src); $src = basename($src); } $this->imageSrc = ltrim($src, '/'); $imageFolder = rtrim($dir, '/'); $this->pathToImage = $imageFolder . '/' . $this->imageSrc; return $this; } public function setTarget($src = null, $dir = null) { if (!isset($src)) { $this->cacheFileName = null; return $this; } if (isset($dir)) { $this->saveFolder = rtrim($dir, '/'); } $this->cacheFileName = $this->saveFolder . '/' . $src; $this->cacheFileName = preg_replace('/^a-zA-Z0-9\.-_/', '', $this->cacheFileName); $this->log("The cache file name is: " . $this->cacheFileName); return $this; } public function getTarget() { return $this->cacheFileName; } public function setOptions($args) { $this->log("Set new options for processing image."); $defaults = array( 'newWidth' => null, 'newHeight' => null, 'aspectRatio' => null, 'keepRatio' => true, 'cropToFit' => false, 'fillToFit' => null, 'crop' => null, 'area' => null, 'upscale' => self::UPSCALE_DEFAULT, 'useCache' => true, 'useOriginal' => true, 'scale' => null, 'rotateBefore' => null, 'autoRotate' => false, 'bgColor' => null, 'palette' => null, 'filters' => null, 'sharpen' => null, 'emboss' => null, 'blur' => null, 'convolve' => null, 'rotateAfter' => null, 'outputFormat' => null, 'dpr' => 1, 'lossy' => null, ); if (isset($args['crop']) && !is_array($args['crop'])) { $pices = explode(',', $args['crop']); $args['crop'] = array( 'width' => $pices[0], 'height' => $pices[1], 'start_x' => $pices[2], 'start_y' => $pices[3], ); } if (isset($args['area']) && !is_array($args['area'])) { $pices = explode(',', $args['area']); $args['area'] = array( 'top' => $pices[0], 'right' => $pices[1], 'bottom' => $pices[2], 'left' => $pices[3], ); } if (isset($args['filters']) && is_array($args['filters'])) { foreach ($args['filters'] as $key => $filterStr) { $parts = explode(',', $filterStr); $filter = $this->mapFilter($parts[0]); $filter['str'] = $filterStr; for ($i=1; $i<=$filter['argc']; $i++) { if (isset($parts[$i])) { $filter["arg{$i}"] = $parts[$i]; } else { throw new Exception( 'Missing arg to filter, review how many arguments are needed at + http://php.net/manual/en/function.imagefilter.php' ); } } $args['filters'][$key] = $filter; } } $args = array_merge($defaults, $args); foreach ($defaults as $key => $val) { $this->{$key} = $args[$key]; } if ($this->bgColor) { $this->setDefaultBackgroundColor($this->bgColor); } $this->newWidthOrig = $this->newWidth; $this->newHeightOrig = $this->newHeight; $this->cropOrig = $this->crop; return $this; } private function mapFilter($name) { $map = array( 'negate' => array('id'=>0, 'argc'=>0, 'type'=>IMG_FILTER_NEGATE), 'grayscale' => array('id'=>1, 'argc'=>0, 'type'=>IMG_FILTER_GRAYSCALE), 'brightness' => array('id'=>2, 'argc'=>1, 'type'=>IMG_FILTER_BRIGHTNESS), 'contrast' => array('id'=>3, 'argc'=>1, 'type'=>IMG_FILTER_CONTRAST), 'colorize' => array('id'=>4, 'argc'=>4, 'type'=>IMG_FILTER_COLORIZE), 'edgedetect' => array('id'=>5, 'argc'=>0, 'type'=>IMG_FILTER_EDGEDETECT), 'emboss' => array('id'=>6, 'argc'=>0, 'type'=>IMG_FILTER_EMBOSS), 'gaussian_blur' => array('id'=>7, 'argc'=>0, 'type'=>IMG_FILTER_GAUSSIAN_BLUR), 'selective_blur' => array('id'=>8, 'argc'=>0, 'type'=>IMG_FILTER_SELECTIVE_BLUR), 'mean_removal' => array('id'=>9, 'argc'=>0, 'type'=>IMG_FILTER_MEAN_REMOVAL), 'smooth' => array('id'=>10, 'argc'=>1, 'type'=>IMG_FILTER_SMOOTH), 'pixelate' => array('id'=>11, 'argc'=>2, 'type'=>IMG_FILTER_PIXELATE), ); if (isset($map[$name])) { return $map[$name]; } else { throw new Exception('No such filter.'); } } public function loadImageDetails($file = null) { $file = $file ? $file : $this->pathToImage; is_readable($file) or $this->raiseError('Image file does not exist.'); $info = list($this->width, $this->height, $this->fileType) = getimagesize($file); if (empty($info)) { $this->fileType = false; if (function_exists("exif_imagetype")) { $this->fileType = exif_imagetype($file); if ($this->fileType === false) { if (function_exists("imagecreatefromwebp")) { $webp = imagecreatefromwebp($file); if ($webp !== false) { $this->width = imagesx($webp); $this->height = imagesy($webp); $this->fileType = IMG_WEBP; } } } } } if (!$this->fileType) { throw new Exception("Loading image details, the file doesn't seem to be a valid image."); } if ($this->verbose) { $this->log("Loading image details for: {$file}"); $this->log(" Image width x height (type): {$this->width} x {$this->height} ({$this->fileType})."); $this->log(" Image filesize: " . filesize($file) . " bytes."); $this->log(" Image mimetype: " . $this->getMimeType()); } return $this; } protected function getMimeType() { if ($this->fileType === IMG_WEBP) { return "image/webp"; } return image_type_to_mime_type($this->fileType); } public function initDimensions() { $this->log("Init dimension (before) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if ($this->newWidth[strlen($this->newWidth)-1] == '%') { $this->newWidth = $this->width * substr($this->newWidth, 0, -1) / 100; $this->log("Setting new width based on % to {$this->newWidth}"); } if ($this->newHeight[strlen($this->newHeight)-1] == '%') { $this->newHeight = $this->height * substr($this->newHeight, 0, -1) / 100; $this->log("Setting new height based on % to {$this->newHeight}"); } is_null($this->aspectRatio) or is_numeric($this->aspectRatio) or $this->raiseError('Aspect ratio out of range'); if ($this->aspectRatio && is_null($this->newWidth) && is_null($this->newHeight)) { if ($this->aspectRatio >= 1) { $this->newWidth = $this->width; $this->newHeight = $this->width / $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (>=1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } else { $this->newHeight = $this->height; $this->newWidth = $this->height * $this->aspectRatio; $this->log("Setting new width & height based on width & aspect ratio (<1) to (w x h) {$this->newWidth} x {$this->newHeight}"); } } elseif ($this->aspectRatio && is_null($this->newWidth)) { $this->newWidth = $this->newHeight * $this->aspectRatio; $this->log("Setting new width based on aspect ratio to {$this->newWidth}"); } elseif ($this->aspectRatio && is_null($this->newHeight)) { $this->newHeight = $this->newWidth / $this->aspectRatio; $this->log("Setting new height based on aspect ratio to {$this->newHeight}"); } if ($this->dpr != 1) { if (!is_null($this->newWidth)) { $this->newWidth = round($this->newWidth * $this->dpr); $this->log("Setting new width based on dpr={$this->dpr} - w={$this->newWidth}"); } if (!is_null($this->newHeight)) { $this->newHeight = round($this->newHeight * $this->dpr); $this->log("Setting new height based on dpr={$this->dpr} - h={$this->newHeight}"); } } is_null($this->newWidth) or is_numeric($this->newWidth) or $this->raiseError('Width not numeric'); is_null($this->newHeight) or is_numeric($this->newHeight) or $this->raiseError('Height not numeric'); $this->log("Init dimension (after) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); return $this; } public function calculateNewWidthAndHeight() { $this->log("Calculate new width and height."); $this->log("Original width x height is {$this->width} x {$this->height}."); $this->log("Target dimension (before calculating) newWidth x newHeight is {$this->newWidth} x {$this->newHeight}."); if (isset($this->area)) { $this->offset['top'] = round($this->area['top'] / 100 * $this->height); $this->offset['right'] = round($this->area['right'] / 100 * $this->width); $this->offset['bottom'] = round($this->area['bottom'] / 100 * $this->height); $this->offset['left'] = round($this->area['left'] / 100 * $this->width); $this->offset['width'] = $this->width - $this->offset['left'] - $this->offset['right']; $this->offset['height'] = $this->height - $this->offset['top'] - $this->offset['bottom']; $this->width = $this->offset['width']; $this->height = $this->offset['height']; $this->log("The offset for the area to use is top {$this->area['top']}%, right {$this->area['right']}%, bottom {$this->area['bottom']}%, left {$this->area['left']}%."); $this->log("The offset for the area to use is top {$this->offset['top']}px, right {$this->offset['right']}px, bottom {$this->offset['bottom']}px, left {$this->offset['left']}px, width {$this->offset['width']}px, height {$this->offset['height']}px."); } $width = $this->width; $height = $this->height; if ($this->crop) { $width = $this->crop['width'] = $this->crop['width'] <= 0 ? $this->width + $this->crop['width'] : $this->crop['width']; $height = $this->crop['height'] = $this->crop['height'] <= 0 ? $this->height + $this->crop['height'] : $this->crop['height']; if ($this->crop['start_x'] == 'left') { $this->crop['start_x'] = 0; } elseif ($this->crop['start_x'] == 'right') { $this->crop['start_x'] = $this->width - $width; } elseif ($this->crop['start_x'] == 'center') { $this->crop['start_x'] = round($this->width / 2) - round($width / 2); } if ($this->crop['start_y'] == 'top') { $this->crop['start_y'] = 0; } elseif ($this->crop['start_y'] == 'bottom') { $this->crop['start_y'] = $this->height - $height; } elseif ($this->crop['start_y'] == 'center') { $this->crop['start_y'] = round($this->height / 2) - round($height / 2); } $this->log("Crop area is width {$width}px, height {$height}px, start_x {$this->crop['start_x']}px, start_y {$this->crop['start_y']}px."); } if ($this->keepRatio) { $this->log("Keep aspect ratio."); if (($this->cropToFit || $this->fillToFit) && isset($this->newWidth) && isset($this->newHeight)) { $this->log("Use newWidth and newHeigh as width/height, image should fit in box."); } elseif (isset($this->newWidth) && isset($this->newHeight)) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; $ratio = ($ratioWidth > $ratioHeight) ? $ratioWidth : $ratioHeight; $this->newWidth = round($width / $ratio); $this->newHeight = round($height / $ratio); $this->log("New width and height was set."); } elseif (isset($this->newWidth)) { $factor = (float)$this->newWidth / (float)$width; $this->newHeight = round($factor * $height); $this->log("New width was set."); } elseif (isset($this->newHeight)) { $factor = (float)$this->newHeight / (float)$height; $this->newWidth = round($factor * $width); $this->log("New height was set."); } else { $this->newWidth = $width; $this->newHeight = $height; } if ($this->cropToFit || $this->fillToFit) { $ratioWidth = $width / $this->newWidth; $ratioHeight = $height / $this->newHeight; if ($this->cropToFit) { $this->log("Crop to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioWidth : $ratioHeight; $this->cropWidth = round($width / $ratio); $this->cropHeight = round($height / $ratio); $this->log("Crop width, height, ratio: $this->cropWidth x $this->cropHeight ($ratio)."); } elseif ($this->fillToFit) { $this->log("Fill to fit."); $ratio = ($ratioWidth < $ratioHeight) ? $ratioHeight : $ratioWidth; $this->fillWidth = round($width / $ratio); $this->fillHeight = round($height / $ratio); $this->log("Fill width, height, ratio: $this->fillWidth x $this->fillHeight ($ratio)."); } } } if ($this->crop) { $this->log("Crop."); $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->crop['width']); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->crop['height']); } $this->newWidth = round(isset($this->newWidth) ? $this->newWidth : $this->width); $this->newHeight = round(isset($this->newHeight) ? $this->newHeight : $this->height); $this->log("Calculated new width x height as {$this->newWidth} x {$this->newHeight}."); return $this; } public function reCalculateDimensions() { $this->log("Re-calculate image dimensions, newWidth x newHeigh was: " . $this->newWidth . " x " . $this->newHeight); $this->newWidth = $this->newWidthOrig; $this->newHeight = $this->newHeightOrig; $this->crop = $this->cropOrig; $this->initDimensions() ->calculateNewWidthAndHeight(); return $this; } public function setSaveAsExtension($saveAs = null) { if (isset($saveAs)) { $saveAs = strtolower($saveAs); $this->checkFileExtension($saveAs); $this->saveAs = $saveAs; $this->extension = $saveAs; } $this->log("Prepare to save image as: " . $this->extension); return $this; } public function setJpegQuality($quality = null) { if ($quality) { $this->useQuality = true; } $this->quality = isset($quality) ? $quality : self::JPEG_QUALITY_DEFAULT; (is_numeric($this->quality) and $this->quality > 0 and $this->quality <= 100) or $this->raiseError('Quality not in range.'); $this->log("Setting JPEG quality to {$this->quality}."); return $this; } public function setPngCompression($compress = null) { if ($compress) { $this->useCompress = true; } $this->compress = isset($compress) ? $compress : self::PNG_COMPRESSION_DEFAULT; (is_numeric($this->compress) and $this->compress >= -1 and $this->compress <= 9) or $this->raiseError('Quality not in range.'); $this->log("Setting PNG compression level to {$this->compress}."); return $this; } public function useOriginalIfPossible($useOrig = true) { if ($useOrig && ($this->newWidth == $this->width) && ($this->newHeight == $this->height) && !$this->area && !$this->crop && !$this->cropToFit && !$this->fillToFit && !$this->filters && !$this->sharpen && !$this->emboss && !$this->blur && !$this->convolve && !$this->palette && !$this->useQuality && !$this->useCompress && !$this->saveAs && !$this->rotateBefore && !$this->rotateAfter && !$this->autoRotate && !$this->bgColor && ($this->upscale === self::UPSCALE_DEFAULT) && !$this->lossy ) { $this->log("Using original image."); $this->output($this->pathToImage); } return $this; } public function generateFilename($base = null, $useSubdir = true, $prefix = null) { $filename = basename($this->pathToImage); $cropToFit = $this->cropToFit ? '_cf' : null; $fillToFit = $this->fillToFit ? '_ff' : null; $crop_x = $this->crop_x ? "_x{$this->crop_x}" : null; $crop_y = $this->crop_y ? "_y{$this->crop_y}" : null; $scale = $this->scale ? "_s{$this->scale}" : null; $bgColor = $this->bgColor ? "_bgc{$this->bgColor}" : null; $quality = $this->quality ? "_q{$this->quality}" : null; $compress = $this->compress ? "_co{$this->compress}" : null; $rotateBefore = $this->rotateBefore ? "_rb{$this->rotateBefore}" : null; $rotateAfter = $this->rotateAfter ? "_ra{$this->rotateAfter}" : null; $lossy = $this->lossy ? "_l" : null; $saveAs = $this->normalizeFileExtension(); $saveAs = $saveAs ? "_$saveAs" : null; $copyStrat = null; if ($this->copyStrategy === self::RESIZE) { $copyStrat = "_rs"; } $width = $this->newWidth ? '_' . $this->newWidth : null; $height = $this->newHeight ? '_' . $this->newHeight : null; $offset = isset($this->offset) ? '_o' . $this->offset['top'] . '-' . $this->offset['right'] . '-' . $this->offset['bottom'] . '-' . $this->offset['left'] : null; $crop = $this->crop ? '_c' . $this->crop['width'] . '-' . $this->crop['height'] . '-' . $this->crop['start_x'] . '-' . $this->crop['start_y'] : null; $filters = null; if (isset($this->filters)) { foreach ($this->filters as $filter) { if (is_array($filter)) { $filters .= "_f{$filter['id']}"; for ($i=1; $i<=$filter['argc']; $i++) { $filters .= "-".$filter["arg{$i}"]; } } } } $sharpen = $this->sharpen ? 's' : null; $emboss = $this->emboss ? 'e' : null; $blur = $this->blur ? 'b' : null; $palette = $this->palette ? 'p' : null; $autoRotate = $this->autoRotate ? 'ar' : null; $optimize = $this->jpegOptimize ? 'o' : null; $optimize .= $this->pngFilter ? 'f' : null; $optimize .= $this->pngDeflate ? 'd' : null; $convolve = null; if ($this->convolve) { $convolve = '_conv' . preg_replace('/[^a-zA-Z0-9]/', '', $this->convolve); } $upscale = null; if ($this->upscale !== self::UPSCALE_DEFAULT) { $upscale = '_nu'; } $subdir = null; if ($useSubdir === true) { $subdir = str_replace('/', '-', dirname($this->imageSrc)); $subdir = ($subdir == '.') ? '_.' : $subdir; $subdir .= '_'; } $file = $prefix . $subdir . $filename . $width . $height . $offset . $crop . $cropToFit . $fillToFit . $crop_x . $crop_y . $upscale . $quality . $filters . $sharpen . $emboss . $blur . $palette . $optimize . $compress . $scale . $rotateBefore . $rotateAfter . $autoRotate . $bgColor . $convolve . $copyStrat . $lossy . $saveAs; return $this->setTarget($file, $base); } public function useCacheIfPossible($useCache = true) { if ($useCache && is_readable($this->cacheFileName)) { $fileTime = filemtime($this->pathToImage); $cacheTime = filemtime($this->cacheFileName); if ($fileTime <= $cacheTime) { if ($this->useCache) { if ($this->verbose) { $this->log("Use cached file."); $this->log("Cached image filesize: " . filesize($this->cacheFileName) . " bytes."); } $this->output($this->cacheFileName, $this->outputFormat); } else { $this->log("Cache is valid but ignoring it by intention."); } } else { $this->log("Original file is modified, ignoring cache."); } } else { $this->log("Cachefile does not exists or ignoring it."); } return $this; } public function load($src = null, $dir = null) { if (isset($src)) { $this->setSource($src, $dir); } $this->loadImageDetails(); if ($this->fileType === IMG_WEBP) { $this->image = imagecreatefromwebp($this->pathToImage); } else { $imageAsString = file_get_contents($this->pathToImage); $this->image = imagecreatefromstring($imageAsString); } if ($this->image === false) { throw new Exception("Could not load image."); } if ($this->verbose) { $this->log("### Image successfully loaded from file."); $this->log(" imageistruecolor() : " . (imageistruecolor($this->image) ? 'true' : 'false')); $this->log(" imagecolorstotal() : " . imagecolorstotal($this->image)); $this->log(" Number of colors in image = " . $this->colorsTotal($this->image)); $index = imagecolortransparent($this->image); $this->log(" Detected transparent color = " . ($index >= 0 ? implode(", ", imagecolorsforindex($this->image, $index)) : "NONE") . " at index = $index"); } return $this; } public function getPngType($filename = null) { $filename = $filename ? $filename : $this->pathToImage; $pngType = ord(file_get_contents($filename, false, null, 25, 1)); if ($this->verbose) { $this->log("Checking png type of: " . $filename); $this->log($this->getPngTypeAsString($pngType)); } return $pngType; } private function getPngTypeAsString($pngType = null, $filename = null) { if ($filename || !$pngType) { $pngType = $this->getPngType($filename); } $index = imagecolortransparent($this->image); $transparent = null; if ($index != -1) { $transparent = " (transparent)"; } switch ($pngType) { case self::PNG_GREYSCALE: $text = "PNG is type 0, Greyscale$transparent"; break; case self::PNG_RGB: $text = "PNG is type 2, RGB$transparent"; break; case self::PNG_RGB_PALETTE: $text = "PNG is type 3, RGB with palette$transparent"; break; case self::PNG_GREYSCALE_ALPHA: $text = "PNG is type 4, Greyscale with alpha channel"; break; case self::PNG_RGB_ALPHA: $text = "PNG is type 6, RGB with alpha channel (PNG 32-bit)"; break; default: $text = "PNG is UNKNOWN type, is it really a PNG image?"; } return $text; } private function colorsTotal($im) { if (imageistruecolor($im)) { $this->log("Colors as true color."); $h = imagesy($im); $w = imagesx($im); $c = array(); for ($x=0; $x < $w; $x++) { for ($y=0; $y < $h; $y++) { @$c['c'.imagecolorat($im, $x, $y)]++; } } return count($c); } else { $this->log("Colors as palette."); return imagecolorstotal($im); } } public function preResize() { $this->log("### Pre-process before resizing"); if ($this->rotateBefore) { $this->log("Rotating image."); $this->rotate($this->rotateBefore, $this->bgColor) ->reCalculateDimensions(); } if ($this->autoRotate) { $this->log("Auto rotating image."); $this->rotateExif() ->reCalculateDimensions(); } if (isset($this->scale)) { $this->log("Scale by {$this->scale}%"); $newWidth = $this->width * $this->scale / 100; $newHeight = $this->height * $this->scale / 100; $img = $this->CreateImageKeepTransparency($newWidth, $newHeight); imagecopyresampled($img, $this->image, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height); $this->image = $img; $this->width = $newWidth; $this->height = $newHeight; } return $this; } public function setCopyResizeStrategy($strategy) { $this->copyStrategy = $strategy; return $this; } public function imageCopyResampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) { if($this->copyStrategy == self::RESIZE) { $this->log("Copy by resize"); imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } else { $this->log("Copy by resample"); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); } } public function resize() { $this->log("### Starting to Resize()"); $this->log("Upscale = '$this->upscale'"); if (isset($this->offset)) { $this->log("Offset for area to use, cropping it width={$this->offset['width']}, height={$this->offset['height']}, start_x={$this->offset['left']}, start_y={$this->offset['top']}"); $img = $this->CreateImageKeepTransparency($this->offset['width'], $this->offset['height']); imagecopy($img, $this->image, 0, 0, $this->offset['left'], $this->offset['top'], $this->offset['width'], $this->offset['height']); $this->image = $img; $this->width = $this->offset['width']; $this->height = $this->offset['height']; } if ($this->crop) { $this->log("Cropping area width={$this->crop['width']}, height={$this->crop['height']}, start_x={$this->crop['start_x']}, start_y={$this->crop['start_y']}"); $img = $this->CreateImageKeepTransparency($this->crop['width'], $this->crop['height']); imagecopy($img, $this->image, 0, 0, $this->crop['start_x'], $this->crop['start_y'], $this->crop['width'], $this->crop['height']); $this->image = $img; $this->width = $this->crop['width']; $this->height = $this->crop['height']; } if (!$this->upscale) { } if ($this->cropToFit) { $this->log("Resizing using strategy - Crop to fit"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight)) { $this->log("Resizing - smaller image, do not upscale."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); } if ($this->newWidth < $this->width) { $cropX = round(($this->width/2) - ($this->newWidth/2)); } if ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); } if ($this->newHeight < $this->height) { $cropY = round(($this->height/2) - ($this->newHeight/2)); } $this->log(" cwidth: $this->cropWidth"); $this->log(" cheight: $this->cropHeight"); $this->log(" nwidth: $this->newWidth"); $this->log(" nheight: $this->newHeight"); $this->log(" width: $this->width"); $this->log(" height: $this->height"); $this->log(" posX: $posX"); $this->log(" posY: $posY"); $this->log(" cropX: $cropX"); $this->log(" cropY: $cropY"); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); } else { $cropX = round(($this->cropWidth/2) - ($this->newWidth/2)); $cropY = round(($this->cropHeight/2) - ($this->newHeight/2)); $imgPreCrop = $this->CreateImageKeepTransparency($this->cropWidth, $this->cropHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreCrop, $this->image, 0, 0, 0, 0, $this->cropWidth, $this->cropHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreCrop, 0, 0, $cropX, $cropY, $this->newWidth, $this->newHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif ($this->fillToFit) { $this->log("Resizing using strategy - Fill to fit"); $posX = 0; $posY = 0; $ratioOrig = $this->width / $this->height; $ratioNew = $this->newWidth / $this->newHeight; if ($ratioOrig < $ratioNew) { $posX = round(($this->newWidth - $this->fillWidth) / 2); } else { $posY = round(($this->newHeight - $this->fillHeight) / 2); } if (!$this->upscale && ($this->width < $this->newWidth && $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, 0, 0, $this->width, $this->height); } else { $imgPreFill = $this->CreateImageKeepTransparency($this->fillWidth, $this->fillHeight); $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imgPreFill, $this->image, 0, 0, 0, 0, $this->fillWidth, $this->fillHeight, $this->width, $this->height); imagecopy($imageResized, $imgPreFill, $posX, $posY, 0, 0, $this->fillWidth, $this->fillHeight); } $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } elseif (!($this->newWidth == $this->width && $this->newHeight == $this->height)) { $this->log("Resizing, new height and/or width"); if (!$this->upscale && ($this->width < $this->newWidth || $this->height < $this->newHeight) ) { $this->log("Resizing - smaller image, do not upscale."); if (!$this->keepRatio) { $this->log("Resizing - stretch to fit selected."); $posX = 0; $posY = 0; $cropX = 0; $cropY = 0; if ($this->newWidth > $this->width && $this->newHeight > $this->height) { $posX = round(($this->newWidth - $this->width) / 2); $posY = round(($this->newHeight - $this->height) / 2); } elseif ($this->newWidth > $this->width) { $posX = round(($this->newWidth - $this->width) / 2); $cropY = round(($this->height - $this->newHeight) / 2); } elseif ($this->newHeight > $this->height) { $posY = round(($this->newHeight - $this->height) / 2); $cropX = round(($this->width - $this->newWidth) / 2); } $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); imagecopy($imageResized, $this->image, $posX, $posY, $cropX, $cropY, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } else { $imageResized = $this->CreateImageKeepTransparency($this->newWidth, $this->newHeight); $this->imageCopyResampled($imageResized, $this->image, 0, 0, 0, 0, $this->newWidth, $this->newHeight, $this->width, $this->height); $this->image = $imageResized; $this->width = $this->newWidth; $this->height = $this->newHeight; } } return $this; } public function postResize() { $this->log("### Post-process after resizing"); if ($this->rotateAfter) { $this->log("Rotating image."); $this->rotate($this->rotateAfter, $this->bgColor); } if (isset($this->filters) && is_array($this->filters)) { foreach ($this->filters as $filter) { $this->log("Applying filter {$filter['type']}."); switch ($filter['argc']) { case 0: imagefilter($this->image, $filter['type']); break; case 1: imagefilter($this->image, $filter['type'], $filter['arg1']); break; case 2: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2']); break; case 3: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3']); break; case 4: imagefilter($this->image, $filter['type'], $filter['arg1'], $filter['arg2'], $filter['arg3'], $filter['arg4']); break; } } } if ($this->palette) { $this->log("Converting to palette image."); $this->trueColorToPalette(); } if ($this->blur) { $this->log("Blur."); $this->blurImage(); } if ($this->emboss) { $this->log("Emboss."); $this->embossImage(); } if ($this->sharpen) { $this->log("Sharpen."); $this->sharpenImage(); } if ($this->convolve) { $this->imageConvolution(); } return $this; } public function rotate($angle, $bgColor) { $this->log("Rotate image " . $angle . " degrees with filler color."); $color = $this->getBackgroundColor(); $this->image = imagerotate($this->image, $angle, $color); $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->log("New image dimension width x height: " . $this->width . " x " . $this->height); return $this; } public function rotateExif() { if (!in_array($this->fileType, array(IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM))) { $this->log("Autorotate ignored, EXIF not supported by this filetype."); return $this; } $exif = exif_read_data($this->pathToImage); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $this->log("Autorotate 180."); $this->rotate(180, $this->bgColor); break; case 6: $this->log("Autorotate -90."); $this->rotate(-90, $this->bgColor); break; case 8: $this->log("Autorotate 90."); $this->rotate(90, $this->bgColor); break; default: $this->log("Autorotate ignored, unknown value as orientation."); } } else { $this->log("Autorotate ignored, no orientation in EXIF."); } return $this; } public function trueColorToPalette() { $img = imagecreatetruecolor($this->width, $this->height); $bga = imagecolorallocatealpha($img, 0, 0, 0, 127); imagecolortransparent($img, $bga); imagefill($img, 0, 0, $bga); imagecopy($img, $this->image, 0, 0, 0, 0, $this->width, $this->height); imagetruecolortopalette($img, false, 255); imagesavealpha($img, true); if (imageistruecolor($this->image)) { $this->log("Matching colors with true color image."); imagecolormatch($this->image, $img); } $this->image = $img; } public function sharpenImage() { $this->imageConvolution('sharpen'); return $this; } public function embossImage() { $this->imageConvolution('emboss'); return $this; } public function blurImage() { $this->imageConvolution('blur'); return $this; } public function createConvolveArguments($expression) { if (isset($this->convolves[$expression])) { $expression = $this->convolves[$expression]; } $part = explode(',', $expression); $this->log("Creating convolution expressen: $expression"); if (count($part) != 11) { throw new Exception( "Missmatch in argument convolve. Expected comma-separated string with 11 float values. Got $expression." ); } array_walk($part, function ($item, $key) { if (!is_numeric($item)) { throw new Exception("Argument to convolve expression should be float but is not."); } }); return array( array( array($part[0], $part[1], $part[2]), array($part[3], $part[4], $part[5]), array($part[6], $part[7], $part[8]), ), $part[9], $part[10], ); } public function addConvolveExpressions($options) { $this->convolves = array_merge($this->convolves, $options); return $this; } public function imageConvolution($options = null) { $options = $options ? $options : $this->convolve; $this->log("Convolution with '$options'"); $options = explode(":", $options); foreach ($options as $option) { list($matrix, $divisor, $offset) = $this->createConvolveArguments($option); imageconvolution($this->image, $matrix, $divisor, $offset); } return $this; } public function setDefaultBackgroundColor($color) { $this->log("Setting default background color to '$color'."); if (!(strlen($color) == 6 || strlen($color) == 8)) { throw new Exception( "Background color needs a hex value of 6 or 8 digits. 000000-FFFFFF or 00000000-FFFFFF7F. Current value was: '$color'." ); } $red = hexdec(substr($color, 0, 2)); $green = hexdec(substr($color, 2, 2)); $blue = hexdec(substr($color, 4, 2)); $alpha = (strlen($color) == 8) ? hexdec(substr($color, 6, 2)) : null; if (($red < 0 || $red > 255) || ($green < 0 || $green > 255) || ($blue < 0 || $blue > 255) || ($alpha < 0 || $alpha > 127) ) { throw new Exception( "Background color out of range. Red, green blue From 3170beb83223f6f3b15dad8ad95b466d957b24e3 Mon Sep 17 00:00:00 2001 From: Mikael Roos Date: Thu, 11 Aug 2016 17:39:45 +0200 Subject: [PATCH 47/50] Composer suggests ext-imagick and ext-curl. --- REVISION.md | 6 ++++++ composer.json | 4 +++- defines.php | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/REVISION.md b/REVISION.md index ac9bd6c..3a83d21 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,6 +5,12 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) +v0.7.19* (2016-08-11) +------------------------------------- + +* Composer suggests ext-imagick and ext-curl. + + v0.7.18 (2016-08-09) ------------------------------------- diff --git a/composer.json b/composer.json index dc30c2e..3b3d72e 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,9 @@ "ext-gd": "*" }, "suggest": { - "ext-exif": "*" + "ext-exif": "*", + "ext-curl": "*", + "ext-imagick": "*" }, "autoload": { "files": [ diff --git a/defines.php b/defines.php index 43d888b..c246da5 100644 --- a/defines.php +++ b/defines.php @@ -1,6 +1,6 @@ Date: Sat, 13 Aug 2016 17:49:36 +0200 Subject: [PATCH 48/50] remove tif version of lena --- webroot/img/lena.tif | Bin 786572 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 webroot/img/lena.tif diff --git a/webroot/img/lena.tif b/webroot/img/lena.tif deleted file mode 100644 index ffe5c835d01701e9732194115a0d90d18232a0d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 786572 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

R_rzGElt>C#3vGD)mDJn2aLF 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 o! Date: Sat, 13 Aug 2016 18:33:09 +0200 Subject: [PATCH 49/50] read lena.tif, will need it in the future --- webroot/img/lena.tif | Bin 0 -> 786572 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 webroot/img/lena.tif diff --git a/webroot/img/lena.tif b/webroot/img/lena.tif new file mode 100644 index 0000000000000000000000000000000000000000..ffe5c835d01701e9732194115a0d90d18232a0d9 GIT binary patch literal 786572 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%0DfgtSWFYv!7=1U)V{}2+9Rl~QAh{i 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
|F;q#jai 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%0A}i$w)9{6-__;9=FPXxGCCNYttq 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⁣*_7bm{rH2yT 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

R_rzGElt>C#3vGD)mDJn2aLF zmC{K_fx=TjCmq-5C!qhOmW)Sg9z{B*bka$KYQ~_2{O7n{_Q)1FVbDA@00=_&$YCD0 zC?C4qQx^5O6+{5mDUia$i-6lU8y7ttYng&qfHe0+3ZQ{p(^>AvY4Nc6eUh0po00f9 zD}E*mbO33yW!XXPt#l zJ1XY7>z?=2%=I?B>2IDJXnH-=@_MB0?da*ZS33VVcl_PCuD9n;y}bmx;O;*l{Bya- zbN|25_YS=Y54ync7VwwH3waKvKpy}H3Pylmhd%sz>dlSQH)`wSw+96M zpIwMAJcD1<*IuLr{!ttJdmCr$ry`AKZBDRybwuhZ50{f7G-21(MH=Ea3cq z0M!4bvQHOtK3)T>JA5BHzxAJgt^MnlqyO6x!{ea#)9spnuIGLB(4Le3>`r=lH1ctg zWFne%FOq#;1a%d97m3)3C3g_<04G0*A$A~%$34I|Y_lJ(89_V|fH~$*JRTf+A`sUR zM(?9hMp^U`7I~0K>mrA@hmcPZIBi(+F+BJjsg+0y7=G(~LaY5k>jSB<3pk49w1#qy zh4CAxq9&>UZvJ%yNimjR0ylpYqX5M&3E~zanT5fOBZ%-sUt+2kIccgF9C=`O7yAC30ZAN3eOf)_f*!50s^9?;apSGNL}r4RZU+} zVMkhiYhqlD!C1^wM(xDN790jcDD6Lch2I=9EIC}T7jYa(KF4AG4*5^$zogp0|2UUx ze_3pPT?3F$P`%qB>JP{M>niAi#lESvysk38X|}(ti+cr+hFTXCgx}SH3&t{6YJOP| z{W3%QINkC%K62Kreq`0&iBMf&b560%6;xw_w>WZ#K)Hde+)PmK4ma)+2sea4u#>g~ z0Xx>PWr6g?Ape31HfY}iIm-Y?1^@(KE{I*0`tmp6fP_Gq9~izAO<#Z!Y$QoHlVzL9 zkq0=@Xpzy2&R&iVU4Wo23}M4f6=!USsZa6~*u3S|K(S&=7-u~;d<~MdGB9*SFl8Nv zz5-2Og^=%{IQ?Z&-t5Sop^9~QI^6ab_|q5rh}L7^S5j6Z$V-Dm7X&gF1p$LXupX`b zffIR9F51Q-eTTw+6CAqC&l;deBsi?Q#OxJV@kR!BH6?r-KEg|2MMfEY6>e-)mLNAz zSzI1jpR20LH@4&`o3i-%m6qBXbA5%rydl1>DZ8yMsV0w|7Ja~|-omu`bBm2dHO8ij zi2NE$$>H_RJ#H^8l9ttma=5^+LhCo<;tqz|HXu0*{fwKC5u1Yy+i}KiSpM>0*(QX3J3_Sy z2en`E0`G{`{-&+I`i)4@3V-Mbi&q9jtO$^-fai#hVYy%YR#fWuh{PQMIs35SEj@t@ z9U+o#(8;&i)H^KtO`-TUoq31DzQy9+Wb?1{1lL%c%hd2;0;c!}Wc2F8y7^w>#XcE6 zA!R|7G9O$+Ah#bw=_S(d(wM(O^NTO^FyFYsM0DRytN!L!JqzYdMy zk@q(T{=PN*_noo7Z(sa)Z}8JEgCBqE`SX|d2mRg6VO$iffdB6v?3a77UmV7NbufCJ z->_JEPOrMAWZ$*RuWAL?qb=v+92Y?H7;U?j?7o~Fa{*}2(e@#@-UHjyZM=|Z7>+iK zMeF*aTtjiDVcaoI^ukCR<2HYl~K=ir*{%`4a z>U-_>PP4YlX6P_kPMLJ4B5fT8%}JBF-Do+kH?^pBt!nKlt)@+@Zt2??1mB`!8Uhe`)Z%Cj8O>Ss-Bke7=$W;X?9X!>)HHq0^+EOyT`z=HJvZhWNAr zGNlJz0q}&gAt8XVJ%J248A@!yFq_c$mSEy>Y-npRp%oDdsPmJ-As}`iq%#M}w4rd; z0C4`n^GK$(g)rNQ^hOe^4neI#kt+gdRsN)!;IR5YN*xkB@{DEzzd3||l)?i|d@V&> z4~EAuSuvhfMwR3Tg%@L4g(zOGFDcERk$jkz?nO^LK*vJ(=gVCo-y9%)u@C*_UgCFt z0EZW?Ktvv(rSaWm+T@0q)DxKnXY#AMD;r1a>PDJdN9v#gRyR~t+FO=)=15vwLUNs6 zSHM*yASn^6d_WJ)`F5XV{(d*)Om+nwM}}My3LZvqChQT9-RjqA#<^V6>yoI~)#f*~ z&evrwkpI3dv%Rc}ep%;ySz&ouZh29ue^zODUTS$!YV~k|YHV+c!5V1@5|B;-@L_>sykVPo$kXUOCcmWT;eMAA?NP?o|tRU=xt?LWL5>JLHAl{M9JakN$CcahkP( z(v^PP6~5}NL2)~g##I48{xoby8aJU0-y^L*U?Mi7WNR_j9|M&ugQS}={1txMO+orC zNc|S9ctrqch5+>-Ug;xS8?0D*$hILU^QYjH9f3!71?B8P)E>s1LX$4x3D=mEYdqE+ zF6$nTcZJ8j%V%C^@^3Qfuui%qGCCOu{fbYQvenOx|CB|phYo-RyyoR|5uI2m@qk1Nt=Yv2_iZ>B2u zSzZ3)rX$Z=D<69*U=`0g%AR$!z+Ybg4(@FIi>|ttef2NNm_Pka0J~W)Id#K{_93@%FxoU=*Y+hi z;le)%!bhia!08^c>INOkVVAWt$~+A7|0w;a!_s8|&m)LktY>Y;vqoE&RoiJao-#W- z0Q(H#9|OQ2B2Q?d+Ke_xd!A6M+I8j=8bh001mvGiv7}GI9?(afj}ZKtqfc|E{d>RO zll+1GFTkH~SN?N7_cPG`FJ!#yH@-e2f56CCViAf>kA?FkV1P= z*wg6H(`Z6FlGGLuaxxIrf($)|2x&!zv|+;9(S)uLa!&{WnqNcY&>k|ggF^2mg`W-q za1gmZI1B`lmA+x+{vnmYHkuQ4l*HMJvMb z3USPm09sxEDF?~Q^bSiuL`pnNkKKn4`OiN1;J-P5`Eob$8(-po4pQf%_)CzgAIJ$z zYlR`L(UIAnQFbc7YOtz)xVC1rv3{(%a-{CqKut+sac);`R$EePolajNjZDQbRqF!y z-yLLqy+^Xd%dr7bvJ=sY3ONt=e>n?WsI$@f7a6*_BEzc!;Q2$_7c9W;xeDjABIk>u z)E7ne=cQ54N}SJ%qh|^&GsUjiqPV98(JxAzPmA5p3*u*vSf`M4#7z6uu(rg=NgdG7SFya2sS`xzFOp5X~#NnL@IFouyxL^a44)^)xc=7@yWf?-e zg`(I%OeZ&zc#M?xs0LpB07@X?F?*gd{5X=n-t+&wOC*`liNPnbi ze`3N7pS-}Ew%D7!0l`>7q%IB)o#)G3hUPED3s!|hd{5Num+@Aj8B5UIRgAFj5RgGN zdrM>RrkEh3YCE5|js*4@%1Q!bStx%KnY)h7-oTXX;zyAZa^w}+n(DIHQ`HG4D)kj5 zku{}}wMD$NDocGsMoY1#tUz6m9iEcM$Vl|DMEOcnDDFgtIZ>EVn0UG-XQ(#rXsJBE zF|oa?X5d0o_qn#=fs)R;=o3Y)odoEDsW$q`SNe;W zKq)wYH~+A7slRfCSM*lYk)45QTY|FpAPe_ln-8PA(3lG(@)bJ$COaI)KDPzJ8#L-2 zh4>azdV|jTh0VUnVqE5m`@%xf*7(`s5wqAwza}v2Fr_RQqH*MtBxVmO>>4xt9-Dff zNxRQw-5108&wU`3J`^z@z=02uej)pjNbo>o`5gj0k=7X{Oz$OAM(vbAI}@p#m2)Pw z>TxM=QX-mwA6?HPAYvRcpHk*S9t&Wh9@?9PI|axHcufF(3~Z3q!U>fCf}rDCKuJrc zw9;{-1~$dxdc}iC-Go6pWj0M2l#d*Gpo31q`ELO`42*!_6(Djt$~co8J)2;iN^wo3 zrA?(cXA+$th#60H%_f_sGvXenxn{CK5D8MSgqfn)$r9j#f+^<6Oi|8EWy)g^K_1I~ z(pvPSz3|zIyeDUipLdo#I|C!2l4qUO&rd-Mxan1Y-CTd`+{m$)!^dAi1ZeEkyV1^9 zqi5a%0_Z{)?1KM*{VyE;mpxg~w^w@pxCRdbIRATq0`ceF(Z6nuf*ts;n{fXh{rk?~ zr(cIZ|2q8lZ=El%w_Pl*FmDTn5fDrda9@H<_UDqFf#+4sD|+c2yZE|I1S!x<@xXSl zK)3fovg>M^^+Hz6XsmT87NorvkoNXMIw;lzgr5se?I?hKoFIQOj{)<|W$Lr&2iy@o z2`T*+)qu<11B8EP=$vyRLaYd{D+Cg=S}f{jAZ?Fso(=dJ?~V1 z1d`jY`DH7hRyHA z^baF(Z_m1(Rmo?QxW8Fw*Tmr$Sj-_V^Bg_=5}P~}PU^;mbz{R$Vo9fha82H*;|T28 zKtgi>p$QcRe#VyI&=w>S>;Tihr}N2>C|RrnBV z{mDQ(ufc}bhO$l&nau=x1CG}~;53qjH8goOl3p0Z$w$%ivFt*EJTHI^0f|f`E5nzb z?#oU&Kuhor!+w3h^Z8;g>Wf|IuXaHpsf~LK@bi-B*+S=RhHW+>axzW@mZb+e-ZimlR2_XP!rm8MTcb#f z{DH3go*~{sh6xOF6C~}4WH{%SV=2p#tTjm53UBrbAlQI}F@Uk$4{!~T_Ec=Aa#tb4 zS6~<`(4197`A-xFN|YHMZQRdhE)4*11VBOAtMCAkX00JHm*XS0g{C8{uAf=X{gPyq zG8Qe3+07Fy29}y1XETwp1_0V&kRTO)Ptw51eGSU<#<30!t{KS&Jas7w-bcVD##@1- zuSe6CpkPf5|B-@KSm~}1qrYCbffD*Hybe$#+jz1~q44;KMqAw8D&_@&86_c$fFECV<$9L4lAFYWwUMw#xR#j#4)2bXNYU6A2l{uBR zx@3wxi=C84i#6;a$ajSDR|ShV`sxw5Xr3xdoDzfPXL1zfmiQA1sl$bh{V4@4j=Z+y zqbK5z4rR5UFdWV0RAe!Z6iM={gbBqYbCNg1@I67g31{9-u#0HAczl8ulHB34^+bNfAIn7(m?U5KoG=B7W=7J2PgfA$lMW> z`2!;N2fxyNfvrB+Ar$TsDfEhfb4$Rz1+)hy=N66n3tMoH&A!Lt+z|6`hEp%m=_h@$ zN4A3h-Cz9OVf)(P!h^VSG^GIrP(*q!A@ml5^9zIeJCkysLBG$YJruAWKm}L~*dGBf z|A7ef5FQFp0Z@u3)Y@sea7L$v(ao$jVn#2YR>~&To`TpEbbDpONhN;*#yC>pLvi>c z9?Rnh5c8oI@BsS48rUFnVIvH2P#7h_65*jrIcZc*8RQ=41ysN^66g+0>C{se<%Bg7 zTwoJUr~uo?;Xx2>orrf#MVThzqaP=lrxK%p2sf1$GnwXsM%Z+wdm=3Xo&~d+t{IR5 zWJXQr#>^HR0WQRotc=OLJvukoFgMgb*WdPXxb5}G>DTAGUyq!63oMAyj@MuTK7Z=nxt>2RcD=g_BcR@Q z_Xa&U(CgiQUK{uy4tnG-4-RPT&zl$izI6^30bmFFbZ_9}FK1rgIdkXu@f^Rfp#Qrs z@QZ!eFZ^lW>~8YIkIDF#mBL$k?hT{lvQ>F8E_ToX3?DOu|IfuoUWN1j2-Lg4>SZ2v zI>w?R$6^d4PW_0>*cThsYl`T18{jF>Z#DPFxcXu3>x4Ig$TL1aWE*VscM%ChLX2pXP$Fr8$KZmnETrB)_1MdGdpYPRr!2UOKKVGi*c%#2KklO6 z)iN)MnPWW01tw{fPQS#Z50k^XFvK%h!bxm+n;$SgF-<}EHe?7myjsxM6NK;V?=Rk$9R)J&6uI8XVSurd0wN0$eXDgr_){76+n<#A7o;{kOwT?*vGBhyvck86%RuZn+O zmh!wv_cYJ(BHjEn$@n-%J#AButAtl0OjmWOy~dakcYXuYuG)ez?-ZF2^JvQhsVhO+ z4$c=89h~n=;l2ubFOWI zdHaZ8dlTmegwH$3UB4%WXow3|OICTwws|Xm@`?2ebM7VBccWUR_FhM9CEHZxsw@YZ zsN?w2n4>L*+{TF9N_I{W(Va_8D&glAhdQGUFq4t`e3}hH#aTF^Zc`A1f^?gLb?XBJ zi+x4&e8fu*0vlGl5z4>5^5x!O4UoW}{4zi35^wY7;Pf3qsk=~lyRjAfaaCUERy1Rf zNWM;?-e9rr2sn4b>DM{@J50_mLcv|0@UB2~mkIfQ)7$?n$a{P|`|&Z*0p~t#h5S$H)034?PM1Ln^jT-a(=)X%yBp^^kG<+^ zdO2|NRsV@sL+!6ePs|OUd~^QH+jD2%oICl)*x5fuyZ-?v8%AJ@n!B;KyG(|G3vWF>}nGxx?gdz_X|hZVv?-S(&sgYmRhb3D@8qST+(>RY6u;}OPorQ&#mv;#=dYH5#B zF=WtOR4{KjG~?O!*X?nCk7a$h4Do&tI2OU=|DRiBz;O60b4}zqI^wyXL>Q@;$(xtC=5$GhUyuKdTZ=rEu;W>9?hnQ9kPu zgFH+no@25uvuK0i-rRfkDx zv5az(unNm4Msmu6SfvDUF^Zk(6_)PJJmMdI1S8A}()GQ0RpaYbKE^SSD(bB&GXn;I`R9381G87a%_%+EfP zlGqYuESIYigGkb)hv5f+K5wsh-p}sU0hv34P6vgILIzLDoU%)v#3^1S>)+%$-sRip zsuJE+x!+bK{!wLv6zE(--1Ewq=T+|Kb@4ANTu-ZGo>aPCG`fKi_o60x4kkqf+L!s3 z=gFG626xL;%P$F%k?WlU9=RkV&^+R1Wwv8XWiUmQeQ7|aAG%St?Z z34ne4cw6y|Wr5&xXD$zh;XiGeFHjm}8;Qb=819k))?zS~V;E~tk^5=f6@I*JVU#t& ztkuE7wK&Pg z;W{riZzGMlhUl3%ZNe(|glV<_4m21ZF~EP2ZKctc1PC{UdFVq+P{0?ZuM5<9DI&M? zi1W~3ffui*L?JY3bXzvRP`8~K`rUpY#mTlaaSITbZ~Rc-B8f}z;VZ%_Y%W+TugZ1^apHy(>e*qWAcU)z_}hOb6boF95wT60 z%;w1AMoB?kL_vE>`z@nwz+RYd+yh~ReR%}2;tPhf{ z^pz|N)@?>A*9OAyN4UaAxdx?J=BrvA;NB9LumcGh{^EVO`T$b155AKSewj$PMq}LJ zb8o}>&tlzTaAEU%PsqE=;@_64@9`OT==9NWTC)!(<7cvI#bL=J|J0wbr2(Ne!8Dlv zw4unOB=SwJ=r=C&fr#-N?0h}6Pd=o5?#qDl3D^Mmr{A8~_EH zc3Ea(+%wU(nWUHrfPyAPO(fgly#RUvGihLiNti8+d7K;nxFCI|D1Ejt^+|r}R7JvM ze#T5)4iMpnqLf@ zfL*|wq4u{UF#JFD21Y<5ZST%?{BZ$9@E#oKALoGu*YW-eWP$qL-57=z@Sit_-(DYk ze`5%$VefAb|8?6l|NjX0|GPbZ+-rM!rF$eko&U`t^cRP)Uk9+h+joL28ddSGYXvu~ z+G|$js8u_X7(L?Do^u1z4M;wQbFs>cc}W*yU=emG4!eCqqr;gGn7kP{^8oi$w z+JhvWCXh~H!cPW=0@eI@KqzqDKnK>0B%H#AcR=kIF8_GaSt_lQOg&AepCNcEV@*h~ zT9B&(DU|`lVn2NKVN`_|rYeA17euPX@uBwB0Lh^!>Y6)6Uih;}zy#miF zKyY$>Xn8)A^Z-T{l6M5n&c$%Du$)vM%Kz{G!hU%W`PFXJmj{XS{DDZ!fz~pN_kpj{4dUy9mkH%ww;m%XUbt-qGNE&(oDvxSESZnXUkJx+tq6 zrnNq)Et{3@#@I5L2@OfdYpkcT2-akhHeXm6bx1*8guwx`@jt%IMPB;7A%&U(Na^6e z^QJ6E!=Dd%=>hv8O6no_fB6vR8>j~!2w(2+I2abQ7ZZ_cH2)hkOrBDIkADI8+3i*UGVp6M`Qi-M`WK&Az1gwCe4j>gx ziMUhp2xxdsD&ZNSekkMq4!;p*K~hjd@*jwKkCa@`L~CT#jCw_z&U@yMYakB*se>1Lu0U<8{<1R?~q!=k3Z z5u6BJ0P9S;eI_k#I@>j!mpWY>JzJXiI4|jOPSR{~>U3%5bYsqJUFvL8{%l?Plje-a z%|(yl{0AcR$)abSHBZjeJnL+H*;xZ3fS0{Tp$InD+w^ki^lJ|bwBz;Inb(j79qW2K z+WGc8YymtKFwcVkaB!D<-(Mbhf2HruwZ1=Y01;>u76E_U82jr+@1J)@KHM1eyaL?o z{qxt;uWz+qKYBD{I|A{=!O$CQoyek?X}$gLZ4gV<3$2B*5)+2_`c#6%6kwcn}hv#7eG3Gne+>wt%vG2NL zUN&21GMNv|%v%xEODs6~X=7nwLt*3#RN4@o(NCp!V<6ri+D@dL#1l@2hS&Sz8-uaU zfw*=wsS}UuAj0OC*o(vWk!c-RyeIRIrZnO_HGx_`e9a+zg*UqN5WaFBvdV|phzM)I zQJX?o&7u5elCTlzgjrmW>>3KG#@3QkL17nb{PbR4A6mBiTkc|G(MIneQk5Zodt9T-*IlB5;>k;SZ$Y z;}-Fgc+K-v&C5LF>%y4VW#%_!PyutkuYvHVd#>6(SLb?N2NtlHR}cg(2RoSibwez? z9lWiId0T0DQyw{&55+O_vo!hhc;$4o>NlhDW^~N0==2Vr1<-c6{t8IZ2se@V1Y5pTwW^N|h5?=nFB1T)v7L~G#0gJ!EQJTJH#u?*la zd!|MR`Z6RSBP8DwRXgb(S->h3V>z0*Fo?eeW8KF#?W5~{=0)ydD0bi!+bH~{fdWt; zu0n$^4A}mZVGP$%>4a$3w)U0`Lb4c=1Z`2CVcC| z-9QvlM=I>~nf&U=LlN<`sIvHDm5HrcypkAHvK?W`Q>8bg9Ie+jreKxD zhMW>XiEjX~lenQ57AC$fmRek_hc^FZ95Oo?6 zGK2}aPNv?5wl73InVg#f*$oc&4o`SZ8gW}Bye1Od<1%k@WxWCDqFtD{A3|jFKpBZV zvIkXi0M~+JHu;71;%QgIq3SETFX8?!QapY45?o(H{Z}Ld!X7)kK@02P2ha;J>O8)9Py@i`*Px#OHN3+Fu+T@& z$Vbuf695QuSZ18=DJcI!5H!U#nP?eLc1*`dPXH7y(L4<}xD5A90pLJg)0s)rc?s|q z@HjVdwmf6HB7M3hW4bcK1BI*0e%zQlTc7#3we(qQ6@-7Dchx;VUH`PF;dw{(i|)o} z{l{MPw7%>;@p1rGz^7jh0}JRZ%zxgVKl|=n|NGJIcVj?=h86(S0pLN<_Xl(Vt_;4r zHu~Ok`G*&Q;lHnq{snZ1JFo@l{{W8oTRnf@J^lX9vHP9vb%C_t|Fa+SYo+!xq8!x2k&Lx^J#F;L~*)HWJgUt6loaAovD9FEJ4CkZF zW6_oox2@l8>y0w?Mp=8~%&-FPu|d7dFyPj7MQhJGAQY{JSRBjiJo5f>G# zyH?S7v3c%v&Y%6saL@mE8EU*mpW$MExA5at*yrYb9839gIQhd!ng{*~`Oh2WAMZ5* z`RBj)oBsW+_MbZ?pKg|azIFsAMSl&)yg3C?M(Jb{=XVqPrkHYtLA^ky57SvABna~} z`nbYwJgJKib_N@A8bvyT#-BhE8-4M0e%J;C(ZhBK!UOrCBLw~trYDTrfyT9g`5hJ7 zjHEXDV=DXz6$fx-hY*F{xH2z1m|yDgyklr`b10nuzHb>M zaJyI9-j+qfoaap~fZz;(fP>8E>st4#hS=Bj&Np>Q@2Xv|YNB3Mndb6!Pjk)BGj&fB zRnu1CZ`z0(R>$pxoRboBHQAi%!xyeWivTPP6u8CyjQ=ee1#3}~jUj*+hAjYXxgU24 zg1y|I=@|j}G64j!8oFTcogm&CG^`B5mk01SQJ8BmbU>DECMkZTNw!mj>p&BRfi4*M z0z{k1+8q?r9){%rSHG8|+!-o`B>W~K6wRn0!q|WouM3rYAHrRULh_4uz@IB0Os`(5FLV(E4m~ zVq%z6wo`(ehr!JYAi<6x$ZZXXk!+DDe&88*YfXMu8zv!+5SKu-=co$vR1I!Ib}}`! z*i>0!EGse}%a%9AlX9X^h7whNLrhbps- z!bOLzTZ2+|qms7<nQp+CbOb^tuagA;Q zKoAv;~vRGgA;VJ$7vgbAZV0F={}YmbuL;z3VmS*obc8jw`It#?Y3C@-KKt9*Rs9QJOz?sQaimr2)du(j*-9g*78M)gqxocziYD%Baa z=A>HDt5NnSrGpCLIT`JuN^-}*nap=QZ*=~7HUV(`A1^}%0ER!spKgHXG3zrh-$qhD z4JLgaPWp5)&Sl`|oe{|9aNMh5z0x`+PYAB)@<4xnG~OJ}yx|i0A(% zBi&+!USw0x)9FJT+9;JWOrs2h(+8;BP7=KrPdJ08LZ0(j5UD9Rv_1e3K$zA547>ug zVJWBZxKqI)XG3TmID89&bTkOwZOQP044j|xpNS=hP$j^N4h*eB(3(ABcY0eGt%)YC z3zIa%@E^yhBFHPy;^M&25`v-#&n!eU3-Qd%U`~DjHOGfu5WpzFN^(NP`50C{K}!7k zAbcPK1o_X4?^v$t_B_f7mk7p zvb?vtpu4E(baqyQGpa&kOvUkSyAjN9_cFgdpj_c+-Vl)SeLy>&c9FsQRm_<%N@iS| z=kcajdAe7{F|SLb=c?UrsvLj-dRqbH&$zc$)>oCb*9{*2!|Phhn_Bzp2Fu%qBrpQJ ztuwwZcg^LhUS=9#1@JUpHE95Hujrm5@oHL0m)O)qHs$#WWorq_HIPn+5jvQ*f&^=j ziY;W#4ys_$VcG&8xZ8&>@Q15D{X1}xW9SR~_?w8L^+e8UtY;&z8p~LXft4|LEk>|~ zDBsQiORsVViMJjPmwyVJ=d1CY6?pkNl6oiE;v-T0z|riZi8c|Xn+d#CX!cs9U^`j# zeHeEQ4oYX?;F{k|3SW)}m9TPGxaMcF;ebfFhY}9hXLyxZ6hs6P(Sm@GMS)=p4uXup zuvZ{igCZ{h=>U?sh#=iTcOVRDOs9S?!{Y50ZQ!B4!yxAQ@^+GvS$QsWrg8^gzh7na zwm8wT3Hanxa(a%cBu`$Nsjkh1IH)Kmo@mQdQxth-}z}<*yDBuR$2Mp$!{Q_KksYJN=sVk}4`aYFnUc2SK$i zP_oEJ>XCeTLuG)q)JL!)2ogc64TzYn=%gP4({`hZ_lK1EVCsBBkNSiR;zG`ahTWhu zq2~)F-`fK5b&>c6SA2^vxh;}h6DaSBgtvs8OAH|p6tfQ!O-ub{ivu$Eg_U@PHemU! zSXwKVI>_YT5=rh$B@aaG2Vw!(UOdoF0Th0_^~^S867NaO^84W#WfY{-jDX z1yDGp=%Gmq%YsJ`DAmcq5&1u@n0j07mm+VX=-|JvaYJ zm+Ve*J;A}e+_4_3h0Gr4gySy8iv z$L4D$<_Rrg{#4__P*1J(>5cE$4Yx`Qx)?Pfpi9?I?da(DJ;m^+jL9 zi-DGx{cW!YkG~vfe>K$gdZhjBMVS2bK?@8J(627^y}Quy))NN>DWoU=^B!=}Fbldq z{2rFV*T??!sA2m5yfOdc(QtS}qKU0n8li~7jKbK+|Nidv`xA#W7VZ960t>HxHm@9I~;T$wufd4ZZ z3tS*4fS~*AhHkqC@ScNqpgmY2>eK7C_1X1Z4t-yARDYBU$UlQ_XBXJst=66xbBDvy zZBzmL^OVutWzrtk*-k~8Aq9FOGV+ubIs$r7fSrX9sai24rJj%AT{5Wem_-jWA|6*; z-kys8dno0v^SPfcr~i8`8wZ&%^PbE){*goCoBef9_TP_qV$L z_X|`28vebN^Utl)50|t48jOF}9rv=uICDhttDSRO1V6^4ODyIXoi#=c9i-8K;oL`| z50GeQNaRjJNH-d;_rzvoSgjwp;PH*#=vF_^7PtjNZ^e__5R^7N={P>T9!aS>gvs|J zmLI@Y`jg7MaU}u7N>IjN$wyJ778rOUDJMd?bwqX@QCt%$EG2MDLnMV5c3~j33?(iL z6&424@`HIrC_zpDD+|HN!}GHc>|8V_9|t%fIeES}d_w-?6|&$U8C+Kj0~rg07)t`- zR%|=S%wTFu6p4-QBPTOT&g7K!msE~||H~5rtr@N_@2M{BC@DOXlhza+Tcy;d6D8V} zUhD-BusJMV=^gz8A$yBo3-o`P%)2tlL$h=yTJtPX`69~kr`r?C+e4*4%C^>5J$ zH}Wbv*@kAarZPw&UxAix43(}AVlO~|!x0oDqIEdKPAYq$Z}|KG`f3o4Bbkc>z_-O* z8cbX03zA2{GLIu5d`S>v6`r~r$zDTHY$F=>am@#q+MN{Hws0UqQy@XKE|k6&&sc+J zuL+3Q!O;H5ko`bV?hKP|!x{GRWE+t39c1}WbdUv8m-x~a!!{uZ`U2sL5kMT`d)mZk z{lW04Kn-na0KosLi@YiDBwCILTZJSqJ|x;oG#(Vt;kPV+`T&}{Io#@_jmF!IhXt}7 zBpbou#ALG8g`pROgsnhDq73Pb0=J)Avqx_5lDR_TGK3|GL~AlTDO*~2M4p*s~g-cd9-ByavXIrMzUgm0>_o7NCqZG z_>%n~Z8Wa)Wz9bvy1<{X(3iT}Pqr29{1IW@6lB^I9I=A{#D4a&K>oUb*!_6@mSE9h zZ}k>rYA;uqY;CbOM@)Cgv3`S(%d9xQB1}~Uofwy5@ zQ0(`9DL(~f9K@6#!d7}?TLOqDkzpff;sq+>S~%qfn{!*hzsF_YVY6>>M7N~sTSCE2 zsr;stb6vc|g`dVxd>qF@m6(Ksk=5pJNGr;dAfvU>Yy{U7+|~ z!oDwniM?Q4V}eMhXB4B5PnwL--i0MEkpCwE@2M6&QtPI)@@W;E`7rzuOc^7m42o$j zsD42TAfE;hsE`hm{6|vyBTz$vFFr!!*(u0H54G}fkcG+NSHkjF@(==_YAI9(9%{so z^rA<)h(`v^=T zob|Xh_i1y%v)0@vr}LhkEqVeKuu~N;x?1Ksfdz4FZlKju1n6shHPHTY5MBgYA^-F4 zB7lH8-=6DubKxx10p4CZ_2>ECcb5SK2VW2VaTV_WK!NM`9RAmbVIuVB)xN)O^nJVo zP@s;#?smSq)qcDAX!2GJ;j062>wJ46MCW<58(QI=Xz5j_&eQx#jv9KGk2P;XHDkQ4qJ!O)M?e7j5M7wdfL7%V0+XV&gk_g zjSfhbp0!xIw8{acZchJ-aDNHsqAYAmfj zIHV~MdjdgfL4>ry%|C?J6o{|(#a9G{mG4Jq?Fug23kzRT`C(iwfdM(UMjW+;$ZH{n z*Ar!R7)CXgSB2$Nlck^lD?kVeg9SxcRz--c2+b)#!u+3K5Xj08;N_q=x&DkCgeV6k zfS2?ll#KixP%*vn0K;G8kA?o%R|iSo`P1k5vDYB+PJBxc<~)P> zip&xGzw7o)wE0N4)L9|6E_F6zdV5FNU zx?R8yq8WdrO1H!CpUeUO`*$e%YAB0Q!dGFrYe!ynyn<&_axO$ zDm)ix%RRUW%EBP#njrRuQ2J^d4H7U z+D1|RNCyxo_S?X)MM&8;o*Nezi?m6<=Lyym%m_s?JKO5#5^iO2xATNM7?vPy8aXF1 zEX(e%HhT+F!rZ1qD%B2#9id5}MHff6=UQ75Xz7W9w0K6I3mY4GKgeCU<##)bTif9eW8@w86)LG~|h6=u3QngUa8Clr8ZhFAfY@fBhPN!F=%lg2UZEaw}53#@n_X z%iDn9uL~Bg_T_%}GjEX(XNiw!k*{W%muanU%Fo2ieVF2dh^m8V@PxJ_$lX}N2nKUL zlzu&&cALq&#pB*$K!=xqMi#bJ*ea#Q1X>%{c1#(e@K;I zXmbebI7Qe^px)qe?n{Kf!{N_oKaeON25C}^Q+nluRy3}ME*OM=)X)W(*6PQt#z}*0(qWyjJ0|U# zDW`VA=>Y*v$3hm=F&XEYj5klaTr;syb&Q(KjG0bLodgTyk!T1N-j8~tA%Tm?tyZ*c6te;q&&;0yh7|N8Gk z00rv*2YmSO)Q86hem;9@FHueYCTiEp#EUZibs77fS^3bZyymvu^gFL-`7hW^H+JV< z&b3`G$Q#Ua4P<#Q!$lwuQefH8=YBO{x#YJ3-XFw&NCBJ;_^x@)1DS#IA-1#g61=9{ z2VCw8nNA4&4*2}%y-*Y59`K}tW$3Ke3f7?Bbk`a1g1Q{X()2JRK52IzF&U3o%!k4G z16eRv+Hr%v*JA2**q|onvQc=&ZnEq*?(gUF|2gRY^-|vNpaR`4{o`)+e;)4*iT^)${P|-Sq`?05u=@AAwg0$Y^7V4j zr=w|aT9m0}=Bkn>E0oU1c(^Q|O`fpF+D#XI-Gt&m?BlgN-SB2EZcyp+>EM^Bm(of6T|8x3J=0u zm?S(zq;^uR9e80Imf4PDH{(RrDZHvAdT9)&9w%%9(V-U9xfGHfIA@qu&eTT zX-!{4)5W&Emq7pTXt>z1_k4XVJSWPFd(yM_rrLH>M4oL##S)YxEH-sPj4uNI`4HwHUvKGb$w`aO||;p?*)KmW-sX_J(qVy#t&kIT~8#B&GY=`)E^J20Z z%=Qrk<8rECW;A0VLbi-3S&+b6m`t7-%?wLoPK&2bi)T!WrO!_U>W*eLmL0;fp{Vmv z@>O)(W>NM|U1oyR^#fD4k)&LSlgvxvf?PijC5#|YXCb(NcUXkh{=n6LPgks@LT9dY zFb!VHSP}!+6mt@x`3r`>tR*Ds9149Q-Wn$>78Pg2ySR(UvXwmf8hU{0E96x6i6Seabw2Kj<#mVwT zG3xL*?TTdelBBeac=_TOXxNd>-3g^L;^~pnh$O(l8Ro}$7er^TO)S}huiKp5wJoI! zX#Y6MB?9ddl6-^2yu;+&5k81Y5oh*Oo}{L9-8|sZfw{pUwVJF8l?^KMDzuf1X0^yCOvC8P#fE=ru2Z+XLQC zBlLNJrBgo&tG8Ac)Jnki^W1D0)uoP`v?2b3Ne_MQV}N%^Rf7HlO8&D{{WGQPIeenk z0sQBMO8itNc&^e9tAGL_4Z`-3svpsd;r*x@OhG^mQa=Yfs1d3pWzXRo0bkCUHth4h zup7s0x^b5+=rX^sS%y8|;5uv0P{bc8%n@$8vmQ#r{`ig~6iq z@zR2qmD$1ayq6Vu6V=7R&|M&R6ojDq;)(j*FFT4R_V0e#Q~s)J_nQNC6Nk&83kFzl zZ_YHoJ-heK+0NIe_W=v~&7~u+0S68G|M|o3`VUU_ANc@50C0g`KJnqonGaWC@jvzP z+EH);{d%|m(~Z85cP@Rp10#Top_4z90^9*F(3LOH4m@-N7XRNuxq!aUj}E-Lbz(4m zw<>IV$rjvzm~~4?ew3zr;MZMo8Lq>iHZOC)YrLLizgz%?ziC(V{O7U(^^kVi9~kso zPW!x<{g%rC-({bd|JMty z-v)R8^Loj@hxS123!MM|`xA&i&3`c;c89nSH}Zb#&-{4G{<>B*lFj`|OT8muU1iex znXJoH>J<`kfK0y#{vSN$3;{|@i6?QiBgy#vvFLp$d{-i|BO2QsjoF8!?Z?3sn0y3F z>_OsMV=+}*Fhy&SMN8v$ZNgP=O=(DCbYhu3L~b{Ux1Y#8MBw)jSnW90UJ|zjO=~7` z8q%BL9R-)xqWOW5rxEm#cg7VPw zx1GfQ*+!ZX6XH_-ZzAj4NMQt8znqbU7FB6ndmV*GN~({QHe773ALwiW=g+0~w)1C>-&wmWssa-l2(7(#p zzAG?)EO)5!oB94E4+HL5(<0%wg$X-vHdYjYR<9w+zlVAk zCi%N$*ra@kwtTYByji4ND-$kZs(uh#qD8qZe3cCl-IY<*as7FoKG2r$Cic@a@m~+sO`ofqB{GSoM_Js-#=jt(|37DTj zqjmzW06N83s%A75oIkMm%SKa;@Mah`2szLmWYGWq+~OIP3!kf$&*1k_OP_~m-Z&2CPmgWbW_|874m;Dv9o8|w zZNjS!<_E?DX(Q=S4PXippl?NtD(_fZ)Lbrn&m<8vJ z*X56c1k{)@4n&}y@`=up*9U4}AF6(Jr1sU3J(kODg~b@|Z8YlpsEKK}6rs6A&sK?}^)lV2eS04^Zt2)h}=0e!g#MCks{00sJM zI|$tZfDQpQF%K^O`sm`92ZyKb9Dm%>nY#hov;{vXh9Aj@_k8w~&Miy7&cvK)iC0pLQM&&Yzp7f69!%YiM! zIgka0PtRbwqtEZSkm)%G<-gzvh2WUic{U^SBKUvY*5h8!S!dcwyB%0Sa1l6ewH5 zaW((f3z<_#%r8r2&wZjtYQ`Nd>nefX58NIi^#YbWKw+Gx()zG4_NAXe5l zZ5Yu1q33jO0=^T)=)uvU)%`G@eF%x`i3h?DxjGVCz8PPS3=a^FONl;&sDhu?o>p)u zzwmfj!-aYL&^*p;^bXWf4%$%!QX9r1} zx)`fifGJ3j=WLV9m!QFrsa{25%uJxqO2*Afpe;y&GcA2CnhImt`AEsU6!|>7W+}zC zMd*uB6q4=PXq9sdRksY*E?Cb|+{Fm)93*89f<7;W3`5VQRLKgWYBR^QQKb8xs9HnQ z$4E8H@x1xTf~6RU3B&k+6@k;NqG(nzAr2;8g%_-#vQ|==^9hVFP>OKsEv$TIp(uh( zn;n9`2^XT35madenGuc>ucFJ>Yxzs4(iIGEvdz4mtz6C3ZdA&a@r)bg)*YgJZeX{x z(h;e}&q_|2K}nv0QAY90y$AOcUa8)FwV`&X(q5MT#vRbLm5`1yc^J_MJehClyr6o?519b zRKffCF|ajgmZ4PP2_ObCzKN8E?GVk0QOt|hFNsV09-XrhS-v%?DmuA#8)|P1`cNXK zpG3Qarw$O9HyOMk2K^Qf+8$;1_+a%EJrr@E$>p9zcu&B&#pYaQ^E+a&8Q-H))5>y3r600(#-CVE%dGFpUEO z+6`xZ_Xy;_JPt?%kELe>1IFQ8U+5M9a!|HsG$(UB%RQ3kdjaEMD2UJZOqAvace%%Q z=ZrxdxX3$RnLS>c0pkD5s^V95x#N5CCYtkKc9u-Emc2Y!_407_o1;()R{QF3?c39k z0@(ZdWXGG+9k0)Jza2R8{(Sco=s$hOCV>cd<=BV*zR!avKHWI`>H39_SI>OBdi+=L zg5LQH1O!CT+aVC>Z$sxl4-I?)C^SGJhAxB>0q`Z<3qqCgr$662^5X2dqa7M=!_a*3X@whK!y9d%Up#=bl zaF;T@mkS)101BOLzLMt#7WCCje}AU$e1^L(;5!S3&n)jnFAN3TfC=pf|9`-F(U%S^ z(9`L@Q!X$9*-v=WPB>hrofc?;KcY9CaKJ3UcGhmWXidFfvs|zmuGkdUZMwU#{(E$H zZK8WtJ`k!Oy2SU>n2+7cXSw|0QuWJf;mbY7iDuKwdd=H?hL2}6{xO&j39sKDw*C`n z4A=Ts^{Z0ZFE+t_1@ji4dzDBTAd}8v$bCfG zMGUSJn(xiLBCCc4a)L z3Nl}baO@YI-Xk%79bqppk*~QRT);c8^I}zW5Glc9tcJ;VR@VtPns43 zWnoh?`Pwp?gv8mO;5y{r6C zc4oKJUn5i&Ai37HcsQ6D7Qp(CuJ{3WI2Ln_$$z30zA(#2?aFuAs>!Of4;B8YdQkN< zKQyI%YRvku$N#Afyg=C>8r_p^nUgIUQ!TdlZ8`7v20pareC|w}YAyUwXPv6GOqE&Q z=ILMNxJNAfCsxbz4B%pAKPxD>n(AswQo2`R^h>anBwK!*P!2lAY@}>yGWDBi!t^-e z^f6;kHTS-^ZbqlD5@9DYml0u9rACu~e;cJ(saOcPKBap0Vag@2xc!;3R zMKJ;XHXTX%tD;@HmaSXQH>_hAR+7Njsa*x*1E2;$6gNS(jKN)q6)mEwSCC8_`O5DZ zlGOy+8YX`QjWGw!Tuhu=QB_UCYmE1Vsr(n>GRkWKe_l1!!_l(Ln4&02%{2VoX>SGDzUiLj|w zRoPQr9`vD39fR_pETYQ5N)*~0uT2J>AEXAVL(J5d{+WC57}ayZ)qtq3WA zt#b*|u?ndUOV9!Ha}`<_5i1W*-~-qJZUl=Gq+#*0uq1H)L$QlyF@gt8$6<+Lz=zI> z(alXV&5QP|N-Er(QX7q_jmEZaPwCo*Jf4Cd#4)bW={H!+n>5B<4(Be9e^;u$Clo>u z?6DYN4qUKw-s6dG0zr{PZQ4n6ElQGxA>6C5yQ7KCXl@6Jdk{}QN|D~;3xAYLpUX5q zOT|wOVD;BN*XY3KAJk|^!Leg94TG^$3%*Uwm;#7xA)^jNcgLWd*Wn&B8OKx#VE#;K zq!T*vh{iN369hG)QG*JCU?W;SVE>=PFM<9?B^>^B5E*`EN(Dve88ii}jlV!~uv`NA zPpCLvEe!ccVGwMBnX)LT*90wwQL_Q&zd^u3L;s`Q6m)9FGQ1-m3;2Ja8Ybv9j|I|R zWO##4^H?5qf!X0T^b~l9^IV~E08|6)3It2?C(6^u${-O8bm-h*ePFyf?`3`VL}T%I zW6^kP>3D0=n|&3p4pqH80@c8Eua5!_r~#J!Hz!-64)V>pgOjiYoa+ubg8Gk5oZ6MP-knZfwgfG44 zGn`Ndb3WY((O}4nfnL-fY6MH~3pn8)_4<7$T-FmV*O?F()ZFXx98Ytcu-J~fJg4oJ zGghDmnJ;;q15VpDul}Y(f5WA}VO9^N@$Wd4w_WOoHr`Mg=dN4*Fpd6`pZhdlI$We2 zDOQe_E8lduzVsFScD?N1x2vG`@jp-M{&=?kkDprqcu@DB`*r`hQ~WQedc2bJYoF&+ zoBU<5;Ab1>fsA>ZO}$DXU#8Of>C|&H`YBS#%zr$YdJMzpNyK-@lRBbF&D*dYiS#b8 zfF^_0hkZDOv@eMUa!?bB0dCKVO{mfh=+gBmMX}6^C|nbQ)|mn(f9fHY>>xvY2xxC4 zUMpGLgy!r;u^Vx`>I7C*GOH|+UKYbCL$RvjNuUMQ6P4A;%soVDHC7C>;F=WJ8U)oC zUI|iC6h#D#{?4|+eeHwIbr+j!PnDPL&o0>K_17s)1$eRh`((p1gky1Z#+sD!H7VV3 zh<+OVu}=8RED8EGZ*vvzcBfBO+CS8Kr11-sF z`%1iZ8KDxZEKHCA?O5|-fyMmon+ zYOeOCr12v}FeygQNG8t1=%VO;jy_+J=|t#@gtdDD&AXMgxzgRmmXOww7m zt5qxLtZyK)`*(kq(LZw|TP5G$wfDc5Nq{7A7jDM+a6X zS4R;#5Y#R->kLDAg)O+xmHaFf{G!x8mn%b{9-U@b4bWzwG+W^`K4R95q`3gj3Cy<< z1xP?PNajwMRglRALuSxwpU_Fi42tm(0$Mt(f`&(35YRw6Whf2?wJ#beocW(?Q(wpg zU>pLg=X1FlM!?Tx>`|E}R1K^V4=WYJGR~+%1XqJmlXBRa2H=QMogrw{|J4p=A9kmO zA^>TCiPJzA{770V+zZA6hG*%%F`s!PBM|ff;V@&uXANfAgL$4Hl)~itg89DSE`PAh zGY;*LyRyeie8IBJk(!cG;Nmvr04XupR6O2XHP%uz)>HiYV8z6NN*DycI`scR5RGq7 zcDy^$`S$d_H@)5O`VPOn&;=ua$xDadT{<~=>Db5q;~xi4f4*|^<8@#`!xLh`eZATD z^$xHgK<)1jsXh1lf4klH>2Ci=$b~^106GGOE`7Z>_*YFZYyqd=Up?_tecL$#=PI=J zn7L29%KIMiAZRsq{b41qT`238%Z|v@hxOWHChIAq`lQKp+-&K!re1Wr`)vAthxxoa zFyJv?@tQ9CJ^i`f{tWv-E(C!+{n_3tc_H)9|smF_(i@SSj4FZv)UYzHsU`9RtkxAUUKbJecD?u5s9#g%%;X&wsLhMZ7O zta#v5-nWS#I>kc{@lA{1mX2}X#CYV8Jn-><@ykbxRFiFnPv_EqzgqsEdzF8{u^(*z z&pQ76sr}C<)qg%J4<)~@6@<(`hxP9pB%}F)9}TqI66#eJb$~><2($+h}M}nb85Ps#r=}9DXmB-vzeMWZI#mQ1eSSn%N$UZQO~j*^aB+j4oc6ylWew zB9d4eMQ%&x?<4RI&_n=;JH!%nlT}dl4w;vRBxYSQZ%;h45*`G*Jb_n{K(9{ZSE9J} zC@zG*>Tt3OJXF9)D-iq|cth8eBr}T=sD(T6{!PUH@BgIE2IW7VJS&zwD+%+rkP(y> zkt|w_OWVpXqM55zuFmYTBb9ZhDr)*#Tl(8u2D_TiwKkovZ|G~TJ5{;+U~Yb=%h9NH z7vV(CE$GyxXxoycz%oSH`sD6-!bKYEiJbGyEE~ZSPId9|`H#4N`n5yMq z{-m=PVrlcS%tgt{^(@C0kzyszuuZ03N+Qn$u0D}Ei^yGqvqj1BBnA1bJmnH91H3o0 zkR5`mC{%r!Tj2_Dg~INQ?rG;n(^hG_Fn zHH3V_5yG%2Nkp7%L7XUTr+P(-WJZi={?5>`e<4B?0=~fp5vQCTr(Y85T$Yf%I-zK7 za@AIJE0TC534I1nhmz>)RMIsD`wo*m#AMuOaqk1|Gmfhp=p+EEvS9pgnxh;@h zps@CBL*=YaQZ2+7!jT2rh%L#qE(8&q60Ek>sgD@QYaSRHcBl?{k#~I(&z9 za7u@^$55-|usL-CY&mIZqZYt&!V0e#GXe86b;4?xNHe{J2(U#ru2+x2>K&^0HH41w z(En(*1P!9mRLN64NI(jx02ozCe$lF*YE;kk@LdF>3NZi)M^ohhjtd?Bb&?SF-=YqY z|1IhlrnE7$X3VAm#OSEa6k>roOrs9NsMj=XH;n=g+Gm7nfYE?yEMN}R0c6?7eFg{x zjAYqEjL@9)(Gd355gG^VN)P7SN1+`OOhHxIqve4yIQF;aj<-M^K;Bqe{&-Kt%kJH; zVHOM)pze~FN1G;(H@-jK^5%5co3mZ-db{3TXrH{;Gua2X0GR(Cdw=QF`~DNq3kfX% zA8(xdeEs|h22Ws zL51Rw#&|@hI-%F}noQ@+(9*8HU^BpeG3X5dCg@7Ky&r5pneKkT!GT{WH~mtk<7|ct z7W|7jzTQk%pT~Ya-Ekq?btwQ_Kp><7`Rsi@GkAf{g>D2e1+esaji-DWm(z5EZp#(F z?{>g&+ie)iaz6CwAA1dt0+t6J?R;Qr0}X!gi!BN zmc%HJr|gPhRiubZ6Y%8_`$F=naQx~NK^0n30TgIFuaYFMrm0Gh++2XPZ^3)l!{IXl z9`dwE;x{|U|GS;=w;i;3Xxc0!V-}d+vF0B*Sr8Lexc3#59W8C_t*Gy9Z0c)k?`>!~ z+t7TrwfRgP%zt+s$j|ApyZ1;_chls~4QTDWxU?mS>C0lOHY4}%KwYMgf0Q$!EN{%E ze4V3tvny??H0^!8>%*Q<{_8^%upm6(_Icgpe&6hU-{PHYhc0;gRQvAtZLTjZ{;9o% zpBn>HHLl5e-(-pTZL#fDx+CaR|EQ5aGNlcB+%H;+Z+U&~6dN2<1CiXaWKB6vCtiS) zF2g}0j15(fvlFsh z%)AiET}puF7dkWugp*hiXz41FVFORK7_W*T*CbZzGA^HS6r%e1(`h?bbG2`K1s3KXxb>& zZkJWrPgSQj9jQ3ld*t4UeS;@X40X31&KFu>kq3aDWKp7KUaT}CIduifyb>b}OJFa; z(!n6Q7~xulFu}^d9HH4jR)iz}!dxfFfbF>?Sv)UZ38=lWSl*l+vPE#aiB->ul1$sK zfsTM#ThgE}U?RHGs0)%3AV%mCqNi?es&25ju9iRxVKux?*42S<`QXa@Y zVDEe;7l#Nx3i)%h6%?2kpatn6`DKKVZ!jeF>w}>D=+xsn`M60l;WC9P>MZtgn|9ow z2r9K;77c>!U!xw^E5{7b4ha}HS;*(3hr_=JIB(D3S^>^~gIg^+lR`*y(uTum+vRQ7=&7j6t7n*kuPC+zX#|#BUEm z9ay??EYl9A(9v870y{?X(&57w`B@_cp+UflT^VBq?y(~0*zR0t2OcX;pJ>b;ZOR{S z$s32)rjqeaXa_EufL)-g?A4*#S6v0Kj{*_2;Z0}?(DCYY>+5rezzFoVcmLZ%OQW#H&XfWO`73-SM<3-b1bPoZAO3!m@wf4SZN-v%%2^iCz-1IcJ^5n_n3s=gd;ZL7>zXEUJkcY zsA{FNx;Tn1K7XGywM!!JQYsGXO-Id^gL-SPNq5d_?z0)sI)Ufu9)v_#h6}m_`UCze znNFw)z680jJm2|D|Jlrp^BMk2Ill8=xB__2W@q-gZM^|kuh(|c1?)K36kNSl*LjET zg5Pr`V7rl-ej{MNnd2Vvs)ll14?M<4>Eb6|#RHG-iBtR#gdmq3Cc-z2f*VHBZ6kBY zYk1<3J}+~;Ih65vAn*5^b%1*K&$G7B;s06ZA3rt!`MBzjdu6cx|KoDrm(#YX4*AQ{ z)Ta*i0~PHik9vbbyo@J+^3zMAo*^+#<7tP<%p)n3jyM|hQ@8$r=}2JijibQu_W%~i z&x~$7XCH#vx)WU+N!}AfDcgZA*@!LQf~y4JPduq9kpZiH7g2PC$mpR6;Iy+3&ul?) z+E5JWbF4;7E92Ouk;JNaatSzgVpuh?j2aYY51Lzx0QDZ|5bPO9i1Bil5Y;QlnpG?iz?G}Gj%{4cYJBPjl58nix|+%h zCrW={sn<{((Q@^2qI?aTJs$zUeO5R)^a_@SCclj7aq?M_s=1NsISFY? z;^lKAVmBEN`VcK z0+0{Oxi8e3QK%KO>OkrrHGwr$_5y~&X7D^%hfN`Z=nH5Wwius5xEPAyAw-sD7_s|C zK<#ncMjhr6z&`r`4V^aPa*g;*qpq}|*B12I$1)tFndad<071A%^IWj_j}+#N7G#c; zW{;I-2P^Z(D|05QGJy^{+LHaUuIOb;ez2oxtfTy8R}n1!<2_XqhpS(9RZkpmc?BS# z(=BgKb-q5+0{)-LbNgWg@b-N7fFEIbW z>+K6bf%tkI*8dBj_I$a2`RhG6?GJ{60C%r^zS{?z!apAM{{E=%B=sq{dIqP3$#3C{n%RO5k)%VeIV4kc%OuCu za2-fJZZY&3t;bR=r_!M3#dXP{z39ujK&tLa7{3tdaM-wjxY(oJ`>jQ0!O4>HYYIsRX!rps--4~& ziLFCWT7mhAq3=Th)n9UeD(oQg+i|=OinIx@ZKiVS(7gI&aRowH5z7T(zc!g)mBg&U z%R|k-Bni=}Dyj z*^c`rnhb;B?~(-bliiX0VvfDpp4F9Cb)>ZRWM$3ihURk(Expa{z4h&V)ioFD>Q3%1 zKA2Si2naxcmXf&MEfmLEq-}YMXK7ODMpXNDuy#-$3rNr5Xyi;CPglJuFuyOhOjd&b z-w7>XADc5Ko6-OQHw7*5z<+2;|IlU!BJ_s_-=`MX0@5M*^{L+dq0#%k()D4N{o`)^ zyG+%XOY&T=yeAOfGZ=m@$Q%q5H6*AkOOyRuSi6(8P(iB+!GP3nu!)923owei60cax;xEC#ya0?k zu%tV-NhJ|j$qKjyu=VR`vK3^>QVJKgl5iq_1wpZ%W{Z-#V??PNIr8O1<~-;EKnejI z3e}DC5z@seaA-IDz?Lqd;-))d<&ycy(r};{ z5xL?zk)lxiw>^P99ArIO|G8MtiKN+}bF%IhfN@5!79 zB6TL7G?R$?7A0TH@sM?GwMRR5oy(-0iNLyBt-?Whz!1z+vG5yK% zdVAiX+LL?ic^Oz8bs8{0B4IsOE=X2Fj$>JZK0H=3H=a9fJN3J0&deCi@`SWC@j6iT z!(&woW0m3Y{F#ybnK4iSBbv7pWPib&NbcXG*z@Cg)3=G{h2mhqeAaxoLmL)lU53bB zpH#Lkp=vw2F)FDOLpz5jTp{4E5*XJB)Eg|$5S@CP%^6~H?lM^5`5fZ%Z}E6{#i}8R z_!f_S9?xprgz~KB@dRHyzq zg#FPycj$+8YKZ8*&?rZspGBh>0VcCX2S$BhenQ9>GFf8=!g3#)zD zpn;$P^#6{Sl`kA1H|d8>Kmj$3fDn{s02XM_V;pu^Mx6GbO*8H{k9zDQZZil$qYwx7 zc!HVEQMeIgT1K*=4#qK>>w!9e@xrW7LGUif0{Ed0HCUYytj!*+$sVsSf?L4Yp2C++ zh2!1jfCHLnFPiA8etDo|;$YpIqpfd`G`u<9^y+lWtKP1+=k~oh2U&oFZ!aAMFVMTe zV;@4#Q852c4MHOrxPbZq1os)Hz&8g&i$81!AOYR#gGTsY@AQ3r0FCf44uCJue+4?+ zUHIhUZx09m@fZ}LV=s>$`q83!VqxC4h|h2-ZA^A2jaeFxE80RTiXqqH=q)sET@t<; zNv%o2wh&0oBt{cU)J9>q^Thku+-|x4D2xfz27op|diR(~d(xbG%A$qP7EnOX`@!UC zKL;rQPuiv2>^?uJJ?=9=kZ@W0Jf5>I%h?S7nT+h-fUVc-J`eR_9`_}uX)x3sX}Oi@ zyq9CVpW}S!SO1i2eUff_;#53IS3mko|9NER4B5qZ9qPLl@oggq5&@5Vs>cE8cw^ef zGsVANg%;qN|NPkYpQkN49dtL}nW>+;)-y-2>H)dlQNK5%>ei)ct5u4~pKEEU4Lv zFWZ7B+eFwEN#FegvTg^yHlETHOW2DObr2+7(C|o-cHkMEcxG!duLa9(KrtIJJg|3G z#&b)fX=O3=S~L%657ih!0~Q{66G>8wSCnI<6)0*YPEtXUS0E+%k;Kd$gpBn_5THJ!hNh z&$aD8-`0M(bF%v>2?wGr79PZ%H(AIj*z zfaq#hPZZkT7Fi~1(>~Ps-qkriGywB0?LFkb;Hcl|n}Q;MHs@3uG`~AT*MW`zfFQoK z`ad;$KGxaZS6ik^?NbH1x7o5#1k9p*C>0E;bx(ZGTfUqIoWZ#kpB*hI!{}|_<5SmB z?OTQ7g(&tiJY=kZ-b0y{z*(3C4P1}{7A#CuE==Ktqom&x_z@}Gc?d9zvcmuz8qb^$ z+6#&a6M-vO}s}L*~y;(yZg8fkS=;Rj`=ET8b5{bZ_T|Mi0~CRbkKp9i<6Ra&15wR-`EA!~>^@ zK0A&vBT_qmM{0PiG%Q9oA28Z+(z$?iixzwvDVrB1nH4GgZaaj0pz1(??T}Vi+dE$-nBXIDElwb~Hv(*`O{YDnI(n#YaW z@sLr|Hm;XU=(HgF1Vc)Za>4-a9oPtTp@Lw8dfccPGXp7FIilji6nI1@eXdbHhnldE zHAwaX{QnvrEb=2dm=y4zL-^NbA2lh)j7C79zW^l)z6GrL9>a(qwgAhp+Z(hgLHr52 zZR44yu?$zxYZ%LRj%C|lqa$*T?4CGS9SQ;;u7NIq*M}Ql9dCNu3l`8O5Q5&F+Bi_NjrBFNklXJg4I{k9s?DK5rJw5xfMtBrQXh^`#p zvA9N>usj-38i_1V!q%k_>d@pG47G(wZX(coIIK3lteY?Flp7C-q=%F+FP0rJn2$nr zyUu*V?m1(39I;rBL5A09?RB{O-1;*v@7Xl-$;^;7^i*b6A54V(uD*2tg$z%h56Z%9 zS3JgR9@9;?`EI7+ey-zwar%>8nny*(pK~-nW+@*9BoA!t2R`9L2mP*vbKAtaWftGI z%kEitKlb)&KdZ>5rc~|9IB+-(Nca`?wm!|37YK{$n8hORw{7 zyZm)F|CycrP)@tfr(CDNt(MV;!S$vPPQoIeh}#>5t=)lbh{cz0Nom=RZUWjlg3^N| z9!8T6;;AhOq}mu#={5}XU+1q(Ec_mlQ<&N)e0>6|6;KZ}^*)BCizL`ffQQ$X%xz7i zwInke&}``Ts!HVSjv>{=Qp%Hfdr|~@QaDW{elt_oN>MgbB;fzALi4MTwDKfLDH6uM z?DXw~^bI)w8iaF2l4fBd1^Dyd#gb?4#Q%Lu2uJz1ouqGL0R_yO3BougZ6kRX-CQTP zw|nvq7E~OoXg%A|da<+P%KrB2J?(?-9hdjkUu@WYw4}Tz0PDY|5W{zGfIukHwKOq( zWqjpUe0LoF3NCp_0mCxsut)YXOZR4%WwOZep)vPegKx4vZL$`Y_fW&jWQz|Xz*BG| zfCz9aJkSDQ|F|#XbG!FbE3^XyrmEdjMf!Iz0?yUGaRJCn@=z*-9@sm2?Kx|D9a`nz zNcZpHmEl$1Ei}_|vTXxRJR^}ZEr~cgjy4}d4F^XkTDS-ULt*hElxPVWVE){>36kYx z-h2@75xj*6CV-E^G4zlqgcbr0C<4ccK+C^p*|u=y%W+^3(r@NNH6#==@|WP4;V{+3 z^OnMBn5x~*am5NeaSH1;reYP5H6KZvm%x}4!-o!HKq^g7;4DazEXRqK6S%+{or{8R z!Td|!r+=3ug1_fDtv@9ds^P&J$`42C)^SqTaYaigj0I%zVvcqN*A}g-(A7caw?^Aq zYc6Z^9x-fFaw3qrtqgmlRJ)eTn43(Tm6-DP7{Z(+=6uKK4ctb>@eI<}0kd6(g>~+b7YvOBvK(y{ab|(>faisG!`T&`FjmEmg;#{RO zZ&N9EY3$ov&K-r~zF2Tms=f>SA3hZh|KK9q8<~{82CH6#0)LTbDWYN<9uhHKC~6;> z_me{UvtIp+`mY5aXrCHTe#Fm1dx7?;ObQcQaPmXjOUU_S(2W3}S)&-W7+^#jv_j#R zHVDm+;Lo(0$F#~}XCSE8k6SI{A?v1oOsg0Rje`N>pc}I)q40e|s|;$O@CCAC&;rbV zW;Ov(4k$pwN)C^(FJYl7hcndT{Z63 zj%MWqow_kdg!xUOfp0eW|IK4rj*$%Wa8_W{Zy(99k3tblp*>jQ3YMmi7G;hVx`6`m za<^-&EOWFnW3<{oQI$Wkr*NV^4-#SHjhQcN^Iz>NeA!(x(Nj6mUH&P%96sm4{LdCsGZ7aXVu*owPVkr|D04 z0%siNV{Yduult-mt+m8`VudFi+P)`#i3hsBnMxy}bg<{yjXk9?9L zzwVBcJ7i}K*%-I=j5{IOpMJ;0zUvS?a0-9QR*hC0-yX{T(x3m&o7GV7_}?EJ0sHV@ zIQ;+I^5?^nKW-QOem(a~zi;ZK{Y|T4Jd^dKg*hZ;Ut^I5D5P^x;DW&%!czCeVp<~c z)f-U|b+6ipsoI1E(Xug)+>WFj#8D1o2tCQ9rg#FJh{`u(N>-zCSEF}rM3+So%C}(Z z6Bw;%dN)hjgXMPMge_=R8;;Wi#-2oaGnUhUlkQ2TRUx=#DFQHmR-=V*_y@tKnJR50 z%b*3Uo*=48WR;_Z6&UueIC@bcr*J1du$|~!4L^?v(>lCnQ5@ylEurVT9R%oq|Jx2a zplN0z2;Tvn5+IpK+a`J*T2~=yx!G*qpR!YKInq!zPz{QY~!Aj zdrEsUa+~zV5{dwR%*|`!9cxo^S0t3JLv(J(Ud0j~NLWvel3|Z_B2)Xe(EJ84Zncid zI_JlF&ty&dhkB?3b3qFvWPU$2|3!Ol^#KujvNQ0h&G%)m_cN$KRrdF_&QB%gsbb>? z*q43auTVag@^6R~H`KbLVna39_#w&~#o3L~Wk!o#Tlj|6B*9Dsej50i;%RddX|od` zs|D-7dIe6oil~DjYy^q5AcS<_Eypq@c{3Q#eD2q#|&%`af-q?$GhLFyMk zQ@~0h(18qVn93CtE^t0U|5;3h?L)GXZjKh~Hc)NbnVu-28bqOGIQAkubw)I20fs&! zmJS=iN~&Nv#FOKM^OO0rK-*7X%>cnImN`99wu)?tmKZnjfWXF>gX7GD5&?pBtI82+ zRjrbUBWS7>V#8Kd7A>RP&|YiZSIl#F*PW^sS96w7gi8pjWq24d8#l`(t9Y~-C_-2w zeSV5)1xdDvVT=leoZ90%i|647(+tQJrV!Dm~)@cyuu|NOCr>6h}F+Z zl*~=gFG$SYPN|C_wV+5n$#CQ5{i2rrqSE~Wo=lKpG_t2k?hC01%sEe$>gQn5F$3)Z z7!Huqg-16I7425jm`Mw693a04;1L6M>LHNF#if3br5U1%Su^^oVJL z7VU7F1~wYNjRtM{5ts9YO*d*w1E8-tv?-!hV! z9?WzE^KxDkxn2}z4i~wC#s1OV-j}5r6QzN%%B)~@dayq4CDg&!SL-4*Xvq!mw_y_9$fzYK6Jqh z{^QY=-+nst`N_GF!>#>FX*ZTwwgb0&C!ur)x@a@TyCf!aNqo`9_>wJ%thMo(-^cEX zOfHO0DcOO7f2|Thsf7Q&D0)=_ttvL90nKc{(d)^)CfE*W+%}%1T_D^iR`8u|I@WzN?}=afw7~GP)%W3S zE{H$>y4&=}gFS!zeBl2+@BHsGfPe1!^M3K4w=@4W82Ea|J=vvxStokopgvZ?)s=pe zNjXEMo=nCcO(FM0B{#$q>vxhXU`gMQQWr}u*+FbiAhst`LX}=u?2YQAHb(C7bcJI|*fx#8w=un=0K;5qFaWoj7JAlG&KTs!!%N5%~=`el1EA`WwUY zD-n{47#75P>rwnBs98=By$vvaLLi_TOfV;j4V~gx`dofzDiecKo)vf0!Hc*)h@UWtCpcFnFD_%)7 zucfP&WAy7OnTa~>3ZiUrsN0>h5CvleURV+@49lDq4-GP`X|Yf}uK|>3SOR@^JOmRc zv*IKx=(1H9aX3n}oB>==!E(K51x>k;SHLLAB$Q|3iZgII87T#U1aG;vzR7W*T2|a# z)X|oGA}zteTuu~)5d>jK&3c*_6))EZC_JgWld4KKwcV zH<})@bjGU}#VEs5#1U~kfVnM-;xCQm&yEpK-zJ>4oj)HoyEyjWw{pMPA)d2CF+W;4 zAEBKaWm=Y){R1)ZeL}%{@UtaWZ$a1ZNZuEVJC7p_lBh5yyH2IvB9U)#K>15;;3P2aVi#iCi2wYt0S=YFp1JdcC_gHH3zsQocY1=OAAa4Z{C&*3-G_Hn)P zg~bli#wn9=BF5y1vpYff0w;N#8HPWO#8?P_I+KhppfOwRQ?XG~))<#n3(j9hjLj9J zbHx~@6Ja}GgA?8XiB0&cVy)9a3biUg{^Ha~zy&{L;KPb}!ls^p*pEpAM2JaK)Pxn3 z!MceU^F+LP9MY$-P>xYf!6pJM@Cn+<#OR3x^JJ1~GRZKNmElT{oyba>fKU*e`LF^= zkDbZ^7IfTXao%J>qO%~=>0SY3I!g1WD$*y*GhCHP&iaDshCF9OuA`~Y)l%we&T+Ps zPIeVJ`YNV6N@qLEoxPRQqb;tzwQ&Cj9WeYlb9CVK$=;dceQ%D9ygIq()v3J@0iCsb`X6 zE~g{_S?+dj>VwkMM|Fu$>WiM%Cq1c-d0HO-sK|ad&v++KeknnI(I~s1;axCG;Ijp| zp!ecLkF%pE8g#Gs75sd$_Sc*Be>`aU?~|Utej57gCm8532sSUH17(!RI5U zxh~6ek>YuR;GSL%$sZVZAEU7j;mG@e)fq-^38J>|rc`bs)P~S%f*3WSw0;zGh#@?H z=j@~M2QjQ(1fwmIS-BNo?vJkAOsL#RZ3?A#VFeu|$zD2tl&Kq`M-7lgy>6bf1b)~- zQ+MFS&3JJuUe*SkFOswot7;<2+whVWg0h>b?2#sP3yqx|T`Nt~LR2)9q%~-M6-iSV z$|(q@rR|_4twzWAp<~uSuLsTjDg++RQUqN7Y5&;C_{VO}*P+a>g2Y}Zl@Ar*U8$k+ zT3JSaUc<4*&a3_XH~adp?isnc@8FG*zOj8n*M|Ep^>& zdfS`vYM|;} zSEjrC)m!j>Amepk_S+sn0A+p{D*kyO{X=|wjr*)jU7{tGG~V>iz3wJ6kP)|Az_P<52Sq$x7JVqdiSMBtrs?aGuN_~qFjas z$C(OZu5JPwO1PQ=9WIU+^uHKlNc*g2C|1)Tu9F%lN!cX^?g2m#xIP5!c2UeOk!6z* zke)CPk*(na-c7QW<|h1aVw=`b?18+TNTp>hP3KQi`%{1~Bw0=XvoK7V;PMP?AMS!s z&XRDAKUE2d&Bbt|#tJ;bZRpcU4}14ybvMs2vM&<$vh%ti%}Af5aEI# z3H;?tBK1onqn5$4AS`7Kv3MJ{WE;IIkXpA3-vSP6H2oBja!IU#fzM45|F%?eTf)1^ z;f#qSH+h2FLjGMY`;Jn5N5r`)WZ#nt$JpF`D16;!Y}7KmatYGp&o0Zz=X$c1JwUavfhy%1B$M3i*d>v?E)N}-44VaXChR?tTS$gr_Nqr!%>^!XsCC!q&r(nT+OAf7I+1exH|KkfP?F+obIi401pUA5Sm+{^Y{1KYaK4 z)~UPc>0J@j{7r&Nzyj9sDr8M6e>Dps$RLi zS7zv!>3fx?A+348#eOI;?XW%eY;qzfz%J%x-^@<9TbTQxI^}V7=F`@kADZD6kn*TJ z;bBhnoqXGc7}<9=?IoLZEM9vvMm83seP9zjgM?v&;lsBjzh15V?OxOG5BvUnGVAVAI@VSusQIzgr zTzwe5DTr9H0bjM7*c3$R2%~|zw;#cSjqn}}br{3y2&OmfCY1!>3N{gIc99z*SsjtI zemWrCWcyjNVP$MTQ{6`tbrL1*1W_wm+C@~h;du>Yc^gIDOqDjE#4T7cz_iLgcTbQuk)=_J!uL7APvoN2P+hFVKj6Yl$ua=EINf?B zEVy+rh6)yCqEizCZR(ZO=&jPkAZ0?JFd;~n9Awe2l3KS*E5!wUwI_$_j$1czKv-|v zKug*|E5wQlnPP(v9O-!Nq6p=}Fr#mz**n7I8>;;#3}~NRNUN^Eo7ZBaydctvmn;RZ zF^qr^Dqo`92Nks(BVPp0P?Tt4Fo*+G3&NBhK^A|Uc?~k!HzL_9yZ|`=yUBGs2~9!N zj!^nu6!j8?b)F4tU-4}b_qLROPa?f3;f@IfHzo4hJnkKl__jcFN6NXORNd4l&k!gr zn=y$#k-~4#DsTs^r`I8+aAg`GFplzMV>0sc8LFtbGPLDR$FLta>KaIGq>|z)whTzA~#^P~(bC zfSkV@)ENg9X#KQZJ!O$k8nq6K)){SfnKVw2g&6?yV}+T&1GWQp?Sx770<@2MDHP2n z^kVpvUqXWn$kJxzcnk=IK_aPt0h9mOD7OyA7Uebqzz0aO9X>!NQ!Ue}rm3vdsT9*h z28?~8T{)Ji{Pc;O%n9&90`Ll2VD1!XhNBGL0vXQo92XS9YReoAnU0ofS7+&TOSThU z0pNmcubAnsobD=_?kb(>t$#IIJ^O9L?2+b~BW*JW+h>mTzB)Gg>iFQR)4&3PBJkcf z7mmC;4P~bFZ}lO;+G%3n}2xmVM}8#o)350st|TvB&8X}EZvG} zz_2^W{3-;ibUU#+j8PH7tPNq71u;r?(@H{F1%ZUp2wLfOYVme**)B?L7`Y~tQi)+! zBB(VHjM^}IT^Ok%gjkJd)FJ3KFfStWYRG~{j-Z|{Y33_hS+X{kvW+Y2m798G#=RE% z5u@=~Qr3m!q$?S=EBR^n3gRBtq&=xkeA*E6Q>EomiTQqx`F5u1R=(L2qIj;7T4V|l+^t^fUg+rOWV0`vKQpAG-@y#KE!Eq{Jr_3v8+KcCNf ze>nAZo7`EX{3%ZO(8#0iSQpG_Mf3W|++n(Ylq4EuYWMJs{Y-fWPSlAP zv=LQpI9VGFa-M*CkhS7@EjT`0gxbiWR*JZjrR}7ediaJerlFIiZlS0f@$zQ2u9hML z?R)+%7TlUrcF<$iLU<2t_Cm+{BI4I!nEwohhxQMUKSt2uS%icMFdcBvfP-5QsaZ`0 z7=Dd9c{r!!SY!Ly_KwRv-B(A3ZtWW#J2Wu1xA(^A@Rh-i)9vL4ORI;|le%p7db&D! z4cg`#neB(D+C}aTAzmVr?e4NJF{0bUrW8>qc0{BMv@PnNDgS%MXX)@F$hhV(UwxQN7Cjn85hRT-Ld z$?2)#@ww#E5@|(y;?V|qeT}W;@ZKB4t(R+6^_i%QSY)iuUjS=swHMaD(U=&NV&4)~ zL`W<~MVC{v%5lj#5w=olY&ko2e|>AK#jaV5;w=G_FG{@%9Th+@_!IR0B-3iVaRuJ! zM>6|FYCMsOB_WcO3M?*Rk6vJvT!jBte<5u;!MKW%%Pr=D=kxl58fPk2Qb#qeOM67W# z7Rm@QkT`O|@Fy{DD%t8vvQ9x9G|4iVkuZ@SGnHa?F&FT%DD({Y^9b zs%Q7tgAsmuPX|PRULWgtb-Wi6p>t3HI1BTiBXgII&RsqF2G0MBhv%;z``|7Doc(Ye zQlKyb`tIW`5Wzql3@C6g{JHe;{?$*A{|ETL+XZv&=SOhDnU>x!>JVr zdIg488ceRCDQoEBN}{xZp=x6(TI9AKscu-IIbe%E78CPbQuNh~#P18DAC<;EuCPC< zvOO(HdXgc%pKg9q81+L#?(+uiiwfn_a>KI%+2bP3!(77;<))e5i z`}6tUzn+i&^;6$}A2nGnCY_ z3thX7SiTiky&h2(NNn0gZwjMzh7;kn*h^*&MpC;X7(L!JwSiHbHfw}q@~hkHIrSdS65VMWbYVLegW$_-KTp#wP3{mHT8WxguC*1?K{P`hUR;JzUKmMR96|Xeobo@xr2j9F`aipAUx$IFM7fNVv|ZAuP94oFIbPLprmgYHV9&L| zJ-7Du-P${Ndw=iE(UI!|ooCvb4^&i-7G@5{rnO70*_$ySf6QKwEZIcr3j@;`^{zzl z%p@OAiE?DAT_tfdHHotgS+81C=h`ynVC>VGG2fZ+9$p0PDet>eJ`R@6K|8o7`{O{t zhtc#;gIS-4GN1zXz9R?npYO`;a~1m6`DRyQ)Q=VoxD|%5@?lBJzL@F`qA6{&u!>-; zAnIzU@g{!?b1{bbO$22j(mm~2Nj0q|=sY7O3!w4BXmAF%6-6|IOFa)b8z+O=JvczjB#x25F z7!7UW+jj6$c7POK80ANWI+$@4$+k^kUeA)lVe5(Ifre&bn9PeJ2MyUuyw01hSVPi) zQw(BAK6u?)z8rqIOOQk~^A{iq|3s0#Aut!CH9^WeVR;d~B7T=84V6;BEoqJGZ;v@x z!YS-8X+6AWY)|!ta%oYSwlxEn%lCw(16#F*n~KjV;dT`fq8p@Ty$PKi>aq$}d_n-h z7JzQUk>c0mBw$1Eg)tFQ?unB6U=_ZRQT_xVxf#5|Z2?rhH%bpb^o$fO3E?k@P%cMk zmjlB&Qt68pLE3X!gm@{qgCn(mB-LV+W*I`h5T;v5r5{D=5w7tFGb{bV=g zqkL&Fj2qPBdf@OVUl^c!mEtr+O@g=A2IOZGgnyjLF%Z<8vguq_GwcGu{OF92olb%F zme~dLeuLcwUNEcG84VMAcRRpoH#_6O1!e^nG`v|HNj7J6^t1)+0Kj>6VSvozIFnc=Jk1W=x% zE@!$vbEYlN)tc{YDR8wFJDc+$2n4?PnXZ!AzS`N5%GuG%=|i2@Y zoOQVTAZ*E2Z2nGGMgUwSaM@c3x!VZYLDZZbgyJAl?sigsFd<_nJr}{tkKkknv9p56 zWs$rZ45yi{Xy=Lt^rnMR#^YAQl_cxUbnUG)!~HD%gDm6YBJ;xn#iL5wc)e+=BhA@t zoUAjyDAPVKQvFb<`KiqKyeVOBf5tBti+{h_@~;Q(*w6pI7c_(=b4>KrV^86$6RwF6{z=VQr*+~M2 zV;6$bkD>P>xGkZS76deWDG-vW3S`%8r@_~8Cyv`o+F=3ZFWv3)ANNU@}i~_cUFNL>~Aogd<{K-jS zio_6wVJ%GnsUBZ~a5Yo9nhJ;>vmYyVr!aa8+q9kyFNnCUT#G*+(w?@RGW#~JWdl8G zB^j{)Jcyw#Kq%JGw7xXeYLaXfPQ4OuT*Ei`LC7DR?+m3cMg(GdKOFZP49x>lSQG$6 z@Rw6;C}S!vE1y`O5+0k+$g45dbS3uHD*E$SY5irL-}YP@$lceTJ=|g#v~E|MH%SwN z?diDaa(-C_GozFk+ZWq7lF(5v%ufhls@IZ$$t>~+g=~^~9XJcnlEr8d%>2D@79X71 z4tPXP9mU$+U*3^oo%BB2)__6-y$d9ucC2L2{1}$v2Ur z1wo?45lZ+XSd3CHMW_}-><3z7XvhF3`lAarAz`H15vohaQcnc|jI1pmQ|$v9_d%;uf=G;f6Xt1!{Ra3F|gZJ|P> zaDW@Nhoe0$l-<{;euVSZ06BccgvkiU{!5Djetm8A6(Hf&S>LwoYk#;v4h4XX3DJwFiqKG!3FF{OqhgpP$FQQturKy8K&PRDpmJwWjfzQFH^9Ca ziokKkarkzKf&H(W|K`sBBtZHUzA21g2bjo@nM{jzWLTZqvCs&1WZ4}Vv6Fd8u57C_ zKh;&3GEtN;S(-OhnLSyUJPGH2d5W_JdI8C`KEC($DG2}Udv|6ptN`9#JUV~j5EKF4UW5Dp z$@e$Uy}y3uz1s+I`U9*0ZXO3B#K(KE4!H2q{USIE7Rdio0DQTB^;fw0KfU(r_m_Wv zeEzp5m%jXP^!3lcgmM;T5Ugr^OvD;Dwf zM9n<_zUA7URoh4)xD^(IeL@c9n1RVa`hkgTL1m9 z^Ur7fe?4pc>xZsCf9Uw@Uj4tWr~Ps|>HUz(QK@;6C3|QUT@})g!{i4|YzxIU?;yaY zyI>tMYXu_550kSBS+Nn{yam$|h;IvHbcVx`NQNM2Bj7!QX$?Ec)!T`+5&ZfP7Pv6_ z$ciDRW{9iVBh-$H483?>BSO%K;Wb9^T5<0Ce=|{1PZV{4&zB%-K#Ci2f)=#2n&s3+(HbL?y?M+9@yN;B%U7&zWd)t>Y-;wbSJYR!=hR%B5U+{J$=hHy; z&%>oZ50!j`{7-wzyQYkH4VJm`n3>|}$#~T@wy<#v3F>lt3~Bq##ho;BVVJfkTwaY; zSK+PN6(s%w0`sd#;YtGNx{T|9tBDdXLCFBc>e z0)j0zfMwbU!x@f#C0)Fj0{Q@<7ft9*OhFh^!lHorAYI25K={WS@}fk|8gA@nQS5e} zbsfvNk(01fYzg4owur5}WVY>M%LcyImuOl`1Kk)n=wTl%UyhFQqubYUWs8xZCsVGb zMfuaTt0~geScNx<^9_OqdNNM}X#tk!O^~e=%9pa?uTlkwa@ZwB+^%e5c8Q><-Q3k~ zAE;7y*2fICB{vNg?&~l9cCh$#6{j;jNYkWf>5b_tMn~838cI>-Dt<~|bWNM4q=1|W zvICtrPV!9z)guV5{nDl3Fa!e$n%V~qtY#?l+SZYbzJO~+sFxun9=mxyII%Zc=YuhO zg(^J4giAxD9$}&dp^~q|;VS@sBJ&IvFWN2h2v>MQW(*}=6scPl0jP(Vm4J!Erusz` zZ^5>qh+Rn1a0u=ImUV_gy2z12U3W|@zsX^ZaoIP8Zd3M6A?yP9V-nF_spO_qcw5N4 z$e{LZ56@g0AzKj2|0+@g;xKO%G>JMR=)-i?QJ(UqRP_`jELtH*c*j-3=Wb}f0&x8k zKaf(OQ>PGvf{j!RLd{3GT2s^SA~6hENBC*pKq1 z6R|Euaj*m1V9KPPaO(h4oXL;^f-L}WCoB^Qc6YuA z7!(;<3#;L3_|W~Vv|<0tb{+&H-EbVojX4nPVt-&vD6S(E3gEdnnL zocxYv*a#H5+A618i)RL41zhJEteYOGb+bTW3Up+27NF3F2VOxU^u&mp2zPp5?!v*> zm%p7qe|Y}%fw@bN1w9U9pAR=reHc3jB7l!KVGD5K)7W{p9pK*O4|m}$aP89rPymDf z1lx;xXN-m zDAFDprw=FSr1Cl<8SMmCCxO>S6SPIr+Ypq-P+}dHQL%$si)7SoCs*vI7Hq;5?51RG zAti4hrEbN=2ax0a@rmo$ zncW=zFpqUuB0M7(TvQ6~#2KHJri>3{&K}8rbu@4GXu9)I>g0(1dA;?=Y|XP0?Rc|g zb~ttZRKb@kHUGWa_U{L+e?IN_3r_xLE&qK8vHy}UH*!CmN_;n{bd?*QCqVa*dyY=o zkD>GgQ8yXMXDY&g^%+`SV@w zz3^O5-n*f~k8uC*&Hv;s0++t;%KZqHfqL6qN$gCC@p+Qz43=KFmJIl#Azku_CasC6 zD~ePXA=JfTic+NBu$s+U4E7e_GZT$~GF}H}ULtRh5P$`wTtg8q#*2WK11+iz5`ib4 z=Yy69a7~+7<^Zk=U_ooS@Iqlh9?6FyTu+f~0jeicxQx#H2E+EIn1T((vW`+wYc92{ zQdQj?KiHacsI}l+y>+x+SJ{!%I9zeCH|u<@FuzBWeju~CmSV5q)rjpGer1^Ou4fI#jeEM7%g$x^Nd1z9b8SMGGRq2(0!9l`H^EP-K)xh}8=bw+@#V zK+D~RY21qIMi6@uq#+dHB#C{NK)gz&jfr_<4CWmk{WhO&y}1k4jiWc9iT!=f<$*I|%BGA%{qZKE`y`2%>t0Ve+nPx{25c@A7z6T~|$lRDXi zSut+bKL_QCNihj4V7>YUtOG#!3lC&({>B~(Gc1PwlkdD=4ohnfgK1gfaCyn_(}Jy#xQLI5sZ4;pmD(>I9d&p{0W^-%Bpq?f-MjY(ml5UiB3BaXPp2R5G0P0;viEx zm1r4HNuEqLPo%|6j8xSF;a}!+IV296el%`J>ra8;tLmLh}6AwK{r*=OB41`89i8G2SwCPty{Q5y>zE)70fFl z;8Cv#xB8*uR-+O(V~T=k6%nLnwxE+P-A5OmQYs&0$4(8TygpI#_EhHlce!uR<-9qb z<`|8B*%AG$NcXbF;H4F;opy2VC?hP)2_dsHvZ>f&A)Dz{(L_9 z!$JM4R@+3j^uA4ap36Rnp!FlM9or}sJBcv1O7$nD_+XNjAu@ds1)GTtz;NC{XoeL) z1gANK))Yvo*}<#{CO2-UwS=)du;NZ4x0@pF=c-0Ix>12?FIzFh)Am8b3!`Ym2%53- zRs^#tg4=|ZG)1x+Be?a@_QDIB$xs21zz^H$>OO|LhYi37QwPV;3fgzN3JhQM1a%EX zR2nMH4`L>+!^HSw6V_qlRv}>QZ-p;(9~9Jlw0}SHpflHbu}Gts5_8f z*eW;V1~Ze^;{oiKz?b_!l+KKFh>9W+14 zAb;k(>r8vsodGG(H{I}?NZDsAZoo#RZ|5d$VW(~9C2dnc(~7y204!6OOGB7n?TckCg*FzN zvj`yo_o5G8v<%N(gpnGvA8$OlsH6vHOI%8wyfLE^3;02JD? zjbq)yi-L{7axlUG8Up4;WYaD|DpDF3sDQkvdIib2j%MB@)UPH*t>vlL(X9bu_+C)2 zB3L#ujcb|e)e!Q;Nx+KY2U=k=&m%&(7zvA1%{p?_RxXGj)vKT>fOp#=S5TnCCGZ7O z1cm)Ip0$|D^~Og>So650#fpw{S!12Lx;?9>r}0u(`NewUU=c63-cmSRIy#tqqEVFH zA1AD2)>t}*&^?Sb@KWqzZwEC&;3-!2y{MSusBvjipZ2$T2{wO&YrKN?V< z`sLvoPeA&FtJcyKK4^(oq`?QR@eGImHUvw;#Y>TrB}j!=xY`RTTZ|Sg4io+(RO%5T zbI*Swp%kE66dvUf1k=UDRpHqiafJc6+7Ke>-TRS@eQ4Tg8uJnjVn6IL4)-PtP|w`! z4CXx%=e9^Z#uMHXLGu@OzAzo)Tp$zcH=?4w!sJVk+;1Y49@to4TxAfm3&R^>2+s)t z2del%ulNC80TB2E!$-hds&>4NGAF!NC`S z`foK1RD<;}WpcLwV80NrgCNjkdh}$n1%NI*UWTR z%?wvL_jk_hX`MOTIDN2f_S^QEBfYanhW>5=5575nVD7t-xr+zho=(LKA2J;!D=G&+o^&!DzBd*>1E6N>5_hyXn-vk;LAJ7oGv7< zi_Yu9ayl_|_lbvQwWC=L;Sdm_R_~^k?WUB#eSQ-Okn(Bk@$u_13I6yPe~`^#qSoWp zV3$}HrUE{#4@%{WlzK(TmPN{!g=&4^5JTG6p_4ZgYDkjyNcLWd=4ztpd28zQq3rqZ zDnDMxdw;fg{#?r2lZi9?;wHQFFYBUS)|(xzws!~fKc6f5*NxhL->>=eQR82aJN|mw z^4H_aKkwK6Yb^Wo8K8aYXKQ6YB=N>nv=c1mU>LDs2fkq&x?}@BeH9wkUKzfaTz`C) zKdNjS0cf}Nfu#0eN@EDMW+xVc5M_b1sx1VdJ;3SRLlh2Dd3|j25KVAEq8}7Q?Ufk^ zx$W`B(k%W-^?4Zhf8R~ADq?c#y;#=G3 z>K3N1fdzU;MGaO^i4^1p^RjkRqc=p_*P;{F;$rG4Ug6vVe}5Q z!gs++blh5U>{??`q^!Qw_)(okZ?p^C<{U7eQ(hsK77ZXMiz=g^^hM@H@* zhF$Q$<&mBX{aq(p+xO&Tw#f~}q0HoUm~?+s=@vpi5*QbZ+al2qCiRPiC}&;*&}(OF zQeW34zi!QX4dMTuM1kF>kBEBM|i{*03MT>Wok~;RSmv8HW=q+X?!#Eu7f(Z2LN@6+-ylFh9pI zU|;D+llzl|OOT*_6neQ)43gzI-8z8nKp+RJ_9Yv)38Pk#jB9A>)l~Ba8q~FT;IUfE zh6p9F`XSjUUCEI76QeeMX zrRz2c_&zk?RO|dWYHtRA8D6l6$XbNqdNG*Gsiy7fY)VF%xS^a^-zYB`Y&f*H|6X_b zxmweqQf_s%A+Iy9zccB05kD`F7+prGN(_rCW|ZdRvJ--hAUG~$Sl}BcCCCWJwa^30 zTZEK(K(rR|bw9y+2)m_=b2*`HImqki_0G9!*Y@T|fKpr5GZQ_ZRVIt@F$mdRjh>B;7yqbeggBK`wH=xm~)9n>)MLW_S&iTh?Fgelz)SU zkNupDxTY}rC`ELXE5D;r|0tI~GfJQ86)#kh7XbYKo5t|M;=c30Flik+Sk%JiS2u3a zLlZ{7&P23o!fu|3F^cNQuDBaJgq1n#b$9gAn@!qk`RU@un7h3ePuYgCWuzGlTxt-U%Z`C zxRaQ-i<%TbNLYhU@WTP0%CIcNv?4+co%*lCMIOP5rJ({(4F8|u!UbXCWnmgWw}I5Q z0-q5;?;^=g8gvg!;~WD8^QTKcUoQH5wer)Yq7P@w-W*Gw*`Mz0QBTy_C+aMY_Jof| zbAP>5{O{Wh|GL-up9i)7h5XOM%Ktp9{m-q+FIUn&95=u2)lTFKAJ}FDHnO-G&22<5-JbwNVSO;WE|gnK7S=`x8zKeG zD1HlC*g{qJuoPW%<$%!E#k92Zt<5ZB16ff^Ra783#VAomFgz5w_r0ikx~OFnH$MT+t>vtSrgyZYfU>) zTz$Ty`D)ML*uKHr2ZnDS9l3M#z{A7)@9rPId7$U&-u9D?HKVC1O`@n`3^#EDDt#lq zavQl9$vjHu-jN6%Tcyua<6T+NGsQ_W#p!c(iF2)`b8Yc&0qohI`MNj#-C)XGXC~bL zT^%WJ`f}e7=6)DR{rC2as!q=i|InA(^ zWrGO}Xtq4@K;2iYz^GSHq$@%Df>W<0M{g7=J<&oBBv=4=%L#H=iLPOpHww(FxWc7G zKClQ@b7OW(?c2rnAhC8G*|eEw*en9Rv}rBNu!d=LzfE|S%|i7Wo^%CSyB1DwiQbKy zqw*I zHLck+(4wp8HMca&%X87@*Z{705sKjv&H>KzYO(=7Z9v!ShtYbWWs4$33&X@;?^OE2 zFh4}KI7GKF3^GD8&oI%_F!*2*|1((hO|ZfX#fK#_Oy(Cw$`^*f$q!#K`sG;TGE~wk ze8DzM*$zh8CPZx@p(l(wjG*o#vd&XE=UI#~7UvG1eUr<(%@y7ia_en&;KpD zDZ6sYmf(t3I^3OKpn$@!DyK!}-V5s?gQRg!gltA&)w+|PHq8sYY9jjYT>y-vqM;68 zdyx<`6$_&$tusjnj^G!Wag(Xm$+X0&B-2D%!bEPeD?fcIKhc!|Qh<191Wc7=Itmk9 zc`=R>u)}~L60)GFQ`Nas_1VrkNCaiMTJoLsB{S`%ulnI>c+*)j-CsLBTr~?g=)E1& z``cXm+hP9m>d3&%iG4GtKnm0U=DU4!r}n=&xA*n=gKsbGox2V=&_naE1-=d`pfm4p zo%whh4*!euPzMGD%$1lj}n1)nU|v?fAmol=N*Rm}7uQ$hsP*_rd5vPP768Ib^vP z79{5U#jv{!=X|}3voM6cI1C^*hE>G04YUEe^ctYHJ5uLPm3_Qe_~kl)9m;>cUN(Or z`~8W`**@h|t?Xr?X1q#2Gm!Q1bmi~Y%l~ty{=bjf|9sT?|DHDd@1wfE?w9{-tl*b3 z$@7Qov-OG}(uLO*+`V{8^G^3LKhF=Bxe}G;Lr7jvO7le)t|OENkji(_Y62;Z;pC<; zYC|{+?*D~b$VL9Rq7B62K=X;r>6s*Y}F7eQZMq$JE9(b~4osL|7ci zD{#Ex2x0nma)LiD!5@>hi5RmI5xoKxy#^b#5@YoVi(iFKSQ80PQ7{8^U==|mcNb$9 zJ#QB&XEQl#2Q_CaqXaE!;71SG(he0?oU5z4I^1&y!vFgY-Z{Ge_OV0vkM6&7c;x26 z;p@Zg$Km|X%2Ir25^+YFm5pSHxG*3hRry|zXocN|S z{cT%@oBuqJFb}u=fz-D^0qV+l)s_0H8@>zjKJ+Dj+L!h7p7c+k0O-&9(3bO|E^WTX z{GrAa-RNtAoIvqQ{m)~+Xnd@KK$pQU4fN>+yp=no;djmy4;5(UqjMv)OvogXtJ+!D1OG&CeRq(+xxz*#R^!DTEWi&xMR&h`#y{+!Xi%7eY-M>|SR zHm8j?Wel{WbX99wlOobG!sE-?r8S!NE=${>DC$sF`QH4hW^O@lxE{8;Ojv*XPq=Vl z7|(7%B2XM7uvQQnZ6oT15tet9Z{;QO`}12^hB60r;#KH|l}>05cqr_5y@w!fJB|@2%FC zCL4e{Uz#BNZ<+uRfXy}@3ppQ?`vW058om@j`vMExakB{&T~28GrlmPz0r(FHxWwrs zgEJ)t)&x#l)HKk6fDsLb-`F_V8aV7x)6p8B3Bj(}9YC@}%S;YqDEJ)s8!@Ma@)owh*H6E@e&XFVhyb0RzjgdQY=m#0eh+G}TTllBBf!a@@4+qrM37fL-Te;g z0KYuA=0-r@hx7mPmxpIT2k_<5A?NiIr=#N=!s%5gK_iyeLKL=wwS*<=6=(+q@}tHuGhFL~)Oq2h5SCs+W-o|fEd-iP7;hDwyC|Id6=caI9@pfXtI!bW>v2rUHL@k|IK`&7@BC_p~ z*ha-sLp*sGRog-WjI*EtEv=1YR0IjCkU}WURiNZmNKO?-RT|E&3FX(Ih4lnU7hToK zH1!KKgOY?{v7uj?+`)@#rGo%V-hfwDpu|OijLdC}(wtq?3=kQF1MChD;(N$) zKZz3ll&GIdv(A>syDH*e*CoE`NPY{guDH=qEx zK%NNrxn>zbxFA^YHIlO+6v)^RrqV9QK_W=GAVRko1+o8hzsSO!l!hQu4VWypmk&RU|lur&Mpp#(TNh zaqz#F*o~41%U+Lf2_^3%a<6eXcck*iTJ5u_s2`(bKdQJt8jL?ek=CFZHyfT?b>lku zPZ0jsLl6jt@Y)Hh{l|n@hZ*uYmX|h|v|A>D!wE$&8w_wPP79=W;6MicryJ=2MSy7t z0$KGi-ghO(I&HdX5Wd93L-OAZ2#N=QTa+U;b=s~37Yq!7oG}ImO#WldaNBp;jZh7n zbSFZgWh{la&jdu>4Dy!{G!S-DC{( zg0-Lnc%BhE1s?(_KnJx=r0AVc3QLc3!V0(`$x#wFQJgth1UTqa2b}x`sZ*c^D9&{h zWID>yTo43>`F|691?0{&^{E4MZV&|MAossIw`cD1iMfkMzzFd6@=@3V&)+!zVeAAzLH{lST!O>@ z<4y2_o%($5?=8UH%b)IF{rUU9KLPGvhf>(D4=?@t_`>hc&U|@tbneE<8^z_Fk&GG? zrw+qv#tBm|b+!H7`5m!%xxK-OI{D3$I3?59lI%aC@lg?%gtvF;++|F~W8`Eu&?LEA*R@W&$E zM1|A=7LpU$zg#Z*<5t6e?^XTveeM4~YW(y2iofob{(CI{^V!V#eKAv&f`>8u14Lro zHcZV{Lhc3xWRsG-kTIU61?E;ZBtH$6Xnr|PUWO6m0D5aDGjj(i zeH$%t6Dcu(9=)Dyg5~dW_nbd&6Q&uCMyxz<6I8w@YR4qiff&;r0%3Pg#1jMMS@vQKZ*jP86*Y0Y!mygB^hYFzs?&m%=8Zhv zN}6y9M(hjX7$k2QmA;hD_JmNYE+$w}qAcppJW+2LY)S3wD?is?b$O`ac6Z_F26b1d zq@-HaULz>1q8FDE^762;ZHmM}TgCs+(OU<%d9K^r|DAnyciWHy4mr$;nNiHlY{`-Z zwj?t%Gseu2IM^_ALrqgiDNSOM?Qk3_?S0PqeKX%uXEYg)XX2!t_IaQ8zSp|0Zf!I4 zj$9825h(iQ1mmhOo%`QFv;fjBk4TiGr5cTdW{Eo9%4OOHp8>(>V*Ec7#YAY2q6!?Sx~K=R6{ z>OG|X5Y8E%>}xsid!^y8)q-McI=DhyZ0wmS@hC=eePv^`+>Afe10v zR_5v`bF~#ux0lX!l|5^%nCq{6HrzP7fA7pt?d-mWxg%{)kM;os{p|GMi<3jI&hCG8 z{t$woFD@Q^aq0N;D+gX&!&|^9bb(*rfY|-y>zjBAT$sOi8Bn-)XaV0o_wLS_clWNj z1p)V=gS`Indr+XS{P8V%!ME@T`0K~>fBbZA{=3uP504D6|Wp=y|?9u;WzbEW&`>M@pLzf?ZR5D##a{dDC3MbHbmAyv{w(=-sojYNJcS&B%1 zd6c{$fLXYUQoNg%z9lAU11W7c$L2*hc!cQ|`a?@02Zv-)BwTgqbut%3@jnT`>vr*G z@>w?fQFYvlFEW3-3}bukf9{t2`(E+C?-swmm@qr2c~UK&EK#}Y@Z012zdqW1_vpaY{-#si^~Xzchf-47WQO7(M%H!` z5T>0W>=O*mT`~U$bKIjO=@b;JWvS2VvgTT{UbJVwZc7E&ANijb16eQn3ttYTy#WQN zFY{G@`kTS5kHeWC4;A6_`@Vd)DY!TJbw}2l=9FhODL>n_S2^lSv6fzvd`N6PVaq>c z$lXiQmxQZJBeiM|BJZ;>H(hxlNx71SM*#4Z`b{+ZcCm3ASHFQAznL1pjt0H2ZarD% z5iMU5tz6^2_RE$MWlJ#CXTbap#F^BCtXoBsEQ*qQQ9+6ZAP8Y09sXlm$Cj<5S$B%< zK2qBbQS4H-axGK8m7lmvnjT=r9@zv<*eJ7}29u zH13ipArk)UC^|eZ)-t6_VpyMr)BhC#Oms$oCUv(?vnC2dq>SJ=>pHe>6$7MY1)!sg ziISBN76@6(i1EAP&Aas0-IAKviq@nZbQASAp&YkN2+-_J4UxKlhe==CAx$fb#Po&7z>#&jV~rLNeAzm+g+O z^P|*njcD9S>hzB245S{6VV|L~Z}I{8=iNolpToKGeF7`Kb#7KNs)32X3UwS{s|5g9in(r;y=9}L=uI_X2b1cUU4YWX9R z=GP<`e&tUr=zJN_y_zuS!GD-W?aQQ^M%l`Ni9N3U@l!_Wq|-TJ(&Bt}K?HzQza3$I zvn$^C6yLGLP2uXU*G?f6lwzMvvQAmzpW&=_S|%ZXK?>9gMzq!Kf5H4G(VYvON_I|S zt82r}Kh}jm3wTend_2j4VCNL}%kB}7ekvY~FeMhm;}*bwEK><`6cC;y>ZZ^FPDVFP ziKi7F9}{qs!7t{pjHfvsW+YEI?bBHX?0+Yct>bBKI-DyzeYzlFx**G~gD-MU!Ub07 zeg$yh{LjyrDJ__(!3rSfDFC50>8|EtAb?z*l{o+1E#UUj*`DIL-m<5?jZgPO3RXXN zsO8zwo@Xa|00n(^a`5Syp%FP+eQDr7)Q9o+Mld?*vR=MwP$(Xes7J)AA(muFs2bzT$3)V7BFQLS zIKYz)@+2b+c{gT3R7nR(&=SnRiPT6DVvk%NA+B`qPw6Eg+@d}7)ScAi4KaxuBh8y) z^lKuu2r;e*$J?}cX%yC5{DskirDWy8sFF>D(;U|0l7wet_Kz2Fy)VWj|3A0$|G1Su zf8H@SsGF$PP1We1ciEmFN_&4M`;RO6|G881e|Kw;_W#d47~Zq~xKuEIBGc8b`Y}Ux zT}mGcAy=&nb9e^kt&euDh)nPdcX&~9H_|dU#9**rvL&Ww7qP}22c?#5ip<{{Q@Ayz zY&)T7BcXf`yCE3=9=LsUc|S`%z&DKu)%!(;A(pm>Dn_fT5flChVMU~%Dwtm$$}RV% zm-#WOf|*sJQnVrPXsC^nG`ZmqlD$krpFlsTOBqlm4ylp{rB0N8TLt%7=sbE>L*BsH~16IT_^$@ix`Z_#V_{XhNXVBw2_%(tVNAIFM+Ka~0VNb&qg`g~9NtJaKHO_rxs zNk7}9=SA{kB7GlOIVyFWjLSF_pS_oEtELz$N#?}W47~ISmryy7zkeF3b9=QS)t*Gt zR*n|sCX5$WBNR#ioEf)$iASV-4Oz9CB*ApWlYm(b5R;evsqHDiZc zj|^5G?aVk@#;s29Hs{A=R0vD&*&#Qr1q`V+zJJWFLuLLIw0-!Mf?>w0VF0_8uVw`Z;@e1IMhB_T?Kv1#` zPk||?Y1SGC@&l$oXcM3j=5jh_Oj4KAI-LL(C@%JTmr04mG@x_SdO3zsNCAzzQ=qB| zq(<=*5_Q-|Keol=FF)zDK1tAH7w|aA=AH;8o2Roa5Y59!{3O*hkpn3tzLPweXPeA( zOy=4raPk*Bri)T03!Kx%d9JF=sfv=xN)*A;ryB}g&3SWs^QT)&X7?7)wG_-Xm(J`h zdD>O?qN{4Qr)qAXc5bZc>5+~XNBUlTG5X?o_wzGHU!3lLe&Nuo%g3Kz9s?BU8AM<= zPQJQv0$HFpU!Hn%_u|{HPQAW;?hOQyAVS=`G=JyHdqhCNg}8t5J?g;sZzBl$+t+{N zAilf$+xM6LdT`;-2PZ#1I68an#IZlM8`IQZ9N%?a;}%$<0B` zvW?Nj>%t4S#}sdh0PM8fht>eeV-R+UL~Wn|!Sli~4spz*@`O>XeJD1)m#OZg z=^AOuM!L2>T8`vrS)jNyTv!~$D+`xpZD(a|B|0|~ZC(-9O$6&ksQu{a+o`poe0*A> z@q~qfLDmRES&XbXM%l{NG&8jAOiQQK++)ifNh>>8RCQu+>*e0AtHb-hJUDj$*une9 z4t;(6=>20O-y9kEYG2Ql{-$HKb))I&?QynRf;4+434AB0>W@*Gw|LA4I>|4|n&}+N zT#*&((r2yNFWYlo^rgS+EqXIh_+lvY?LgM+k*qgE>GOTLV1d3GD13|X&%VOn4&v9W zw52&DMv-wF-@IFp7G#Xyh*mE# zey3FD#fEp@w25!r%+hb-Yd7+tm60x_O7Ij|3gaY;;}IiV7O7lEwQUz$w{dk|EZHg= z`;&0sfQ(yM=|0-HjZBBHJ^^~)ZNk`164cG&yyT``aL}kN+eMm<4BIAdqOUwX$YR*e zOYo681I2~nq|T(4CR1sD>EKY^g|5T{`OM@3ZgIV_C!Machw)9`B)A6LO3IbwxRo?~ z0e~As3F3ty;Dz!rm0B7mT^c6)EJB92Y0oIdsz@0a8lU)b{^iGk8}y$6A{^8UgMoU` zuOVaX6Sp|fydpdu5wh)(wL2mj_7K{9h`l}$J-&qV4DJOw?HZMKTOhroP~OwZZ}a)L z#iIKx=1qm-D9CH5J$0oH~^DH+v(^R?xb%3c< z+f=s2m6tG8kT;1eXkPMoVd`|Y1DXJL3bZtJ3TWsG;D8ETwRwO-PgiCD3WQyNt1*4H zE(>Y^S98f6&i{_$+1{qvK6eq|*}?Xw``e#E6MSs&`4PMV481(H@5LEpLE!~H`25no z7gr9wzW&9_D}X|ueR&-e=(BHtgK)EeuFl`O05rtAyO%!Pxq!)!I|BOMrH|j;1Q+^u zyajx9_K*7)fB*jSpWj^i>wD-RPrSN!@_tKAKSfr#hgb(HS`@pPCTXYgQ32?a$OqZ- zePaDSp=gXRJuH;$7t8l66k`J6ut+}0llIb4+LG*z6z=6{T4MyQG--1*7cUVtNKs-( z8H`CaqhvQ!=A@L(Q5n1Gs2u9oM8~a+260!0=7<+Vez(rpCLkSceQK!HP;zn3Bz$DNb4g+EfirJGqxA8Po}P47(c8^7?7t7 zXj9uo)>ek8i3Z_|vLakk6T&YG7nMhgE21Q2p{%?BwsSKnWdp&!KHA;?-9Sj+Nl)EI ztqL}VM7eR37uk=wvDc9=f=0oZC%==L2K5&)Z#-$<)>R)E_U}{8{Plq z{-N8458gR``0Epg@0{9q@5soVvF@wAjmK)L$MVv<&CXhy6qN7g0OCFZ>okS?rBL)^ ztniUt4U(0sH0gP5%FD(S_xuMd-99MbVg4<6*Pk{&Qu?|p|MehrkcIP5zzk=77_0tx zAk$p|7`D$3q`&G-eAVultFix(pgln0_DLPXH1iQU#oZUe)%jpOjwWcaE?9u(y|j%o!uSyb~@v1PY3Cprb*G5sciV~Zr& zPn{K!W!xatZW37o)Qy_1lpuAnJijMy_W9A_|B%p2IF>`XdOfBNkNATD-!K; zH`qbDgn<2say1#aZxLjUz!R+@BX}wF2;-sHh1a4*0b<1J7KCyB<;(hS1U`eMpFt2G zj^7)%iWIxV-@1~RvJQlQLgh|E^=?GnSUusq{y^rwFzR`VyYqFO%e}$l-*bz-c(Fh5>((g2~ zAGEmttAEtQ{;ZNd(kY*4We+uqU-1+G>MdUT1ngy?-fRhzh2avFV@&n?r-ZjJB86%?OQ?12HjSbSF-q z7!dW;P9`KyB!v{5m1M2JT>8w-TK&Wf-eAN;V0MyI4qBn<0jLw-n|K76JXwPK-VW z3+Up37gr9y#Qpy=MnI=u-8erFDa_3a^S95>e|6>c?elN20{H6O``ed4+&=%C+Yx*j zcHrOdU;B9X{BO5T{C@W`bdY~Nxc1kNm;QKg=G}K+{CsfiAWvHBL#hd-wuE!qsc3g$i8|-Y{dpfQ=l_1a;?J8^f8EIa?P~GI%jLhF&w|GH{i%ZYr&B+k&-(LH*&nBq ze?RYde=Pe|zj>xL?x$?YO&y~nid4BdI%|D+(uy$i@^GVP2&h>m&j=e1|K&k>n<9(1 z(~AA6u-hQpU$Q-P#0o4M8olB6P1Rvs>_2o#rxh>9bGd3%_td)Rib7^fG}i81&#a^e<3 z%63-LRzg*j5T6#ZsxeyD9L~YX-@#PuWoq|wv>j4=x6IyWNZyxHbTFrOtg!M-dpG=# zfBSz&ZX7#s@94pMCl22~KK%9J(K`pbZVh&xXskJym)95XXrxK=cas}pguPL`lN9D1 z5%Wi*=ux8XQC0#-wlhs-&)U;pwPZZ&2KJ%It$pv!eBEFAYBc*D?*IL1Z}#QQ4`$3C z%>QjH(sb9-?6Ni>jWlKp$FG`ZHpeQO811QC6rf~y)CNp*w*Wn{BmKNtw z@^x#4%B5`k9!X|YVm2v1(OYE=wbYsSCVFel{_#b^oMv-Pf6ho>$^Ne7fl^hWVhvS< zF#lpmd&9NMqx7qZDmUjD($8@5Dw5D6T)rYq>&2Ad>9#mbhIb`Tpq@j;9x(!J(>@R7 z{4+rK4}aO`A<9L#|N9$IwD*j#uME!L9OaI;dBb5BRlhN!H;A||lKTaTa)C-ZP2t^O zG44u)_hhpBBHq_L_I&~SzL5PTPp~gIDsxqs;qzebKLSwl#f(ntiA)-y%9}P6!8k^s zou@Ew3Z(ZX(jOJV9~JU%m6Bg#<9>om)PUQ*`mtXAt4j7OZ0~0MV~hH6JW`-WFczjv zD%{CkX4`}TJzvKp{EVP?BJGLXrUk_-9MOhHv7oW(#+^=h;aw)o|8?N=VCIi%06?8H zZXBG^m5!T#A}Bye{?Fn9k7-g87P6Sn+gzDW;Dhj6{&s}L0US32J21Wjd<32XSS5fR z9j}Be5`R_52&RzycQ~<_c57nbm$aL)m7Yk9eQZx~^M61DvZ)@Ul8oY5ntd8ZFb6iv z;6*2nr>2ajyT9p{f~CigXQsGs{z!!8*(b|VUG4}_`ZWHBs>+_J%b%)Abv0H^LI>Pb z;;Jc}u0tsdT)4v7y(M#fWzUD3W_v4U2didBYv)F4XUBksZhCg0_xZ`;xs$_BkD~~1 z17Lt*s@`vc%M{#Sf<^t)a(;WN5q;TuCiYs8Rqc2IjSzYu$#{AqDy*6!memODEAmC z;}xJTid7pa#r?n3pPn1Y%JXLw_;NCKkTbVMC+(o5ZHl%p55!sL@C;2|9hrr-)J|G= z1m})X@ubf2>R{pgh0@=zmH+u=>2Eh`e!EfhC!PgYOFv-kdp_^OY5Thq_75iu-;NpH z3|XIbD<^7`A7o1|sagAY@>=|H+bOA=DR$_P0LxkxZCMv>Ulwg&OUheM$lnoDxQ$rm zLo41EmAgK=1VNxp#IkKPynQsFtA%?JO^#>Z07X2)ln=9Ghgr&AmZ6I#X(6easnWVg zen}+1)SHpJgH|5M2RyTU53MwST^7cv4ii-d^BO{Vtr4m=sE)XGMV2AhVRV^2 z5?d!fv7M@Gr0DC&ih72kEK*q($}bBM7Qpr%%1htDOxs0E*i1}XOH14slj6fo^W|mi zVW)UAD?tyn`a|0;W}H?hwUy$!r6f^g)y3Kw9}|R^g$N>Qj50E)78e zIdb#J=_CR({zt!F-(3bcR8uk!-D8h3j%2xu` zw_3@gMD;|L(N*T0ZLE6PWPc8rTbtuef5EH%qL+i&Pyo+^{E0m;SfC?$^FzgN@i;h` z{c(TcyTRP|{kdf5`z!@_AFzX+=Vh)LuzY7lauTx3IFT52D&5M!kZlU(3SGU$z)` z+t*HRO zH!@uVKm8vYY{itZ;Qc#gQLvMw5%TI9#=cre4obdvW;-2(*8O zGd+mr^&<0jegVNz!AecttyX!EL`$$TCh1ml&D+RDw5)W06QB_K^%A)UU%ZTF*dfVf zq|_?vl6@V@r5wW=iFt>lTvT5`D=3o`bS8`@hnr2i6q%7(75t(WOYLCY;i1;k4f=Wq z5TKsX2GA{5A?6f@8kajLwJb^u$JxqA;i?GDDp*}&B%UGYEQ>x5k}L@oqA|T7nu%2! zf}o3|fQ-|uAZZqdsFwu9c?3FFM`WxCs@N4(y_-ZBuz<{rAv{oTIFqLmH8Y5Pq7>i`g@XTS8;`}6J9Z+;3UA}28LL~gz`*=>i+ZO( za!Wx7(>ViBXKIqmhS3mmp(+=;1K24fCQUoy;Es1CSzMSbr8!Uyn}sP7u^)$J(p?|G z$A-h-g{OlBGatNn05_@|PqIC+VM2vHf(2hsSYR(QJV}n9aKt10`8dH{AI7ubaVnsr z`iabhiFD^gs(AvEi%h&S*rp+lgcK6b9T)-f98>veE)aq8F#;-@D9v?MCe2jkOxKpr zVjNUgK8rg)GD0f!%iCTY$n{c=y%$w|CFKy?+&x z|94+seD~Gm58uHHcJ0IcOCRoD{BZBaZ$DiA^V{?2g8lLR`Hw%Ge0As8*Y%bCWMO>( zwJC&N2fZUf*v62xQy4v546!96Jjs5EWWPW)CYKHfWW56EFkjxsl@1Fu?EvEt>Fo?r z5A-f%{$8d6=VVi~sEsbE3l&y{({V#C@u4CPR1zu9_o3$RW@LC%QD4p8Om=Twad+~j zmG~fj&m1K3Z^F({o%HNr-rGxMzu&0(<8I?$w;TSt-SXF0^?!a@^yiiQ-!5jqJ7Ruw z(E4J?{Jc#!S7#hAm3)^Xzb2y&kdZ-!s*;uiZLVjeae1h9MTE(dn6Q>$Um23NnVhjX zB7YOH9HSc_N}g9}(T1qP4bgcUi3J-Y%6;fad$vY!dWe!figZX~9_H%tm>cF8yScjd zXlZSfqA^BZ;mG4m>Qs*k2&zpdNNPOO1@Txlx%>P&YIWPOtUk_)#8pipbH^0B& z!@lhKvD}XbbAKDl{xFn+N5H$j%=wPI*Uh#U)rN<;&aq%>k&og)T>iPZHEj}=`EqUl1Qts{U|)~ujPR!0jk+wo$6{~+}Umn@3_*AzMc(dS{v^GlW@$;mdZ z=jc{qwHhW|LIfH@xtw5FO-b0!GI+t*g4;Mjv?3BxNa;GN)B`Z*Xu%2^UMpm)_`0oJ z+jdn(XqXHnR!5~q8p>IPibZ$~;qRtbte45Q za2<48g}S7eR-suXH>}m#cAATX`7Qdcc1KTl{?S5Ov34EP;w{S#Pe_kZ=5P!ZvGz)F zZf=kPs~Q~@FU}FUqnzWC!^ja#WZY5Cdp&oU>H=$w=CH z7W)>1@}*Rc9quhY?KCB3C^#}}MX>TyAI7Kt+=Zds|MFG*%MUZ3vRy<70>;89N2$!S zRMs^b`wn`+a>*jP9AC*Jrgw!o&? zCr0&z(fHJ1oJGRN-MuwoCXWfvlp|r>jM^{iUky;JXxI9STCJiCXx@&;>>@VH{{Ud+fAB_lwOrVKz*pCSa5_Zr5Po^9X0YRe^LU`~?$c z^>~V#3q6s7ASf6_rim2QM5+};potXgbf$GO!#MnyI_-R-5On=MV!H&7Z zEpvz3=8pG2KhZyT;?Ugb{ZCIHdwTxB^NahQT{-Di!(2Y`>c*+p*Rcpb{~8g{I{?8U z3v~JYUF?6)fCY_e@Q3d%f4GlQ*yXqP&woTH^xH50ypPNO^}imR`s0Vw7y{=C)t*R|pg zr!(h|*`E#DXX+*6`GSWz+OKT<(=zdJ7^!*>wP-gbZwC$NiDb`^#1+v=EB>||?qX$Z z1T%qJye+z72eEh;t#~)RU~^3VMry{I$TH0TeOXn3!o7aX)=1U>RXHTkj)>y+NsL2G zWfvDBOLZ&FP#4Cj30IW*(<;JcCEl#UUGy?YzT~`p zX~hTg%1$=4UFq$;H9T~C-{9S`{dW$H+&M7v)&Bk)hX$|jAGpxdc%rW2KyG@kHL;GX zstBRhg;2YrSO+pbE2@!E%}wkO$%GsR9${XziN*zgw^HZXOo0dS5HtR#xPXqwe*?Ml2IU@t(@Y+y`BIfiJvT7&JZrA zsn*it{57Vn{H#!GUWm@ROW+K(CWPqpTSQ_H5~fe^f9bXfQvy}l1WPW-m=kR=ZxTut zMhX@X1xusU>uD-4ws0|n`B@aa^BIvz$v%=CYFv#VKReVAzeyasmZM!S)@%?Mw$bb4 zb&hRX_Oej*I*~2VtluEf_)5}f@mVqH&hU8aw)m6~XD-3oVs07A>m8{%-eTxT+#=F# zWTyuu=%BXriZT213iw%-?82nYbPXhrDQ{tWHpXOc=TvMV)%y_Yb`$FY zI6a{__F2bcC}&B`%Pau=nP*tED-6mN3GFzA(diwWxztbl&po_K4bS@oVxQQn!n&1+B7hshJYklB^EnZ(c$^wHo``c;KV^cw5phjDcx$L@;ne`C z%PFe?PXrv=Q#MR*Fq5|;z(17;DWq}6j=;YbuMaMp26uZ`ycR4tq(i411_VkW4!}Jh zy8s{~CR1&5pnzHt)WoyKG@B4NXH`!n#^d3FKM@vy$)uF&1T~05=qXG%Y*R^iJuw0n z`UpcOJfRRV!WP&ff0AH+j7JGFt00ad`RO!HI?P}}jHgUP*GgDVQ+nNg~w5z?s)m}2&P&m_E#qf#NCf{#z6Q00_PO0Uxj+9^CxvyE9k>|MA1Q z_uqdpapA7e{ZgATb1?ti<;p*9xBmNn-~WE!@t<$n|M!~? zpg#Y&oIig&{bi4Sy2bWuj`BeQ_l90}h#b>HV7J3K=F7@m3#LtU(#ntopr@CH*zvl$ znUT4HoV%4+>PxFeXlHj!$xcG?_L#iwF}VB}Z6R0fim44^HHC3IBEh?s_Oj#p1=>Nr z1&@FshN@erZKEmbh;kIWO7^%PUirTKg5AVCZ(hl6n96$y%e-Jv4Pc z*DxqB4@(k9bVyX&i!P2+$ZLLgQ6Ght)C1_$9YRJ6WXn9!(y(Ea6=fg_dNpqr` zuz{4ila}etNZZYH?4&t1QO#>2Y#XWetwf z8|xTy6!klc#|kP>);C<}8~Ji@&Fh?JUDh63g82SHxCS4+1GQSr|D!}*`dOW zUSndb(o`2nstIDEwttu@x*=qL8>@Ph5cfFK=ysSkq&#g(ecqdg@aOB!+*hDIbmqV5 zDV*=id)=S+da&^AaQ3^wocE(eANHreAHysz`$G>%5xE~)6J9skUc%ItZ$HaWR_zq^ z@Xbdp=_9dOL%Q@&f5#`U~d1U{EWS+?cQb>AYwP&>mLNk=p?L5 zDL2As*u>;7iNS`Kw=_(Sfzo0!ZwU+NiNu|<0&+%jxH8F?mla{R`>4&^x#~?)i?2?x zIx3%ODPb2v7A)|LN!X>a?NJ%li7?Dh4NpuBwWj-HX0^a}!&Ye}d-aF_UDLWLH9yUdFnhgW3m>PV$W z1d6xtV+s}o3qJMdBNX&`5bvMBhjq@c4}Q|$u9S_NAF6q%_hZ8 zr#YYEd69(8GLk=TBbW=9e1tZWZ14rUDRapd1U?^Qp$vVD!!&M99Ji{TV7cswoxoGW zrX5cNZd5*DbJHrIt(n5GDA9zCFkU6xiw3+bCmScy9TQn*HwZKhF9o*ojO58I$5eLW zbUvhD$lyTTyOQPz5&&b`ML;H&GXfVl@j$b#O#@eWIYZ*IK3f8)dVSAP59 z?(g4U`}5ngzdg9{{=u=?FHe7&mD?CVu7|M^R@@kVD}mif;qRq$I(aGt{`=^>VToo~ zpz39V0wly!U>JZ1zOa`mLSLYREA3(Ods)hEjk3yHNe-ofe24|M&a$ z|M{lz|GuvI3qhc>d9McTGY!(8vZS}H(n~_xU^J~IgjVYlS+a*#xS5c%J|cBpc+yG` zPNI|6l9D|`kie4*kP!K z6s93wTrc0)Au#lS&rFpzqNNokK-!_eho8TTn!THywV9Of%PdChCx}zxgXAYR-J)i) zvNJ~2K~ncijHvn!X%k1(j(tk=fY8*#GimlhyV!4zJsUR#L#WzNR}g($V>wg`QLxc4VGZ=^~oQgKXTxE@fvG5S*6nV$F&O)XHqT zm9WNWR=UYWR)2OwTyJ`48h2TgeiO&CQGcgCCNK_>h$l((qmiV;k;IWuO4FXOf;EA*&vwUogvBljWrKIUoS;}n(k}{5 z-b^dpLumIG9wKl~k(d{0ymJ)Z6*l*VKz0vYI0Uu!(r}Vc@6F8d!fro)hpC zm`-v|B*X&ahJeiz%vf;9G_q zMWVrFNAJKqZIq$vi^tHoO+THe#i)PE3}uXV+<|rgUMsL-z?#_b7?YpW*r_zop{IAvpq*8-!_7}edgcyv%pUHVJJNxh|Lm!OnJH6hf-FlIYb(n=F|FvVS%IkOc# zTz)@O)*}GWMl`^a3omhirW>&84TrJQYjy#svg!AJR2=|d#Ucv z+im~zb=QBsY5dQ<#y`KTe19?L)j`KptNEvF?iG{h2#3=hL~Qn>6m5;nL4j*sOv;9c z()EN?9Q(^clGcFmK*(HAEZsxSUmsZ%$j;wMz}H3FsfC*{^N)7dzP3|ae314Lv=J2j z4CN3vc95qW62%X3_5CbW2NuCp6`EEpY-MeT2$iwFVQaM9-R#Vrl!9%fysf0l5OGBi zn!mJqLToch*-Dh-!7(U}8&)LlQzQ(XcYsk7*3co0X zo9#nM_hqJUC0SR6Cv7EXZDXZvB4_WU=X$f!F|!H~C2b+cuP2#T$KX>Cz^V!tHIj8L zVne4op-Yw6p-t)2+FNCg7Kyo8oz@XwFql!cKfml;d;9s`zH3+kkM&Es?w-67L{Ga*@mUUMqi?68|JC-c^z`SL1lv zlr@X|e|P4KuBVs-;9kI^#C7l6UZo>zM9yZwVP8e`JId%bDWE5mp~j zTA(V?S7G($fwv=G31WYYWGMkr9QiUDzEH1aXM`B?LgJIRO7vUltx1FBtW5JZ3GmJW z51Q7CYuYGI35iW7TFSYF1<~sKa9a^MF=3O4wFr{0Nc>E=xAd!dG7q9+MN~fBQ9(;h z-lLW*4i+yBH>~BWma}CZY@p{%5t4?)hE_w5af?*EnrhxGw{MTLY&WYn(K0DnsUgO! zhCkEi3C4|4g7d9F3XJLX*{7lQj zGS);_Z3yoSpbbaz4o5N063C|r)C)AmMV9b7EHEP3*J8ofBIP#%@wXE9^7jXYw^_ZE;hv z@+Tla$Hlpfsu@ULEExM6P}-WZJEr4R$lkc4J|>u7;-*rpDExxwKa*gdv&GNh1a_kH zYkP)^eMZ7;s>$8<%5v|8U8%q_7+qP()2IfdSZADxGpU&W*k|mf8SI7ezL0`a0QR|X z{@PraP`Q(+#&KKxlLRycV#nS300j`xt^~!ndlz7Ehk~#^FrppiCPGXknI_VZ|H1Rc zG>NyBZ0A%aiU5ws>4_702@~0NnBuVl9?wsiEJ~a#$#WIir%UrD%hD$+GA7-1FzkQx z=BhFCDRi|L&bAlNHkUl@tefdd-A{-2K0ng&^l{qV+#8C@*ak;i!JHq^ST(~e!g&kDHz~NdwI$(o(QtYZZfw|5ZlETp_J6d zQg;eu?Oa7WM+Hq7f}jxoRz)dV3A~0#yd402De52zdntl;im(Hzp)gi&xZom4vyRxu z)roUMC9lsn|8~9luiH((-){PNqw4MXqSr?X<~r>UOZ2xjn9{RQH)!5NsrRNMue@VWGlHbiq{?> z?4m-;7&k18+t1UFiVY*OEPXFU(6d9* zw^2*OS!GdpfU5QiG@U|YD<`g55ZBDNHtdT&zESW*2KjcsQ;`!DtOT-`r* z{qWdVM~3en#V&a8%Ko8?18pZ7|IYtdoNWRXrhKj8tRb@CC`WKj!2Cud`Nd{_l&YR7 zw9Ql`&NQSy>qvjyg|%K*rg6n=+G-wl_4+*kNvf8P6nTnJ*` z^d-M-O@3Dw|EwmmVL7P?!*$UssR%jmk5 zbj2D%y1&usD|dR!3YJ$3>n@&k^e*v%$*ba%#X}x9~TxbizLVC9pAldGY`ruBkXLwF6$KnZ&*T zYvSYtd@*U)OyxKxQuTk^!Q6*GAc`~Dc2{2FL`lkIN&0wx7G&|0r5V$unbQ?TQ`LF1 zRk_m@IRL@AaPxO>fs5watLNHsW;<)$E|~7}+1}b&#DNCuXGhyyV{Ok+2RP6@cLY#~ z;knb;0wV}?;Xo4aRUVGDd0jR0^#&(GgIi$=h_JNbF_ z-MueAU?Tub=snbduYZIf^1BlML1#hpa)AX#~aC%y+rRH@C? zo%!Z)+1rZ^@2^&Uyj(SZvGDnkl9{fAMqc&IK_UnoL#K!4V3hagtRRf)P!S? zTO zK`;ByN?(+FQ(4I@?hf3cKWW2)*8gBbTAb;k$UjYtb9gq$*1f=jd|L5DS zuWC_&x8G7}dLj)q!RkJ$wwbJNrW&dVM(rw!U||F%KceL^06>Wr1&EdqwQD%?6%lf* zbT_bNK!9#$Vi2TW6fIg5EnOM~PJYr(xoHc_08E?*a6n|W8`MmP6$=T;)F4Afc)Zq& z%2|TU4?%&B@CvFD<+A1Yy=0vy6^Z@A2%8z<&#m;P^v+UFvU#gSu!ulk5`%uOeMfA5 zWJ*r3wo=hpBdWm5LY*|HikxcQBEsl~yEs&~jH+Hn1FAx>grr_WDW%6(^YgMJ%PMteYEe~NcFL1TVHXcS@C%|gfiCMa_Q#*GB0XIlvTMbiuG9(|6e}be};f` zAzSD#UmB)b93)uuH#KEtaNIVz;F_nkuay#^zG4!zgUYgH}4D}Xf-ZVDH43IG;ru|S^}Vxse@@LG}VN(HP0kl%DqlM{gv4KE$u zEpsw#lVQpPV<;U^seu>tDmCe43T&v2&<>lk*FPJZ~feXM>UFfbTSg6ePG!}cB%G|A`uiL6UP34~6 zs)fF)h3;BUU)^GNrDwQ)aiHBjd}wi^{mm5Uz}ns%?Rh;rxcKAbo0F5TPmjHUAn2vz zZ!aGIC9@h|s|zP)keW?f@*G`Zpcr6!u%L|`@&MGZt|a{|4Ej<&OS?Mz7r zN6^i|yIJBs6dyv+UPRH0Vgue^fqIm*TcqvaNcx1T9-*X_rR?TnZ8U8YRnkC4TVYMi zQ?;{{aPkkcB*RGZ7+XBR6c4hbgH%Buk=q+9JkCOHD5Uo@j4$d_7y63djynFF&V4hP zzc`*U*JZp{qPV7Gj}d9$RRIQaWdsVpZFLl{jt1aOR%r;kAb^m+n*!nd@?Z$(GphE} zp@v)$#Ha;CTM)T)AGI35{yXE#g4i{?=^*E7Ns#o$iTgP6VIDq;+lM9UK~Or1@GgoN z;;#U*C_TU^4`mgFadKlMMd2d2VhVRs(zX*oUziHJw3nM%m~3~)6= zsBTPW9|F`TmfSBj^ogxq0&NG+*v{8CGnEZ&MIBvPPC&{+!GV}y-9t(7qa!z_avkr;1ou%%AihCDEsu$YmbucRBXNz<&X+t_6vn>ePj1`(kU(JMj4qIzILmf9TJK z1OMYt+Q-4HPm?7d;VobyLh%@*dt4+7drDCH>V5{=1axdgCBb zR~+$3Vq^)@cjJmVi#FWlKL|=o2W7$IRDwoZGiWT z=L6zk9l;#HON5?R0LSRhP^>1x6Fx*kB^#MiA1X{m?2)=WQmT9tmHtDF5XSzSXi@-5 ztRYI*GEpCrahKQ{gl6tm$$es#fud@CbzT&-kJ-Fcl!X6)-VX}o5a#hT*EG7;sJF&ue@H-S}W-}gdb{@7R|IB znH|13QZdoUt+c|j0|dvL*wAqk`H+(jV$wAcEXeb$jO8wkfEyF>iI4`;!SD+R2q->a zK>lA73!X=8RV?yDuzG#8dQGT$Wu$sdka>ByVP%AFb+~$UG%V9W5{<8lLRS&dO*9@5 zx4^puXozL8N`FdX01b*K#o@x55MEEDU@BfXMORPL@#AdSX*P16jh&|pe_??F9=V1{ z?jquQGVB4uyMsyZ%jI|F>f5OJcd6`-41XlX9%1|kQuza={E)YlJHR7QW9^rsqcGE8uOyyhW>ir3Ug3q(hZ%2;Lh&_2{iuLE8%o0J$xPcUrY62pV8<5Va`uTL5%Wj3!-koal zq?s0=BL=b<&_n{LEjMExG%>amfW^Vq0CJvAvve*MZWH}Hob$=*S4P#dWW#fq1?d6% z;CU|FWb{K!sOi%q~LJuzf1*Nr3s_}^A3y427)l%%RJkBTA~vY zq0j;-w9aQ)okeNR@?3XunyWM&bdavHe8_@2%X1d03f$%S?%LADsvJ*a$?LZK1ponc zR(S>+7Y3>p2OB*7Ws3t%u>V~cZug9|EzZCSxP9?h@0+P^=mNYsJ^uRm=xg9YoP+t# z^t+!9zrS)E9Klcr{`1PIPdCni9sa|uYwv$P_xb9je<^TRKivNLlUEIS1vbKeLmlA3 zwZCrz8sgkP_kR3(XX3-HlaKm31`;@B!3kC2^u`D(Y;O+{xh+ImGXrU*A}x^ZBn!IO zXeX81EmD9BU;t6{^YA`_0v`ScI7p`u?G-4ySmGWI+Rnh*Iaq6g_z)FsXJT!1SuaQ4 z!<6+S+EE@h#L-UiB;!KKGz%T3ViRoHBpF8f=ublYt^s*gobvKey0cm9Y_`21ZfThEf=?ohQsEfkE0)u>4)*eLEHkXjb1A1#aYL) zYNF|tVeqGr3-{CVLO4Y`$yr;YGPZ)JCLwJXIcE>OER0$c&hJRzb+R-ALVX`!Hy})z zR3?w9;3~28D;z`W9LVQ%ajk6}Z98An&Vut+RvpVPieO~!p`-^;9NUSh+bND+49gax zV=pOh7sc*J$_gOc_tKL6shTyhmW}bsm65P5g^%7h(zctH5ApC+814$`02wpYCkGINo=~8~Yr+G1>pyVK9Pq|2ztN;kHw4O|zwC zBUVR`CaHxfZjEL1$8%?>{L5_mO|9m!LF!C1dGd_z66<1J)|;k`ckLM;dU8JWm3{8X zhVakFk=)Otd0&RJKaLdq``4m>Mhm`9Wqq0|`8-_kv8UieZ}#V=l=lseh05fc$(Biq zJZ}drV?RcC#iJ{eyN7z7r8psi7+N=|`l1CzU)$oU~!=Hu<* zN`0C9)g-w;N41HWvR9P43&%Dkm_xLscv*U=#ON>KEQ@C>p<(O!)<|Uqv#uZ_vm7ny zNa=3TwN~@8Thz6cG)KmMxq1^*5x|iI8iZRJ;?+EK6~{!jL=fQ z0ZkY|vs;Dx$s}6{^`_jRtmC-{jQDzTHX&E(BNF?tb^emfD0?0=ui4PmAU)J5>8?iV z2h&<++h=FWC;QB;jjTe*sX}U$5A>c@vF80KXup`>M9{w7FIpLottJ333-F}8@1mGM z0ric=Hzr8e#!5HFN#F`t4u^k?dg%ex(h&8sK;_bd*#GX6EQ7qzL3q4JzK;Mq0L+Vk z*sR(VYucRP*Z|?@xZ>?`)%z(8QPi%TabrP**$Bc+40AFh;Y1AmJWG6$Be=>(euYuL zSauh~@5yv`RO-80!+jikpj16jtL{rw4`j;wO3giu_OV9yNRBl8E`lu{Hc|^Fq&R!B~FdZo5}h2*asjR z)VSu2Fm*8jCUj0Oh4hZgpoY8+)V1bKunvaFOri&_4Ddo)APA&$ra|CS4|5)92LMxa z0ltP&f2t1d1sAjc9L9O?@F&^nu)DpOIGYR5%?7Z;K$8omOt3!IL;eS9X!CZ%ixlmg z7V2Oyuu{!K3>6%dfR#=)dXgmbR>VSzhh&Y^vonf}UQ zaONb>Wu?IW7hVVEGm~Dxv0vbDdxt+6^JPGR&T*FI&sP>XtI`($2LxTP`rHL51%MZ( z<=^wauf_uvV7LYP55ZmF8E$|g@WN=<>q+Q>b$e!d7LK$oo*0A?(Cg!12bg?&Zt~sv znRh=;y}NQ0(4g;t2yqQkK&L)jI|m5pk2lYLyyZRcKi$6e@zx~>|3Dn{^F8PVU;O&} zFJHWB$je`TKmYaa@lUrWpUzItAll-+gyL{&O(eCB$Z3dRHO4az#fzFqoHiEL23t|O zu#LfKXN$VIl0gg~<|_vT?CG8wl7aQ;3NLxj^HYU=B>iT%{ zey(bakB^JcNwMZQADu)LGjI#gL^B-GBvXEvDm>3YZ)oIqZTRETjK_tFds+H>8JgcL z_<6Z#9Kxm1^o9sH`~?88E!s;c-$w@ga?M^+)j=x!6)?_+4p3Uc$xR2z5G!g9BsA_J z)CCgD_9v9=iZ9p`Uwwd89wMv?rZt9e+Ng>iA_{oVL4Y$0l*5>+Ut;QD$zVg#7|*Sb zV;Aovl?K8CKLCP=P${B9sY>toA%Il2+t+$%H=N)yLq zrV)i@SeFU6z<|^;C{KjsPaDhF#KN0}$u;r1$|z1gWRUhV)Amr(b|j?jB&BR4CT}66 zZjaC0N`!ASp#QatZr(&NZ%$AFD{pm_7+C8o!!+w6wHsm+w~|x#unI`B{78N+87oVW zRnT;`3A!q#z6nq7HW!RK%8yky&$jiP8yY@8-2d~`(Dm`j8{@;*Cx(6==>NID_0*xV z>5{TBM{b`v3D|vYaqOXZ_7Rrs3YT$HCVUFpLpR)V4B5>*MeXrQnWD+y1+1RN7j(k zeh~Gci(&V=nQGn2Hv+DC3rD(|fNx@ew_WK&mizNmz7*Mdk}XbOBP@}vqj6UgphPT# zA6Q2RRzJF)j%|WNn`ZGBCi`J9U{9wxsuh*?gA(Nip+M`mZ6u1~jzpA>;Rf-TA|n0A}k5^Qh~Q`)T~HPW&+Lwk#U zyo8(Hnp`_tIy#y@bOgB#9kuTMHP{v($kh6jSxl_S10561zmIC2F4#Zxf zWg*z|P@sbX)gRv&13G)@_u%#olr9g(eWI}MLq$vW2)+sB|8M|-I@pR3lP}E#br_%6 zJinNd1H|$m=mL4{^~$mF%Hh{ur?TV*X=T z`^p8+wCH0X0;!}gG_q&#(P^HlRnMfzE1lvc41bLBmm2K3HTjiMHU|J7Q1n^=3axZO zo?jz&!%{#k0an{9IQ*04FpvQvv^UIe01?2y37izY%bWjH&BHn%)8b4^fuLCD| zD$N@3RDuy^&IDdygWCb2P`M{b1<8MB50%ujOyCU6PS>`Uw^i<`!Yl|1^f&Wmv*i^94 zQs!)}Sm-VAA|M7DJwtV_p{9jlSo?N*y^zy`Z>G9lPmMtx7;q4f1$_;6urm{{&kVoy zdI6^2oIeJ2us^Pycn50u>!&{6IR4=V)WIP0`OAk}7e3vF*bj_=F229@^T*%82y^8N zeC}TS=l4rrAN=(9!&6`H|LFW_`hqpPVt;&TFu5v>RT;^sj^xxuGwR~G%}iMn9c^Zd zJGiQLF4DmfcC$qTBCH=+5CW;!7luiOW!gbR)yq?ManTOCrjriCA}K6VdpUTIST`uv zj`FofWU5KIb{dh*NaQm-YzmQ1v&2(e(Fq=Uf+ae`6Q2(aT!pIfdw$ z2py-Poe}KTaArd!uR4TX7f1u|d`&px5EO?&-5Wt~0&Y(zy*+~39>;5s;U5YjH-*BG zAAIga7y)H&k1N{&SqMgL1P5MfI%v{Pma-qy_A~Xp9Ce>S-Oo{WawRQf(IKL!GK^dt zPAd$gKvTB4h^8viDF*!;!jhb{AdI%hmNUG{cCYSDFH9 zm{E1ch|D@FO&yV$24tx{sI7&iZDE_5_~tr>vYMzWisj}9((;0+8T(mDkXGGAweKXP z`V&pQF*e^A>z26GZA7zgm~lhAeltEBd&;- z7e@+8Po!WCQN9JX02KcEXs`fa%ZPyb5v`4cL6B-a=ojOG z+lH?tA!}kaTUfyAH*DpYwu_A0z_d#-1xSGQBUuw;-Yd~;-~ct$K~Pnql}TF#JedEi zj#Bw?)V>hfAEJ@c;Lz?14(%R(38Yt4vw~sAuJRF8^D=CWA+wuUN+{N+>I% z|5>rm-F?t>9)=q2=~4Iqu69u1a8i&!B!2$=gWFN~kpMl;lOL4kbfa*+)varIs*JsW7d>(%FI)R?BiL1qB9QE}(w&ejNU?IOghDfLDk&CI|p$v5v%F z8O2={0d!OEBf$^h7&y_s*(+QUB3%|L{5BZ-Ar$>KQ2gxyd{v}!Rj6@QoPJekieGH{ z*65;*p=BGxYj%XUABgJT{djiot41I|39wNwnk@z8sJciCMjz7ea`*Q3)Wd2d)ksO4-*gd)C z2`&YZ=yMhNM6GzNL4XDKRLXm-Q#}U}yas!wQ34U-IjFUuc&h;-oaBYU^wNZT$Nm=l zr9n3jAy1${=oD_P_fnYC%Yg;zHp|_KIOKfbl!hUX%a-;!3HM6gjVds?xZvR&8d%mO zmkn@m78m3^(;)w8b*DSL=eFInn31voVr$3_0m&173_dU^%CyeID#5CS(iYql^WNBx z!I`H0cTEgd8Y2`FKp*)E3}W^~FGtRM$a`yFPOH@E-T7+ZpM8~T^D-h*5?_Kl4A#&Y z*10UO!$TY>)tzf{?!Z3{}&17A7y5zs)_&%eJ3{ojk9?_Bhu##9j56%q96IBsPuzkw!fpa|-T z+-4Tu%9OM*co6UDW=RKl_=u1EkJS`RY!Nyn~64 z%5;O6aZ)Os##J*~?GaRQ6qOtiBS(bTG!H+DVJA@OX)g97Pjo^gI?WfI6(MJ&_%T#I zB@%&pxS!7LhM9bvxFwWU8wrdZZc8W=W;;z0Ou%)vhtWDnq7DM5Go0EL%4j)2>IhHh z2%|QE(lIcu#Gg>LmsB1=tPX;Iiq#y2w2{z$y0VKVhtsk+u}scTtihP6~fXb z`-r6nX@z@;5Ejh|Amr_d%YuB)4u;*IkhYxyewJbg{D*MciNYR%ZiufQ;F<=+mSK@$ zNSrh*NgLKCkLmLVmDV9uW}nR7iW=L+)>fgVmMpJ{lff#vU@tpsHz{)uHFYP$ww0Xf zpI{A0FmH}c+(xqQq}a9)fmWyA5Uuk8S7t0kJFvB}@X`5^;1>-(G0B@_t-EL$L99Gr z2SxBI2;!m`S#i9!o@40HWDX=}kCxQ@*xYimtN&bI*VT#ME8|l?PmWw09lSE!b*{Jj zY(w>Qao$*J_MpK$h)Fu>oPh+${|nB_1UGT?u@QLz;pc4CV!7kZp|n4n^Zshd1M=H@ zPylpSe(W!LKV1BAAp64@Xupa-4Ho`0Q22Ey_n)ym?;;okk)364o6L6#EnwJhlxnleD3+bT-iEwcsVc@%ptD@hMvpA8J4i^BT%HSyfn7x4EZYTHavpDCOo#d^qeMh@w?2`gbIz578E>E2WmF?U&V}j!s8w zoupK@hD!M%I{yDeP?r%AA5wNiVs3c3dJiX$u4=Ii6(*FzRpkh?rv+zA*0K^0XzMK9 zo%)VSnyuLaVbOm5cDcllTEw<>C_AdKtOiA`HB5$Wq^kYBJ{tB~Dt{FT@ncB+1!Cwp z>=5IDn9N@UA8ZX#^nD1j>;TMmVE)fv5+Vl4*LOjxC3|cu4my0Jb2b6(FtTb7rDkhb z+s^2Lpt$zE(cMv$!QhzDVB$fbLeF>!Pe92X=_!^gUT`0VZ@NUT^ zcO}>(gnI|&+!KlJiqMBB?{}&49wN9ampm536iE6|DSQOa{BXjnM31z3KmgsBV2_pf zBZc6FO!8DNek2z?l?tB8p%g5CZkE3^%Ac9FFXWOJPzTUT=G6EckUyc`1!ulRId3$~ z$IztVYiz>u+V+8s`l(v_6tu~^{fc9{|v3^FeQE)jPnTRlk-2ZgOM z)WI}!+1bznp0}qvGcv#k=}w1RAj#=4c^pY|sn83yLthx4_U9dT7ib(|eE=jMd-7Zw z+$kD&D$J1*fkgKb)&T|xAn8FUIp;{61Bisxs|@>B3I?wjV5RX2V&-8|lx}*SW`y?$ zP#Ay?avsu087610#R>4YT=*lrrg(@0xncfOm^xpO;VN->yg0Z_ccH^s3XoS*sg^3gx8o`6K?yGy6uUpe{lmkaNq6!y!>k6;9bQO}*9 zAPe;2_N9-vynlr*02F~g-M;$YdsqLtbL#88+4r|*9t@03(uE~^qALM(6H2XwMQQ}Q zhR&`b!N5V(%#pUxkTx2-g~99K$huf4IAZ$Y{1=HPq#DS*3}Hwgod2k@gN=6!)t#ue z7y3|Q^Pm79Q)f?N%4r-wjO&ic#3z*atVn!GhMf{hP6>qPM8a9V^fX6wj0snO_!uHS z!9!*R_yh|ZrDOdGNLviQ86K;m_${$~m|B1mt38h09>MD*aQbOjFI6x|n z$La!+K_I1idt4<@CUy{OgJ|{pfcDHe6fNo`BAp3X7heNG{a%rwlO}DUOPYvC4UyTv zRF+1Ht3Y11n+pH!rTYj_5X;$3flgW4&VSdkzQo)>Mrnw!ktFD3%KH(`FiSRs+lJAk z0fBlDPa0IEPiWJI5avz%1&NsASscjrZJzZNv(v(M`MIpTG5GK^e(ze5~A8X$n zpW+{F@gv#%;!-vfVg8>QKs0P1Xg7lYJ;JmD4mvWRFX3a{5~to0Z`cs6S{aeD1M=|H zoDhC~w5o_8Es9qaM9XV9wiaD(uQ6*Rt7i64^Vyz}p9cG`jt^fu+<$#$?AqapUnaUP z4|JUFC_h|PHlCR_VYd$&Q@g^1Mw9$oywS$Zh*X;CV-V7|JaiAohq>QGw4XTuo4Hr6~P4I9OVIsj5xj zUP%D50k$R@pq;ACOw&#zaW6mlfIKBcru5_KcOh~gCfp9D9f)ZQf-EEJcF{`}MTH4@ z_$E3XGBExu82)gU#Yxss#B0Ft&b4ggWXGusX~_kQtW1Ie%#YxL;jd%}ms43w2}&PM zarIEMh2?S>6MYvWT*F{~lR*4WjAT76kC0cGkWtFk zw`eQ6QaUn2W&EY&`2R$bS4N3;D6t*HTw;zr(5Ul|Z?qJ&>IZawd{DPIi0O_4=_-Gu zNKn*lY%OIKv?SKITY5_9&5|vsc9)jC6u{2z_A=ctcP2Na?L1jq*rEC|gZV$P6 z54kgh+7&_X3ug_5kOzqDk$CP=GWW*>@^M1^Njm=$o%0KW^NWyqlOwo}%5U*_zX^r6 z5y34X=e9`vyBN7A;@roCw=wa3sqA+t_5g?FujHXr@>n8zpu(O=w2w5ZXL{LFjrf65 zc1MceS0GPSVu%1emcde3@I)?rs#HJ2&=)H83$yAe0A37IXnsA1<}awVG+>0+Id$TB zqkK*)1urnHgXdK0Id9bqNY3zpo#;$fdxti9sT+#7fChp(fVTo>_9SaPRw(vDUjPWt zNg#g*&-)9D)n(DTpa|?RdThyy5DHC8gS_Y>%x!Eb^GV5bp#5?rxzkge=@!WUyKJVH zkm2;og5~q@){qTzBonA)05{AT!4mYSF%K!?I;mU_PShlOY z&{dV~tSN9dlz0x6dRmG-?RAg>aFKL-4>T?e)_Eq{p$`0ds^jgEuEnF{ zi(VE`|KicnH?u>pj}N^$d-&~{BX6MyaOvpVb6|%AFU;(Rt7qQ-437BI??4cL^St-@ zANW7Fu6($4@xx6hg8c*&p|AHYf4U3vpL1XCod0s?$4|e{K07geT$fxHLM{#F7YEX- zBUzPk!iorLbrh$Lj2xn{Tj}Cv76!ZE4z{eDD;q=<142c=7{)$|0i|vL!+QaJgQ>d^ zbr%eU#0JNq04h#)8V$Z-@uEk;jb_+<%pj*pyW@sBci zM+D+&Du0H?Kg{HgF#$9!f@WDaS=dhCcE<4A+$5!;P)nMiYqFO6Y z3p<6%5K<*z`GXn2wKx|Ed-5Uq{)vaUmc^`PK1wcYl3z& z!MKHN*b;BvMotQ#rXS$thVcs`keoO9*wcy(m>x2d7q zM@McR8M|?0^v1;S&%+((x|@#Glul*l3|Z_$a_t~X)Ju~d;mJ<(M8DzU$2#$=RM~uC z%ImVk#rm8#E%tX^1@C*)KXhh)^fDiEKMt0C8p!#3sOs}@-lws$&tuvDOq789@yigz zK?^^0=KR@__3n`Mbwj4JEcI5RraunN31C<^F`zV&xfj!HCZm2V$$F|5r0wgXRa;ON z1Q%Dw;9hh?EaDTd*-GdACxrh)G`bFck*x5(_;9Uz#Kw&b-3F4zUu+4-Sg6@9u9B2=CABsu9ct3G+QSX}l_c(W@$6+3 z!v7{vmqaD)mDh{wn*`alct(HzKrJ`Zu$dMAzY(PG2!#I$r!6DsU_y8xDJ@W5KoB)+ zs!Qp4$eK6|3^IEG_-Ql-Yig9uwY1)x1xL zZlrL(i)4Qv$66A~Ul|P)2t7eA-AV?-3lDn1-vvSc7h4&MuL@CoAF5uqKXFY&^14vl z`iQg*Avr4o%l*Tv1H#+)MYn~Kx5M%en!pADZ zLnw^MWe?QyXBzB@3Vo!O-2(-TjQE(P{6bmM~ zCq=c8sDu75?1h~${{cT2klbKm1FU9X{$$v_59F!IpazB-*F1;-U=aZM|BMv47hrDV zO0~ds0COQ=xVckPoHn&H6-s2V3pUPYSzPHB80^g3A^d4^Iw0@~v>&Y#;6iCi_?dt4 zL`K+Cz%P2-JYXe3$sHDvm@Y$d3|c+kF(={o*sX5>hPPh$KG5%^6v79 zcktwYPbi)w0gNBIRBfdd?*FC3&q{gnMD-C62%~@7*Z++ zB*tDu*(=udVbTGK_aYdUDn^z1DNJ)zYn;Y)M^uUv3dxUR@kva4Oep+OEITR2&NBJu zc-Tb*JtII*a*-Jhc7!H8N*9c?M3XdrKS2bHdZ;3H6VaY%Zhs7KfPw;mXpDuAu|yLz z{y3F8&c=p_{DDwrdjzA6h&F~nOo&>&n+h6&hHz$02%|An&>F#QBS|3P(<`#}^L1Tx zX)9UUNWp62(8@4&RW!RekX3eoS{}?P-AAm9@M23#f;nmaF$ICl^dNHPPFmJ3Ms)YBN#I;IkW`ejjA z{!Uu%J_vaxq-={%1<%X2gyb!>q%CpA4Y9Uu3AWAA7N2nQCZc9tgvKXKyA@smVm0ds zxDO;GV=a5QdViuhfNR`IH}9ldwvkfyu+zf?nPI}L2zh!aT1-*b%WWOHg2M&Xr z_l;g3AG$R?eE;~&!?Q>3ot(XMa{9*1)a8+uGaZMH<>pRj6bzfv`o)U=1kp4PJ;UW+ z)v6yGM9&>+SH9tOrS}Yf+nN2LEAK;Z?#GerkNssI!1*#%{&6V(Gu#COsb5ALzD^c? zoi6=*qWtfny!XSU9|j;Vn*FvZd7;+&s4Df0MBEZ1$=k)YY-ZZ_aZ>lo)BzM#v`l#r zMF7sc4m7gy04~4*&hJYC>Y8wElyV~*cEON$0`MBZ|K%I0IzLA8E~#!OTjj@+Z=h)W zIY3u{DUdFJt=*1D*0W?jOzmDq39l?WEK#(P1ec2lMC~AOTup^n33N38f-uW|R*@*b zoS6f-ej)U#md1(J0E3Rr_<XB4K%hytzVL)1qnbFx1y-E6aqHA`Aha;-eyFEaCsQAG*t9`gk*JuVr{f(YrJaN!K5Gd zT7EcaTN|9UHav4fP|@138vlcxd!oAcM)!phhYpY?!zr^w>I{)`mchRyU|wbOu5dZv zcDW2+u(-c5sW%vm>n!dq0s0F}eh~bQRB%@!y)WV3m#ZFt(o2m$!W9oN>@hBRtdu@c zD4t40k7VK}YRNO0{9x!a1@=siK8AS_G{1oVfbpNnO5IC?~4N@+`KyiqbtJ>5m0Cc!<&T%Zjj6@7hDGg8SXSaJkrCiVGizyBnW?+=it@A zu7cxz4mQHcQrI{{`O66)(6q#7aBHNQ=dvAco6_Zg6@ckwX3{*AXfh10e7Fc4&I}tg zg57yGcnfe9rMQY=3v724WV*^T;a$L4ZFj*6ptivK{0~G>XaPeIsG<06bE&(%_)SNn zySvIY)UXJP;J((y!5Y_K>+A83#lr&&M|u~I^?Q!NTfoTTiSb2{LY|#jgk8YtsW%tE z5j^`R2*R$O`SbFRAD|9=;{;G3Ao=t0Hvq()`|B2#f8Ra(-}|RO z-(OiVHErQ6kYvFCq$HA67R9P1vFpg926+A_^IBMvR)GAlu}&V|C6IOtq=UG+ zPonOZs=EF}*_3nytO0y#{n zKMUVP!#8r2z8vj(vUvw$-Y?Z|5n^jN_~!U*T1qj!M7@bFT}9(TP6mcQtJ$3I;(0$% zjJwg)V5ADKt>ok@*HIx>#QHXx{T+d~jLQF>#a~J_ZjqKUvufnc^|HRits3PfMkQL* zmowPqXlpa}Wri9>J`~|HDsLH?vz8}Y%{K4D8+es<+~nTO-WEfCPPp0{B!;X`-2V-a z`=1!n|3;~{vGWMF(s*+z$IzYHRn09|uHn#^5IL*jH9N4BgX&6dQ8`jo4{;+H`=I6N z@#>UlwQ(PA+y(!QB#;ziD`U7T;&^Lg1?w67Zx4cu5?Kc;@)#j>pH~6=IRV(tilsr8 zr3WmacUc#iyfo0ZDmZghXo+7~?UuOKol$*3(c@v1u_!8(xn>g>$6^vL(AgKc>}!1T zuPpja0sp3e{VR|D3kSI&fro$2Z$j>GV*V`=d<&C*{w=BUzC`%ITk=94DrJvk(uZ>K zeGEdL@<$4o?aLl%4Nv6!hfweGPI$!6WXL0xv>}9?oPnFnHiSUUWf1-w01My2B z>Z_pnD|-Q?1sr>s2&iYH6XrZRXj;i#I;~SKoL5R->cRP?c4@_M{<{sB6BrRT8^GV( zI;F>KSX7EVK!k=LPSSu2*aPJ+2W(~yPO}-@G4RX}>^N}8z>9-BCE1;9T7(KPyd&7H z@Z`VXumDpO4tX%exL_|}OLc?8F)hgnCw!XClVV=5NaoYi7eFYMoi?9qg=~)-{E}%l zz!14p!7rwEXMoO4a|@ImjuGV70`c?XZtvDn}5*xY{-`guVoGHj)uatdtlc6*ySMYD zZf2`$sIuyK__GB0f$X#ZV%BbQqHk=XKiRY)3d&y)&q!JqXY?a#H^yk!MCg5@biUE* zRblw@gW6T0x)q_0wGr}-QSj0DkqrI`dYJ$CC8#$<8Mf0cyO}0Gs=>=f5LxyL()S^C zg5+LJ+Eii9nXbNHrbi$Cbo%L~WAj(fx~~2>|MRK2OS5wqk3RqD@Vy@gFLyQ0lva); z+aLlu#1S7wu#-~!HrSc~a+|L66eTWHCBCh<{ncXo)SLgYC;Llp0UZ7xVDjHx`gx@M z^HACQk)nSl>;4|i|9dL$ztbiE9WVYmocpQ2_>ZoX`5ME|23|)DnzfT;^Ji*dgtZa= zwHb+9d0Jm8*i5wke8qMS>I1}P0_M+D?c%7mvc)Sv0Y(&qt9K|KXh1Z|5fN5o@>e6>B&mpLkP@v_w#l9b=cSqX>S81$qOr zj;7ck5H2B^w(_z_#^&U{25B`I81?&b<`NpZiGi-c1gojSB`ob`VY#RnLPUpjeb#LT z#R_(IjG;GgqTAlxnbuy(Emv*jO1AJs8~CiHH0}?vW3E zM85K%etDQ>WvF>ggl+kOR+U_ZFM>8&3e{uU|!+yF%oy7`rP2sv8V*0PKU_hYt*Y zF!3XV_eiaLib1PO@=%G+tK|qLTxP z9|)W<^M93W@)$9vN$%31E}$`_BraHC5r6~#6RKMtD`amV)nkX*&KzVof&842ya44d z;QRo_%?@{g-VG=@fIO#IT`4fhNnZd*a7L=jo(3LC7raC`;P2{P_C#0~yCFxKW(Fbz zWd0Xn@8B@a+qB-(J{czb-Wky=SRY$qtYm~*u`5;gG7Xp#Iw&T4MUWY0H@qoi>O2|$ z{@tu3SC;8jp3R+|T3QvEvYoNgci{P;y&uHVqSc`kA$vNJ#Fax{bk%j4g&(TrW;Q`N&ql>4; z-<%nJ`_sv{=YM?r(}_QU2my}x%Rl~cY4+VOpawqU{oI5&=uhu&o_lxe!u#J~5OnGN zuNPo7{ONb709^R{_NlLTkG;SBfqy(=^@*CU=G;nuuoi#c~FsI6WXq3}rNh3tI!3 z9Ry)3h>78eohIvM8M>&_E}E)20jVM@YGPo{FDUaq+k?+5CL@5D=}#=)pOCkg21@s$ zopISa;&Nh`psmc?ODzcHR|K&dVmR$AO+OzX4~b(^?S$GfDoq~I7@){MDmRX+Qbv{5 zL8%p(4=oHuGhJC7&8r~`D`K(IXimmHYWf~t(sq)0XM%AXod2-)C7QQD&YzI9i)8`? z==weaR5uYWziaDCQw?UeJ{3Fno``76gB zpXs|f*>kR`V%lmS=Awgi{){g9v`BJODtc-_UZks?MUI6k^B)ZvZ(Hpjd-6g43t~qv z_H8ih^I*}}vEomC`JadLzm61snX33YR`LJF^8Xnx`3F|RJ;i_2XTB=PJdP*!vW=x- z(%gNxX){%~foj^pGzIWs{DQ9~%GcACYoX9Y6)gz^!oLP=?3>6Ec;a0iD&NdOSCPdl z5|mI1_Ms|)@V`%*2=F&Qo_GUQv5uzM#4~Q?8MbqE{v5zK7`7qu6>R$#E*oaB9q zX7!S#u|%oZfe3DKkLDDmG!#eW+?SrTRR=M+WRY}@$`0)M!2w8hks5^CW4vJ<|G zmg_5*a%wHeNTTXz&muN}2WL3P< z4~W)8={7p~gPbS$zckoWh3q9T-@M^Z(KFcg!kMp?z|6;~MdrN+ zKBxgOrvZHh&R;V~*!A-|3}8C|;dkqBkT$wa7%)7&RWCCDd_W?v^KNDV_-vB86E(0G zc0xtVZdkC{VYlmLL3_`3vj^Ta(vlY7z)y2{Ak3L=UC2mrJ50`WZv=E60zzp?E=LM@ zB;g@{9?pLNN5Jd|=Ju(no-~O1LuFVE#W5#@c^p<3)Pdn<$%OF{{D!dnRldqFLGs55 z;M{brE7#zHB|^5*m2QOjKU@cMxsd;aIB4P=yaE)%>wwn_=_<*BEU2q2$5~tCu7MVC ziKjmIbqh>^O1u@|=F-=|f@_8Of1SIp$vx2K>1*&z)GrR#xku|gQ2DSkG z?j!x4<3q1cOaKw$&6%mUKOKDwE#Ql@e*zTx%Iv!L zBJryMJ`+Kz=LkCm5bP9nv88=tya$!^3S}?@>E=uOp!tQW`*H0E)M;g!Nx9;fMn9$0 z9aE}ibmo&<{G3L6QY<@*h|h_|=SA3AM0i$!oOjL>6^L@>;`L zEn&R2U}krWpqGku&?Ox-yqzrWV47O#cnecf6)mqLpcSDB6`{;r0B>%KDA-HR*-gj~ zA_L*MXcr|fkXE)cE`MiC72A-%10*%%%4m5*2(yhY>IF#WNqLPAE5RtNQQEo6Tbq6_h7sS^SlKe@U&0&Vk1d|`p zurAcHnUEMj(yTpb0$Z7HykTvGZgaF@Z3ygz^S4G9Z;r**c|Q>TG4G)211P{xldq3Z zZ=#sC$0h=KW-H6Mjb#g#Iu779sI@n-;Am0R&EcV^XOB3qopxV6v2YzeCq36rIY!?9_6!8_vwy_Nd z`9)Y+dWe#>gv9(FOo(K@R|LsR3__b!)qQ1$tJ(Gxh)}L2@|IG>&<+Fd{01TN1JS${ zYtqzK3yPbQ`m+L+7C(b!J60jc9xOUMkk{XyIn*F7*9CB;K(1RxWqwPbe;zlJcKu>i03SHH4xVLt${T3Eo2$=AMkcYEGeQGl#mw zt1vKZ!g2^HmfZ?lcw)7vxIMACQc+pJs7wyc;x8vk{9?1Cl4a}Tncqk7S5Y|scQ;5_ zuq6?~Z-T%Aqh1}QTpOZW7iwJ}Xm z;wfjyvn4wJ6XpCWVEiUz{>Ee80jejT{+p0{0A!WJsf!;l{|u9M0igW(g!lp6I}F2C4PX3U^@VT&u0?BW3}{& z81YVf0Y9l0!56Qz@Da`#jb1N|3WJk>KFI)d z%~xRQ@~U{@IbRNHFqhWg)T&-WC*5pvnt>4qKxQB_8{B%(1eh0~BVe|;^a^+#a2sWA zi($@eaf1jZMGfu+q%{q<^9(JLtY6=$W;QWWTfILq_i3?IdJ+%-4a<$ZYI?COBE$(6XKm@4a^=P+y7~(+9?up)o zsoq66{HOaCrhDB-2H$`b=IjjUVBmotSa5%wI}9n%zkWXT=cOZm{(Sx~u)|zC4qlkQ zZk&7v7Xh@uZh|Hr=s@S*-?{w9Em;1Zhc4LHyXQXMIsWF_(d$iJb&<@%V0IxWPQs|A z;neCFRvm#_7tN}Mb#Q{9oWQJ(7FAL>ojiWGB(Ynf2KY}GRJ~A5k5D=!Pa4yjrnJTx zUE)!F;t`edgvNYYqdJ3Qr!mP%DRvH*oyUY{WypCx^CBXE8{sr6J%wUt#j-O@?s)_~ z$rPPr^3KqO$C!c>OwnOFHp|0i`Qnoz$$7EtvcNm9z9K?lYjB#69cA%=BQZ^44aA~- z1b$CAyCq!E5y9yt@H?pLZjz*(BI%;b+kwNtQZ{k*Wdu=K3|blmcsEAwPGUhoY;F)E zKOi=HM|^n*J1ZbAXIpeG41WT-fRfAE3vMrN9bM59$L(dS2Kh30!8t59!HqVl&px7Y zOzP6dRJLJl8qj{a5i>Y>+l2aBn!KKbRwbY%!Ge-dHVl{2g9Jvugrpq|!}F^L-^VBnwV6P@HApRzI9#0QD4`(c{Yi$=pJEJP!id8jh}3}#J}GauwC>LA#EXkZoR^Nce?GQw{q*AXldpf7 zb^daE;mT3Z)rt8_BTtXE-5jnzTUR+Lmkx6j$0gD;LiR1lZ0q^Y-~~C~yijR--H`OI z$@W)Q`iI_(&%K3z^<;eNEcw!%@pY*7^H46>9zTvi3oP^RQAmVldhbG-pLd8lywqSX<#-AlyLxj2( zb9tO-Jx#rijVzDQ?80^X5QQ&8?L*S}u*`le2<_{4@bo(&`H!XS6zjLJ&3ow9aD#3W zSNJ^{-N2UkMc5g(Qc4-`+Ze`D0yKZo<P9_T9LAHH{Av;k6>n zM}(|m3x6Qk_81#96_r>?XX+4OLX)={9sA5#(Z-(i?%}fW-rRv!b$xoMQnUgjjM3~L zsQmB9=yHlKKvc}Om&^03xMiZ%B*hMP+CdGzMa26qp0=DUSQ(icj28f#bT@82z^##H zbtLx}#yTK$%3ncH`(veXHp6Bli(oC_W!5Qr(qoktaF8*|bIB#i2l0HO5nmUYs2BOKg%a1$1kwz|F?JEe^K50pHKF?-+kQ8 z&5cP+6dPDE8apDL8S3;t=bR~LX3q3V8OjX3cciOG7pw@PpjZ$T#TFH8u~DX45^Hkz z_kHYpviGsO|HIx#CI$!4WL&1RCTWx_jD#tA!gVg|2AlE=hYE)G`v@dFnP6{$vOgna-9>o6u&8$hoCjjy zxv?JO;)f#MukidY#U9~;M=1Q1{|I9~Q{b@h`yAsu#kdb8!l#(@sa)_}4Xa+nGeQc3 zfG29zONC&;poX2_7g7nZfSyB>2N%3lqR(OBONr0PI1Y_qL5=xX$^>tgQ22lkMzDj) zVe1x#zw=s%^oZsS$^|6`+W`wIG2oiPz2eqj4x`CoNP=}RrxBE1gfq$PGDsIvlR?Gk zGAibc;FJe7m=@%ZzQ7NtUQ#k$M#60Yyc<05TYYzjRGTB+{w9s^_*(RU2~G86SX{7K zkVXJ6)CJH6yRW(AwWheC)Z1-tAVokB2!KC!i_->?&dm9A0DD^J?KYPkAP=U6G{bzR zbpf9CZAs2Niz63A@Oo!1=)jUad3MPBxC_h5kR@;~pN`v_YA_s`87ZR=(zZR=yRcQA|h zP^-gfrD4q4cv?LNuVZ3OR8|vL)Wi`tanV+Rv`rvy;VL>1ZHGYKDb{u4iawe4xH@fs zfV7W#P(hs1S3Nh^y%3w9>}?X7S(tsCsel6x|Dv6 zeMpx!s7>uxn7W9J4#a#=sA(0av@rFRu~IM(-m_#mh+WB34B! z{37H5QM!Ocd}Xw96H3J0{P% zZ=CbqxZt@l=(%-vVd|`F^3?qJk*A|A4+mMNAu&FNV7HX&2QZ$?ARKx6 zS0yHQUCNuL%y+H!Pu=#9ooVkovp)6O-*v&lZ|UcrypKJ=|Ihy8Skb4xs(&8M_yeGD zoux1o{+a>NRwgKSlCGB1lz0-LCQ}T`0in1P;Gq zHATG%5iO77FN@{9ZR=@rd!3)tm3FwGPKJnNgEN<1|DeN zlLA@#jeP4y3I7||mZA$*#iqt9tK|E%>)GJLmH2V^UsGU}44V1f1xMP__SwR8rVV_; zkHJ|&LYJ`7MIaGiOTLS8m`^p3zqr zu7|Aw!MD-uuj9DiQiO|Wu%3_=p)VCAHxixcyG+cbBvoKS${vGh9Rdyl-l8z$n)rec zMOmcT{4*zQhoDxL)gW%t2OylkMZsD@DW%A^RcYBy87|W9HT?Yisek zYGyXFcu&GNA*^pAX#csB{-0Yppm+THZt0@!AokKM+L^jIB;$u&d8ChdG8Yl6<0V$vts)Y~k^HAwqY0ku>QVZla*(@M8Asy-~-LUEfzF;NPYKNZi z>SewzkRJFy5~r2`A(sp2Kw2Fnf*erl!SH2<{amweWgtlh$AKrq2FPgmEX0Id)--Rf z)tm7b*wfeQF}l+sENb-He6&voz~XEvUYo{aGl9~}nXa491cR8?n``;&L`a2Ds53pu z_q$kO&I_z*6+HI4tZHZt!P=KAOXD-YWF>oYGd$4wFG_X8*f%T9WivbTt!}9{XsM?m&kciMNdC8!IvPt{jXpK7qr1f2S?lVBXZ}i0*IxIL z3TN*D*Wo75iDvKdHecBv>UN(!>^j}yJ=5`ev={8~Z!QgbFG31*=(n3=zfGKZdwuNf z^-&)b2)NKU&cD5R9_#?`ei{F82k4*xi1RIieYgj?piBR}Klac2=l}U&_`}T5%X6nL zXj8HSDOua8zR_n0w<3gI8_U|8$ZV3TTQJ=|ApCIfRw{B3RUPC@n<>%*fCd#Cx}`~7 z0_kCu_N2x#j7rYPHD^_d(<;*inPOawj3~6@GU2FHIfYBENH~*1!4-r%hVUl@;){Ij z8p6NCV!{U_Tx^Ug80T;=^Y~+2@f99>j4vJ+iKc}7+YBY7Q>?Cv!}v9ElBxuV;!BHzc@?41 z&SIBF35&P03wOnp?Pe5(aZ72^ydCuN&55O($km~ong|S#5lzuRw^kkInobBc1B7)z zlh&`#7}Tc>>NAHd`Td6UK2^#gMd|^L>Y&ivh9=cglvPxsG)hnsCddh*Wo~1c*F>8G zDe4uWdVi3K>>>QZOnzay09fV?h0R~%`Vf7%%=z0zVs@cFU80Laf_`$vdPuAzIuwIc4&Hh}CUlRf!5Sx2Onzp$s4oOPJhc)M9q( zp|Ug8NV+{(nXy~0TZ3SWD98#f;zyMQ;1DYnhTg+`Ry443@<>6WOtx4(O z$^yFac=d_S!XtIkX7dKV;Kw-jk~nmwfcFmy5H+(&$rZw+MpJV&r%teh1!fjqpv1Pv ztPbFE7sunv<8pRO%401l+r>%Xc@IO&8JUGqcF}hU;>A?UE?IVv3I1iWVw3mk8xHD^ zjXO(c;g=b0eCzCmY@E%A|NCZvudG{gPkFXzzS-+y9$B^~}q?u;3Q-AO+UI8R28TfrQJX0zr&htMVDX%ns4Epw2CTEJ; zV^8+jP3~;-LM{kpU`%ZFq$k1E0LHsOmIH{~Jji9NdRJ}|pq?Q<c2AtTXwR?M0dr4&PNXmsN1WJ=0i$r7nf*53{65~GgDPTl2(w# zh2esNNLE@PDP;}d9U@dKqSZd0TQL58uzK-s=-=x6LJWQ+NPB9Rg;}@JENdfxFIT)7 z_|=JZ!OW)Mn9e9_7nv(s9tJPvIWk5iwtrl7sQgAu*lXWmcH8?d+o$fLcfBd^dUAj7fhhp^ zU+f>dvwa{S*abM2|7TA=42A#bDtvb^%hQwQ-dlEGE4qNEj_8uR7(`>NPURP`UPh5E zi&ZX35Q9!}akOMf46J}5i^E|=s|Xnh4JdlT~hl_g?>2;2Z`8Hrf4NY6(F%}5M+hw8--c5NI{FPoB#Jn zSQ#r%$j{!HoEMUrx<%NQb?{ija9eUmReTooufPJp{VGPVR48A=x5e06j1Uk?J&=4T zJ2*wWg2P)zN(z!#x5||M9Ay9%^y_7bNu_Zq`t_LZXBO;k*yFN@<#fT{5Td zBYn{>`_hp7)I66u|4wm9`ezksKHRuP-McnsJQd-G0*}U1F<`mKAAwC zVsUN=kvlx*O&;$qxPDlS`zZgeTzpT+fLp)}!gv5+XCCVwKpqg*BOdF4nEMFjJW=pr z+WQ2TJW&AZU-npvJQTBLWZGY4g2(U$@F}^&I&5P7U7yt$U@|sYM;2fQP$)N&*cc zpa4PUXTg*TR8O}Bcj?sdgg>X(xS=VOlIj5+4DfsmI=4aXG{f*0z-~Z?(7TfK9%~w; z{k;H)NYer)2sjMx3?pQIAfoSv^)6TqHWDy9@FXi-*=e2(tt-RmP6lNdq<{e9ulFXa z;Z3hC#aUo=+5sG7b=xgo*x`bB56pQBY_KT|@3`S;NL4vNI+F=YzB(uD6hp|TzzF1L zcb3srYV;N+c?&I`qI7pbin}<)Rg&$16@bDlCqzI?LH?EDsmgX$<+$ofTy^=L`eJ8o zwrg)O(19G)mCojJZ&RtOx!QdYc7dBb00L?&cXc#)57)X6HNQH!&wH}-)j+Rj;GnDj zpnJI2Gkoy%+3wfp`d^Rsd&f?^xp3sSalpZW9eC)i4+=E${x2fXyQ$INAP#iz(!1N2 zKi@w4`7X48U@zdp=euK{?_T-?PJ#QQA7_SM-x|Kt(9#yev;CY{7{V#o1H?0Gc^JKt zlvo!^ts&9tK@F3@Y-RBG3senkQ8P>4ih%P=-X)ZFLHI|ZJuZ@;kV#L=Ri`w@A-QZ! zfuF+_mkHv!Ts%dHZfZ4CGJFydPT|N^q2RiZH;MAE2n6Fi?p1_0A(BjC2pkP}FyUiOOL|C5sQ>LGHaKNk!}*PfNa_-sIx*8e zLVK3ffTUg>r`tf0 ztspB`Qh|p95ujSSrcZ6Z(OCcD;?UgK>6c??W-kxTPhD_a8+KhAa$Y+(Ci*Jbp&!GF7ZgJ=6-BsqdRY`A}!T(}|g8#ld8@7Od z>wzU-kpGr{JeK>hJNHv>_NODcfB24o!hfDD1~1I}{b>t*Idg@n;}Wc&W(2C<-f&rM zBr01Kul0*l1DO->{(jLg#FY3`1wVufmqerAlL)^UbpVWanZjih&JU6J8YZ!hsoDS~ zoo3oBRjrKI2e8w&OQ6kV-pDbo=jQK{0q-JX2UbBcWNgRmAxc=7lKRDp{OIxkrurwg z`6nbdM6X+iiI*~oK=!_@!`=AjK1Sk-D~w z!?j%f{*?MkPBy-RC0@<~`m}sGNxw~!v`wiAU}f*YDyhbjxFo|SzH%!#C>gqq0{%B~ zh(8-&#Y_uPX6;nxh2vGAo(VInH%hYiq?b_5?dk2^w!Lk}_9A*Vz9g3a)eh|2-Qqat4$xQsG0G`C@`6 zBIp81Al~yxhCcGKeGnf74o4r#&?j=_sTzG^&^(okpDXx)`hTGW!YB4z0wV+23ytW7 zLI{EXmr4v!|1adiIVtq{k$E*X3qBVEJ_ofO7Qvv-n==8Y3GdGvlASOMHc8;S9E5CM zAz6@Pvs&Q)sOACqqt}3n3$Q#6lL>q=0D_yhS|Ire+gQHQutx4QXxs+kFB}APgbd*J z^`YCPG*jz@;832;l>_ES zgUe=h!+om5JKW#wQ+tCwm&qE66D6D|J9vl8`;@sQGQ*W01Ff`*~*M-Sp|lM-Lz7h;z16i?+rW1~ZDuymAt~icGIh zWbRGiH70PHqvRyqzE zm#QeDJVa0&EzS?-6h-m#gBXRo=v5IM(COAjB304+;&7}wOi&4H!eOkE-HfswU>0E1 z#tEC@97&LLV}`@1<~W{y3b&pyB#)RgP9?3jQlzy;@3NdBCkofw(BJn-^j z-?KB_Gp8D64z--K=?~HP{X7C#9JdvsCkA5PN-PwndaI1Ds#D(V&;GqNm)J6xQOX^j+#AYNl<6Hf^UaIYeECSzArj?Y7*{2bn~ZO3p7EH|2nv71rupn?ln>i~Gnn9kK==s$ zl;Qk`sPHM&f4LG?z#t3s2&TX?5imdDAb^C=Q0S-Ie)PCjRl%&PQr1U{?AL9+tgexLAHk1s%& z$Ea|sFgGD~;asOu2(2NwEI8F-fINVZ*JUxo2*7C+1Afg3$}ocxxcwk%^sNS`g4-Q3 z`~YnL|1anuB_6;#q#8UR|F!5{X&?yGL)6m=)gHqCQ2fnCw=EUSVorGA0r*2^7FZ)4 zwv2@gt0z_Ag}f+yrQPCzVh#{F8>qxoPPhob>5%u=(>|m_vn@`T@Y?h~h$s+;ApB`F z&gbXM*`cSDzJLDDhhu*}Jp1wC@WT22VYRs`0?pgSEed17w$$EeT2%tS zh9dZj0>of$3kYV&bieO#tFAypjXBSSKLRIaq7068qc3Xx_iLsl|oRq*bKkv2}xgil>$B?^9*$jcrXz&Mm z=@YZ)xe;`7!WoqWGReQ-V5VS?qhesk4JQhZ0K`6$aVP=pBykUdgguhAKZJ3BENP15 zmxu5{-IcwIQxcAq?_n40gu4u@I#$#WhSo)k_l65r#woLHNN+oCvK`hZwTV+(II2df zw2X`uhH>)uu=S8Y4VQ(m=7ob zvbHinF$~6;mPmd(S#UC*KS<#pi(?%p@xgKqFMLI~?8k6rKs30Vh-IOY6?@cyRAMDb z0yShMQ@)y|+r-I=B=+NJ;}w<9FAluCG(0v4NMP zy}zF6emu~4r=$LyMS6sd4)M@2Tr#bb{Az~#tYp4875rb`nv}OK+3#DjKKIz)b>{={ zAGUyj0{5X0wt(~AAF24%SN!Q{{-@sZKaUjuaX1_He}C^u{=Gf_X_M^|t|;9aUrv%% z$0%(8s9zebT*F8P6!Ur}z9b%cEa;Dk{BL8qKSYDs1ahsGpZNL>6c*qh;EEJL&D^bn zj1U&UH2#G82C`duX)um6b)O?BH=p?)1FBUqNP1xeqH6-Fcj5l#}oBUbWN zD_HuqNNz-S4k=x?Q&NHD4Rl`ZP!}ex=Hfq)b?ev}TeZ5C0xpnzcFHX4FpVFqW}y4j zE&G)DdzE#__lfkshiU@Z738#xokVVgC25N;Gelp^P`2gvG;3Q5V{(=7U*Rvs7Sob< zV$GJ$o}8{qeo`gV4hst)paJx>@Y{IWcVu)WRToG%uj7@*o6~-#=Y{LigQU;`GW{&k zZ5G3t1Lr%4@^Y~6;vv_XNm5tH>aCj9 z8iUO*?hLMYA_CPH|Djs@M1ej6POMb$T;^N&{T0~GxZtTm0`>oyi03Q&QsHx%d{&0c z5~61s2>KREphtki3A^Mdd^8E978= zcgdvlD(LwW^Gex*8uu}RR0@aQumJfV9pP3JKKQc%;157)GyC>}0R)i*>tN8shcqV8 z9>D)=@Pg_W5O6*ss0k*pjwE3I_z0p7KulQRQ+hYFhO*P%Sb^uGbEg9@+UW5KA9Ze< z+3TzSDZUXfH1O>@Pgar}l0rVw0QCP2uG|zyHZ=ADC1-YL5>C4j@}EAYC@|j>b>S zPGE{=WjaAd5B;CwG;cW!0@B?@W_L-3tK8};%JGzDga5@-0X-kPyC&DunCon+a5mS# zDugKrJ4a0*v&$I@9&$ z?6Fs8VG#_B07u_m=m99)>+}6@ubhUBfZxYYgAwN4)ghl9?AoRGQ^OypCO$#8=NFKI zU3+(X;`8lGf86yEfj-|K`*Q|TKqKzUgO}4wdnl&b7()$RU6Uv;iDZ_=VtauCO`+A( zxQ+45T9^fpSS@kP{m}oXvs*c6JFaQRU=ScXjNw3phUDikB07yLCzO(FD&n3|KBJf2 z)=Q@i(pxIz7aY4G65f=HZb(EorGh&U?2({1MZV+U7eX|nB_657znUda;Az3Ccxn(l zF%vUN?62p4-VGk>f)E*@aZbfC4##l1qBtE5+=3|_?QXc-(F{xR|&!|>(sainT}ynIEh_{VVQ zt1DJ8V6>VYinWL`E)*9%8t$4MKlyTEcy8jfYx3;E#JTy&f%$9D6oUGH;@Q~Y$7h-z z_BUSNmp`ZkbD8ugqPmES?rVr&jgq-k1;A-NRr=R;DQ|0%es8dS?9BbpTJ+&?<@>|X z|H=N;Tl}f7u%dZT@jr1m9Q?Cpx;X&lD0F| z{yfd{xRf2Ja!D8{6#4%M<^B*a_(v%F+Xz_z)fAX$*&)=eV^F^eqkR`5SwjWDGWuOK zwj|CPq{!GRFa&b*qjkDf%+!r+OCZ~}U2faL)dVoCTcq}F!qhEDVT9hY5mT(AD3&AI z03Oi(D|yv5l){wl{PwKg<87nG6t!kGhgd;X_{W1UK53JT^EL2u=;}3yE`Vd-hSn2h zO^V_=S%bun$@wNu>_^THGuZYJX+g@Q&GNJ@W=kMrufDb?=XkTasVpv6wHg;L<7+q3 zTP^!flpigkne8!J>6#I50(O*ECj=QgW6> z<}3@Y`#GjHDDmL-xC23?_MOq4L8O7m#G|2cN5c{ZLn2N`#GZ>!yhx6ppi#yt%t>he zGpV;I%$p3}Ef)PYgLxMgJ$M30^1~J29**8ah0`eHKf(TqJ`_RVpYs^y%t!=JB-kSf z?~z&rH|~cjDY#wW3h+Pz%fCF>3w|O6svGaAT>7h+_p2219TqtLT*`W?P`m`~uU0t= z&KG#WYOor429Re3YfcFpVbXaVotKLi6sSukbg1P{jc5VZfnmc7nl{iEQmGa+2tc77 zN|8%0ULa71PVIoXFu1@7xF+BZz1pFLR*%kO)Vd6MxC=Ovk{!t^w?XeV89lxeLG6YS zfE6C;_1+|v7gUcKW*|k+`+UK=`83@^s?`Ch(Il-m38F;M*fF}SW)Cdz`ZmSj8;p)D=!0P!7dmI*o;mfJlLR3YFV%+IkPiecB3a32D=vDDjD>D z@~l4iXFhzr-dT|2ssQt&)wQ?K1s4b4KbPcr3axH{Kl}E-GQj`ntjP9Mmjd(0-B=4h zI%^A^_0<4{aPBL0?W=I^t9G?idVmXhaPOzya@I z+v~H(UZ3sqo;?Cbz^jW#UY|emX0+dP{`l)lgTIZPeLH^2w+ME11RTMD27Nzu@%_#5 zkHCeyJ@Nkb^-nj(KHdZ={Ma9WiG~sI^ytUwa}XSQRNinF%k1G6bt6Rw7}h$9yo#o% zj6v!W(S|rqT|B>@%&AWhG%|%vi3msmS{bZPp|YJP>fz(vJXr@DIZbFswEFV~#SOLW znh~Ei$sd?iPjuKLEjq1K-Bn;S1bRozyF;(SJ^Y&x6;``yt|L5cX^4G`z@x|9)RDAg#|NDL47k~NR{`E0@ o! Date: Wed, 31 Aug 2016 15:26:14 +0200 Subject: [PATCH 50/50] Correct XSS injection in check_system.php. --- REVISION.md | 3 ++- webroot/check_system.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/REVISION.md b/REVISION.md index 3a83d21..cf05f1c 100644 --- a/REVISION.md +++ b/REVISION.md @@ -5,9 +5,10 @@ Revision history [![Build Status](https://scrutinizer-ci.com/g/mosbth/cimage/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mosbth/cimage/build-status/master) -v0.7.19* (2016-08-11) +v0.7.19* (2016-08-31) ------------------------------------- +* Correct XSS injection in `check_system.php`. * Composer suggests ext-imagick and ext-curl. diff --git a/webroot/check_system.php b/webroot/check_system.php index 1443de8..889d176 100644 --- a/webroot/check_system.php +++ b/webroot/check_system.php @@ -2,7 +2,7 @@ echo 'Current PHP version: ' . phpversion() . '

'; -echo 'Running on: ' . $_SERVER['SERVER_SOFTWARE'] . '

'; +echo 'Running on: ' . htmlentities($_SERVER['SERVER_SOFTWARE']) . '

'; $no = extension_loaded('exif') ? null : 'NOT'; echo "Extension exif is $no loaded.
";

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%0DfgtSWFYv!7=1U)V{}2+9Rl~QAh{i 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
|F;q#jai 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%0A}i$w)9{6-__;9=FPXxGCCNYttq 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⁣*_7bm{rH2yT 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�GR>^NHHIv!q@ih}A|@lI-3cT+LkkuF*DNb05GLvx%x|Hdv{9f@Ih| zviagJ!Mb~_I21Iae1#pG0o&?6cuI~V?DG2Rtuwm|Ye8zzNyR>qE;L>INhX@M3Y6o4quDgY3Y1$Ny~ z6tL!jWlZR1wPROxLWZu*46;iD1!n6=Yj<>vIg+lWCt+*~Ml4FhBf**Dj-j&yj0>1} zPtFZIfg(T5b(@#yjD6<6ub^%rDZj6AABv36fEsX8VZrOYh z;s{)kmQA4#m&Xz{>?Av{q_9=o}8xFXJTuwM%YGvbP4b6$`3EAeEHXZ_OJf# z&*zs9E^xKstxibQkIRv!5Wa<@nP>4^BpNg*-n)gIgux+bTO`G@ zoMS`8PRxi%-5~<`hJzZcd4EagJIBOtUWIXce_9b&a|csz*0^6L{>~3>t}h<}AIfj< zkKJV-EGJr0!)DdjI`8JS7$i(cykfX zVLF~p@9LiVI5y(m%Wc$e<;|Nfh+zMmmODHhZ}%T>Zoc!Ub+FKvpc?i&vvYuj4(k1` z)>#Ydy6Wmk%mw<`aNJ4A=*5N|0ul(ki0JjVvYPF z09J?Ctq)fkpQA7f`*xTg&M9u1`Y^^=hkAGriZFMI!1BEm%FPlvZN94OzX>qcd2=6GfF|Y04@Uy1CUuGk4D}Fr2{g;ibSSO zDN*aFYYtni#aK~XB{eo_zn685;)ZlWH%)?_Y&&pY;O=!j2V0QnptN&9BExiH^}$Vz z18M;pK_YnrD`?{8#>$}88lY)sPTsotDz;g=qT$dL5L9$UNY#?M22}7+-I1Y(l)UPgyk$LPXG6AxHXJ!mS#+2R9i0T{(2(fq^p%t}}Xhn!@RbqDl zSed995m-#JE)~%p9tZ@+-~iSd3$X@~?go+3d&fwy0&xc*n>#=RFWpJ3Rz*LZbOXW} zWYKO^z`~B@=)MCvlT#T2K?hLNELaqP!`di|feD6lw^4hKoHL!fAyQnmWr&DtG+3dm zj1Yu@1hSXvef8Lt9h&vD8H@sUS|VL}U$I4F?3jqa!vMXx5GGz0bO#O4)F$e1dV95f z@+AD~b_pSbfu3B9&%SeY{ob={dFWS{H#TchhaG?Ot}7lj-|G5+p>UVUio6RN-K^{)c~cIL*a0fnbP+#KJ?sTFy`w^uF6aRq=W{?yuk1 ztP|gS`SMkJc>e6!XCT26WZup%UY~Ejoi42b}h$XTxft6CMyN?GSui2s=4~9&-KJ+!26VqZ0 zSSv;$%OanCuzm8Kr_Z)H|MIK*gJXc3_ph$ryAVv}#XmsJv?Vjb5S)UyNE-k^0#`c$ zoRDL$@aC`oy3jK6 zaOZSkc@y-W!V~JZh}4VdnC+xjmzV}`bB|+!*5jUgZ*8~7rfoZ}%cthY5K`T4j^&;y zTwfgU?NQ$zc-o2{RExo24==1weXX`)r_n;ArL(wej7g270rUASra?7GTb(MjjdS&M z<{cJ~HuVCojMmE_T==iHvjnH z@SG?t@uQOMboNJ=yZgJ_l;h>~1SF>dnAU%1^+YjF7%)Tu^B!>>gTdbW5J55s9^IwI5`QeO!`hRyA?5a ziKU$a5;#BwB*jq88EsTlL^luur`F8`NJzBI=AnBGy}o$S|N(qyTP&ilE>TKoL5+ z18rRo9k={{`Ruz61_-*iScMQ9h!GmGkrHQXwX3(V0ja%bEX}*MfC^l?8$vy;YE-R< z2qFT(F9LJGJTQre(41J(V}e^mL+QXHN@Q>d6B__!2nsj?%w&+3RCInFLF`5wK-G9!~FGlx`JfL8)Hqsh^H3!2IM#KZw^G)B(b7Evt3E zdh+3i-~a5%kH6E8?_T`o*GQ8P4w4NtBCw?1YiY~4eX_Z@dG-0`m(v%Y(swoflUcsg88_}QnYpa0LF|A(Ki)`$sH z9)+D8lRz$4Pd{1j-a4QdU_?YFucoM7%{mIY162fDX&}T{T*X+ulXFK?W5md47kl|f z|LD_?pFYmC9Dnt0Z6JHR`s{<@J5POi(_bB(J?ye^pcEiDM@}*-3#Q<%&Cnp-{_Vf~ z-9P`;ybKrHxU)8}g}8|X9Ep8}Fk%l9E#Qp#0uKk2p*wI;3WJ9ZFp!-wMEbo<379D0 z2rL^6hU8w|!KR6VBdTH7koQ-YA$9f=NM^KX zeHud277=Hw0Y!<{+LmQ)99W`2UmY6?IL3+ccB7r3mXP|z_K`0~3cJHyX^SSrn=QQm z$)_pev`bz3`Q*6P^SSt`zJB{~ahW6M<#1k_w55fC0iX+^xNrz)rm!w$hy$lCX@d#Y zQ(v1|uQ_cD$|mQlXOH%&#qH&O6BwhKW39lV1|vyePPtPU5YSd+S3(ydV3V~L4iSTT zCq(n;+6^jVLhN0;(T)kCc4q|Wj2xnI1xIokoee;mD_Lh8iOry6NQUNBnww*Ta%$qiU5Wia(?FG( zx1?$a7V*>yo;wFIb0-7<*JTaZxK>|TiNrVO-gSw!!3W%#yCP2n0PV8NK3o>Nz zvmuHEG=UxwyAuFbhz-@et}N6gKzEd6LqyF45c~7rp(L^Fi;~gvo6jALQ2UUM_*28PBDPW{cM|;e)H)cd>_7= zc8?{&_ha&7yd_u+g-Um;5T=l|LXPa5o8lLyC;jA_JaF#ldo@2 z&mZoNp{kpe>Gh`3Mqxlr{z`Fhng=xO?i!vGi}~~`w#!(7yr}WF5QrDn)XAEb)5}d zmsL9++P9FW9g3p0dG>%3qIbbwF$6VdQb+_iU|AqgFj&l;6Er&4gHUF|5c(hf;FBkx z?Ju9j^WT4QI|F3g=DhvjL+Z!+@(Y41iOGdvMe7x40N*T8n8Cq8@6qD@&;G?P|6jkH z3vF!KccfwOpp=YcvU>D9dc%MQEFNx{T!%|?^E9D$kPx(LM)9e!YcW*iHfzYzAAt5w znGho!Hk(b_DpVFfBE-ZrtX`=hWKfm+<1k)B+k}|n$dm$;!P#O)!@;$x3Ibs{p=Oz+ zLyLH=?UqRd6nxL^48y=hRVsS4m=IPabR8IH>zNtQ5~M3@8pUkP=-Q#PX3XMkVP;C` zlhYEtE}92!?pud*X*7YetP6D?H_|g}!qy9tTHX(Of)R$BvBCZ2RtD48?7tnu|hp${8-{a zv8OoB`PjhLdEHN!r^5=Rt*X#CiTJ#L8xGbB+G32@scvK?5Zii3o{ zHYx<55@AuN)sZ1umn2|hYE8u}g#mQ+#vpmD}i)K+)ow<7l&pU&F8y zK2xd~LO^FRKtnJJ4$i2E*2qQ+N{Yxca&iwC7cZu?f-hhj>A(Qs#9q$iT7Bk9X2ru! z*{rSPXgP+~TT3vqKXg;D;N8p}VeQC>t${182Fbe)$krM{RU5MlgQ~U0!cGj}WYs~y z2z#+$)D=QhR|K|L-7^S*qm_G#839cf4gu`C+iN2d)y|4t2zqa5>To<$!9ZfGE3E=h z5(MKAoE#mb&kOh%wFD-D(1IsjLk{clXz0+Xse0vp^W?IUWV(9mU4Xc&Iz}d@0pVE zUAmHd^OW!3b^;jU`pr*1{}+FGTHJGpAidYK*CAezoAuZ3JdiuOS_L(aDq0U@JI*cm`ICLYqEX#hkyIifBtzn#trq0k(pWINWlQQXXTcFBhZ30 zpc>+0jFcG?<$!$5?8U6JJERfUJ0CaLiyJU>Xi@lF13^yG6BxiW1zs#>Z%oh>B+7^s z$PxBe`{r@H$U_QnlFbeI2@NQ1V+dLlb@sV?*y3O)IZ&t53k4Pm2*}t#gnRWI%_@h* zDMDj*C2G(DkTZ1~1gU^TlZ>>pbpzH#B8Uw<$5P!V)xCsE53$#8Db2vmy@}5 zCTBqd1s4oJ0<7zsm*INvrsM|TN!4xiBvqv~42+WT=!k<8rO0@9KVLmEMDsec)O=* zBVJSmj2kh5IgP%U6CrgHmlm2w=nJL6KoM89kt9Gd>*yft-8&K?49H~(Y_lZd-g-nI z5IYkYZNl;jcyHMp*lNR|O(XeSTqH@3ecVzqm9XIii95xCGNU*uGC3l+1h9h()m=OjHGnx^z#>)TaPk-Rx=vW9yp>hgt6$q^oh1Q$*h)~+nEHV@W0J7RR za^l|9L3ngQi9-4ui-zk_X^{&>{R865Om+BpSo!LyQDhKX>nF*1F6p;~|1quS}1c4$| z_XuunS;?KGy9<)^-UMN@oG->X@4i32I9`|eG3&Tt*iO@R+&<$=f4BMORsF^57r!a* zZo^mir+M1PDFcQ2_F&Q3zIqPxF7hJ|ZfaMT7v(%-@iIT? zdPLDQrc%{<>D}0!1z3_%)7D}PZEh;$>TNCr-72?C?Oduz${PZ7jffhD{wII($*1pK zUOhRVe)ID9faG?0GwuH9pA1iCy*on-G=-2F#2pG5b=)S&M2;Y_i{=s7ot!bC6(pj-o)Yo~*&LDD zf;4Jt-kWT<*o1U-9s+b^BFO}Xlo1-{6r_bPAUX3k!i*AGf(K+W4D7YzkYEx{nb=@C z>(XeQF$7|!VS`pNF_@7#&=A&YwC8^3a*41a1c1gka8Mrx%9%HpoHHcmP#v>6TWRLK zubnuuGjwD&GQ^P4&JqN>kr;PpP@?LDP%EG#i}%Gfi4_i0a1dtQ7?K$Sb=gKLoA0b@iv}J;-ERjH9h(WEE8S1)X7;3=5v*CQRzr6l< zGi`TcLQ*x*4xu?BHlm&;B4QeWOJut>MM8C7sf#mpMe5+$h4$_xs8irt44jM!d$f=n zII{=~`|56pAl6As=N)KwZ-w@~*Yx}3p@3>YD?xVc7zehKN_I3S7R*@4pi&nF6s(5m zU}VK8n|8&73XI2wfh7qQZy;LL$b%)%wbbrJu<^ElY%tn3Pusl=+0#V~5yG&MO&9JY z&LJ>&Vr5E*Om0L3j@=cM90NfEGekf}10wB?nLts4C;$M|AfT@3?7r}X(tJKCxOnJd zR!~FMr2-goc5BqFcEw7S#JqF~wUDlU6~P3Im=PrbVq=}KBZ%6xq2|!kGm==3Bep=% zy(SnMH+B@%gUc5AXgxU=WLJr%z^yf6@IaHZ~Axy?Pi3&>~_Vh7_6? z>|n{D5t1=r<(T^F5R@I91dza^Ks9noB+YIiJ^5<2|MKm8^MRe;SiTs>IH^%NoxipF z7q4C((xHv_$K&~M?$fAs>F0$IhHbdo?JtJi^7h_JJRRP_5UjO&Ea2oxcCx>^dG_Yl zzoLj7#+0R(p_RGR`0(xW@cvgaT*3nLySkp>7PgTn$qL zBnxPHCk|F;?EqL=*;j-BNS%cY2%~`zh=2+$1N0d%kPZ#hE|5C{%?4LkUU1VMA~$R6 zi5*~QJKFZXhB0GsF^T~wB`|ji+;M$4cmU*(oHzt*4%}H8*(3;dKa|sSbrZV-F1={J zcqDH-i(q5*GkPEfByz+``FvVn*cKyLR|wr1`}tH;&rKU)Mws&Ua4saW2A8e^L|S?e z)~u5PjkT-+;!5WaZnl^qIEpnkb`0d^^$^k}tSt`;v;|4f>+gSq+(8=x50#jE6E?Jn zRe{bdsFC#C+c-&`$;?oxc$@;(L-#Gh;+BIn?EuUOCoxhFk&cCZwK2K@Mi_~myw64{ zmQ#}ralm?Nacg!^+Hxyq-8rK!%u}xm;^e)eiuaYp++uJ>tVUM^ubO2?=UEqNE{Zkx z<8ep;H{*cQX6SJYl7zEy6mdsJjIo;pZ!Q!03|`5|k-&_A2oqvOOTdhvfC;UlGm;}1 z;7HI#BmjV|XC>+krX8gU8|4&q0o$0*9tg-(iPptJBX`(ss1e|blsb}|0wpJ7^oA2b#QCmC1r(^j z*lR#M7X;MaLL^38I+X4(Fbdhyj5%sig@^>*N+2;-GKgtiVG>qQCQ+zPY;z3(szXeK z%~pu_4}AUW-|@}udhv{|wrxJ>i-&r$*DoK=q|Rf|f=H*joMr;;s+NW!Z->igAA5P| zeS7M6=kvTMLv@f?fuCFr&b!U9J8dJJhG9F7DOc%c?dtKzm(z6rtCzn0+F{JYP)c+A zUAsR?7#_ZQ`!GNFnb!I2OJU4hT2GvZi_@FKc0V@DK#et=&-Ufd{_>L_{FC9?W;boi zo8LLa$Iq@e>Egm~I7+!c*7~q$ekAqb*T4Aoo0k$>eD8ANa#+8$`E>aD4#YGE0aI1C zM%`C%f#!wLoFx)~o?9ak7uRAQNM!9A0$YfBcD7KvfD{BcSLrae+%Sgn;DJ zo~`;gAt3UIu|ls#1XD!6z;;VRc;0b1pg0rzsyHE>2{Uo>)Z$Vxn;)_~EP(7{42iY6 z7JxOu08&Lcn07=IU5U1JEr)}wwN1BDFJUv1bUWwMe!JheZx}Fa^JR;nq`OC*20&AT zD3rriN)$_@(-F-ZTDNVY9YpT#F^pChl&y@%ZMO%uk{HJcvm^U%fBfRzYuP(QUuPVS zj1slZ*4Bg*pfeY*reV6FQU&C)-}!PTq~rBK35W1L9%S7JBauAvWcJlSBlIOkpunD$ zJ*BktE>H*I*&s1al)JVHwYX%THxEgzV?x{n2s{}nIPIg0OF=LIa2}A1z_pCgI6x1sobr-b0rwkkP1By;s_x^R{N!DwFhL=Qa|>zCA` z0fn$R;JQ-ET`xQo-kk=n>zg-oE$7o`|0}qPyg-@ z?^fa|Q{Sw%_kZwvg`(`9?4?}peo1*ylUg4E@M?GP)>i|@hr@f%-16nseQ)jSU%n0e z4C;so1gv7SAYHYBd4d|{?W7F`!9d? zKm9ikpFf^ow;_dgupS%$|m97MwzII^CwH*Y)i$({RAXSPoH_=%IBbRp-o%J{2KgaY};+u%5xuWFRu{gc(Bv@oaHJ+anEEW=#OY zt}R@;0`DR9Q?QjM5nkqyDf};)0GIM<@5>;X3ygS%=Nf^2^ z7H!)Cs@%zC}hYso=iW_$=b3Gwb-#A8KT4mwenCNg5!9D`YnFFr$o27L8;`w1jrdjy8H2 z)(4T1tt%x|4|Kp3KmiEsC|xRmPy`W#uO5k_E+WB^HJnr-ya$j4#DzEP(+TT0IoTLp zjYRCc@{Ujitka(3EmCx)6f*!@=S0Z>P+H435#iKozDBRMww%cTLLdi?H)Gk!e)2L! zN|+LJGR#g;2{Lj36z~nOg*hSx^l$~*dsG6XfM9V*Xo%5F98H0lFgXltn}bNr0suaD zXcy=XB3`TK(jjwZf7rZ?Lti_1a_Zfb2@?R};Bu)OqYI#>lmQ4`9ic;8+cu8JfB4j>xMMT~el zx93;)^V-<^?r_+ugV^ZffPFd~_j2X+aX6lQz8rVA8^`_TD(W`I}$KZusDz{i~~g_Rs29KYsPAyIOW^ zt$R$8Qn=*Qwgq#`;A<)j#6+%OAcK@1K)_AQZkN~ERRPcg(X;gxJWC)6#A%1$`JET< z?-4KW9zO5OMwYl74!iGsO!9^<5R#mj3WFHCK#H6g#=2pz^WoF~<^TF;|L=Fj`5D2U z9U(GhHYY?%1p`DiWB`ApNXAoemCZmBqNB45L%qaspq%h=%Y`8vi9LJOauVU60OB@S$aPkX;J-c8%m6%`vW*0ra| zouWO=Nl-7dN21hoW+}xmxt)jIH9#|>+{5nAb=xqkLxns547#=;G>{#1#X3%hKHtgw zrvD>4yv7Vp2RNn`Cwrw>ePID)1l}2!atci7am_VTsiGJsT5m9Sb<1xt39IHZ078>(UfpNN8OF z4UFBu5c(zHn)+h|SQdv-_yQg1bUd8$I6S7b=L|_$ieNIv99+;EU}8TzhuH*VWFFRC zu1Q~k8~|1T!iey$v1j&h2Np6nLNr4XA{6Kh0N^uIQX;BqGI$GwEfV=qtXl6F%mj`+ zqSOfKo3S=G2gEu%Qy8FIcmYUADIsYHxeox{EK)1vTN=&~2%fz+LXDEboZyUj<*cD& z0>ZpH?1(C{H$=7#($G7DuGB%nU5=oSln09{l#BwWAf>EMb8bqO~Dnhtw(g-83<-Q#6G zJbmxu569!~$;?lP|$nF9LluW1&!z!X*<#W0l=r5C*zY7 zI<@}yzKrm^wMW;K+x@%5!|7&v{@(Y8;c)-e!}jp?{bg$yuCQ{9ivDZwzuzo{+I9n=(m~JfZ9S|{>`6XUSS8|bQ^aMC7+)B(|_^g zzxYnH{?(uTNliEstspzl?lBHx)Hx?7HNhc7f!o8(MY)KZyJ>g9qU%fyNJ9pP7Dk9^ zw~zB>z!b22_sP}E=f~ms_4&u2zpH!9miBUd|NG@TH}RXlhMQ-cE0mj#B=`t&6K0*s zqpMG^e(?wY_W$vvf!wA{IZTGqohDB)lk5@&CPqX`$(IZ4Ml1)61j&NUgP1u*1CnTS z;1v6jqd{L`dPdxx2HYN?96=inBl3(s@aViGC-r@f3PBxri0g_;kjO^>8Yv*gN}ciD z8B_5_P7=^$DOy`d#s)%f;NCz034InN6(nR1nxH!Z zQ|3?(n3AXuIW!Twu98B%E}W*2wRD0JX#@2Yfg>DoK(f9po^tYqB7mWZ&kvy<>&#=P0ml9A?c>=15fH!QKf_d_!a>H#t?~-rDGbx47gwcY#e$QQ^X31rKutpWE-?<7<6)Q zM`F+j0Es|$zj8%SMwr6-0P@%_Y1{{!Aq8V*h^C03Z3|}C2qKRd10Yr(_q?hNL#{n? z4h2gQroEhob>`Hi4ca3Rs^1$X84@A7ZAOelE9JD+4mqMar%(qc#x+37jZ6m{CQ3u$ zkp?m3AW=pG4njmxaCJy%jo6^gjv3gczwNRY(+GAC0s;!+nbDm0=npPC>_Ng|BO;fInoW83KK zS32&=^Xs?E{rPS>K0mORnhHd8ulm)Cm+Nm{Yqfr^r~N_7@bZV> zKRkcBe*KGOJ%9Q2gOZ|^Bn^WkB4S1qE(y|dIDB{*q}*IT+1}%HziW}xS4#ZpuYdFU zvri?>H{baur)TdydG^2K_Q~?*r|&=i9#hs8 zIlFCUX<#&GkBw7}gxFJeq(spb!I6Oiwazi_qFZfB7+MlQZ4OeGXHUz^@1LGLd1~vU z-ghdKG#}r4did=R(|EQHEH!8sr2`(YpI~%AHZ=3YeVotV8$P$zW zN{QVl0p=m;>OszqSZrCP7*GOpX&q9IFc1jJ93H@ED-t*f;l+6pMO5;%FtDK!AY%z4 z=N5JZQV0MLTq?@|O2{5o#Q-1!P+)bQ$Py)TpBYgHz(&m2dx~ma4miJxkU&Op=nRF! z5mrOHw+3hqd4Wc55DYe)^7hKhlc=5S4Erm7SRe`(0)GrSsUr5^Aq*X$5S~eL>nnLv zB1)ZLK<(Jr$`#hv>@C0`5?KbADW%>bVW*K{wg#R=+`FJFg&~wfv_(~>v~6uA*yfBh z4{nW!p{?1?eKY0+Yy%X%0M{iZ%sXKMe6<>eck+n!uJOy+6`Wd>n9gk>OWeyYceDPm zP9tjghB~H6NY>Yv?8#0iSndS~h!xSpfigrzV8%q5r|ieW0Za=JqG?LL?IW*Y5j>$Z zKm*$4&{oc{I_w5ISMP&F>(+rJNYNdG0TcORfXE39IERKaPM)jz4y@%&ojF$`Y6(_{ z5yBmT0@-Q9NGVi{?^{~b+L>kQA;@6ul8~ThK!C@)M=94TbJK!>Y-9<+LZ$YZDF=ja z9a2;RbRZ!MGZ6BI!ivV`F+5iK+QQY+0AMfZOJRT!y#Ng1RUSPO#D>M=)Kt?1YHyu)L3yyne9-0Ck z6bJH#Y$PP1Zf_tCtQU}N>qr!7tG%P9&{`Z*!n;}$T*%NIFvQfX14cBC!R~t@)zUJ7 zGL75nyHUD>Ri%un1h`@rHW6t~h{?&_bJ?jH4)L6zR#37om zQ|8*wDYo_DvcCE9*US6}Wx}>_8eJRjhGCdWE!{WwN;u^``B?z5&6f6i>|p0N$8Y~$ zn?GOPU0locvzNN+?YD29y#KP^{k*S^HtWNyAN!Ck3~Mw}10jfBQ#2 zF6riGdPd25pQDY)plyHmI4|mi>`sgmdF=?4SgkU803(T^_h1A-&|yE-^Q^7Okg{a) z$8SB~f9w6*t6P2d=fAp~iD8oi4ZEw;ixJ*_MaNTy@HCM+;A~~boT4;ES>D|J`~Uj) zzy7QowT%IiPpw~eV=e_KP-%qCm{u=Bi&`dBCJ2iz=osiJVSRui4!1BcXvN%PQ^x@< za1Bg75IpS=!Lv%J;{f$8(oMjKX+@{l?~nsq4wfkHE~qnL26WIBAO!|u3kcp{0WM$| zK+Yw6_14M03L>Hf%OO_Bm;(o+wZMeSz*RGw0{oI_K=vo%<2{=L^blTl))dZro1-lub2?Zz`C;%tI*pby^k<)F- z!}&e1jOkJ92lpmTm?BTm%4U0JZMm zhzY1UIY0&gNw%tEL3bcYN`zRtYSiAGtvjH1$Qj6@<1i?u-Y~XMo^c||16qL{k{Cck zeulVsQg$|Aj!U2bx|I0B%_Rd{ak#BPsy+&QpMc|YJV9Hv5L=&3dy zj{L2%C(w0m^-^Em&799)escHv?)>RnH4a5sx{MTVd7nlaFi>-AvrQ$2n}d4}SQAC)ay@_vOPIeyl$2A?I@Z-~)$hcae^R z?~?PRs?3ejNMkb@w#W9f|M9>5tDg>&>Qu~mhxL*NmYk5-gp>B1GK4@UWD*w-gxGwu zVD%!x0|5nGk*uUg=!y#>Bcd|0ri66~IZ(L(KMQ>oSpgvAfQ|x9V~;pf+5sa`cyBGK zv;dQkiZMk{bmQHCQh++rW<4+uV$JFWNH7vmU^n*M!60i`0tiu6TYb#DI=F@$f=kqU zX2LW=L)aRE0*>4kN)^h>FlSXQ2wDh7xkB|&R|%#wtnhBg^?^!P|TNwHy&NB|1czL-*X!(L|v zK$o$s=Qm?|KKFaQR5f!>+RS}1Kw2MqK0tpo**Cp+*^Dv+co)2yK{?4g;OnC>$+{ zxkW%InFv!v1={mKkVdDXav{!+LC6ss83L0NFjDjd@CC#ILf{2sb%scQo+X;`fZ6~Z zz|op!4ns_Y&BA$;fz_O&K6Ju{E(9oJLfWZoP>U5{$6=Q1rD_TptOo3F5;UhAZ6ceV~2>@ehyVHIjF%~E0{_yTINI-91fBoj}_1E{Gzk7W5uC8H%;<6jAlRQ~2 zUp}l`cEw%@$-H?PG6B_1TP;`b=gjt1-Msfqr|D$9Hh9l{Isf=49#ffa(w+`{HC>N= zxx2h+Z$5wX#pje34Zy%VW=} zIF2CCJ}e)-2M@pI9mYN@7A%YLz&z5>L!v5t`5*uL|Kaz)hCU@VD!gag3IeLv)Ar^oW!-mCe6LeQ5p%y(` zHV7aY$Yuxw@rV-U+7>c~aRhY3OkShxAQ%yy_pn|dJdO$N6g_crZ=JG$bwFbRXER1? zOwb7-;x1&w0j+ApL29Ku0=8D2yaiaKgxftZ6NusjQDG=(J%a}|js}@1a`cKGzRizk zHO>^=Dr&3)BNiGnJh(#|gn=nXotFxFEZB;ypj(T!A-OdeQ?j+C^RgT04mpb{SnFYn z>2~gn#az(xbS&Hby!JRUPsH2W(w?#=#{hR6XSvf3GBAPu(?z96IKEAZJBoDo_RXBGD@Ax3zKD3pUY5U`## z?C3VDGqF+i$UB;%w;}4qLYR1{9R%G0Q$?WO1F~4uq2^UM^|Sj945Yn9VIMS>R567! zgCVJoqkAIjPj1Iy+9VH>B|(p2BnU{#BIGksarZzD>`VekP0lPSNibQxe$ZTX7 z9GgdGVB;a-5{AeuEj$zA5MV?oUJ(F*$&my+pHm7bK36P^& zHzRU)fez{n-i#_Go`Sui=MLQWV6HU~{eOt1#5ZWH*OXQu8> znEXaXUu5ojqeJb;&=f{Kix3MjjXO~xDL1QzaT z8$L)+KS(dG^65ZQdtVdO68Cd;)bsQ<%j0=Gb=W`s>Q3|Z@YOGV`uBhE>(9@1%BQyv z=al4he0KHnSzF$|dHuSn6LX6Yg+~YkKN{P_NV{cw#TdEe-uRr~|KYR&!`qqzrl(VLxUZ3`GDE(PF)T@W(?yvs8|MuOxceX*VW2(kO-D$rb zHnFVCp@Z9@+tASGcdyxV%Bdu9Vzd;*(ikfQZihB@3+$QR^MG@y5__hIR!JB?FJk|dw%z`AOH9N=bv7dbl7Gd zGEpdbO;|R(89ZUnls%fXGo~E~2M|>wV?d#?23>)8I50ApQr|oiNQ$lUu4(|Mgl%&V zq6-d(&VpkAdY)1&yfvbhH=C&(5{L|;^9~lpn5AP z4Yea$KfI2LICH0Mjm|AqRZ!~72Kp7m2k*q}@XhLtw2A&-v zlXL(G7lIV90SyEX1{1;-)xm|^Vv;#!B7|J{d=KK>5=Qk9To%$1vY9%-MiBv=P}?}- z_6~ww39EWg+RP#u35Ed&C8h?%9e1ZxLN1HvscUDX5N9&o`Y`O=tOneln{}dLu#|dp zhdvBEJ%2Xlqv_j(SF|hac?dwgU$+h_8aaz$H=cW+hFGm`Yox@U+4^ou<8_*NiF7K1 zDS`q1*m}*254(yUU}=_ske(5P-(W(i{K)ysA&CuicplOal_J zlhr7N`lWA@I1iMRorn-43b-bZ6^#rXYEQzQ8{vSZGhCh60@ejmCL>uJWcISh`Y!gj z;5DQY9Rn>?kh-QL(*-QPf%u?VqyW%p9F&Q=Ko}-x$MtN&Q3aX;n!8q1=&;!~pg4!E zo_aU7NTe9tgCk@bYT82`?Dkro?1tTmPQDvIhx$mLyi%R|)q6`j&ga*%V4d1Hj`r&> zmvXOtc=O9o{_-#HKEG>_j_14k{nhU2?Mr0X=2vgOdZn8M;J^flB$;W#jO}r*+;({w zch`=oc8$4OO(>o7({#x9fBhThhmLJDG)5D z&gBclT|x+wuVry;8cAhzxD=F3l>UjG*FKfK(3_Sw&V{N8tdM3CK=@~zu6mig~K zefR6X{nbxjcW*7qju9MB(^RBF9OP;$3&f#9KAdNtzgiy81ViE;TW_g~feS!A*8p}L zxVSZph~N~0#-RHftTW*>-Nwi7AD({rqFnjIPcK@oGNzm#ak$M-2Yq~%$AXg}50sMA zLR@mehV<}w_doyN{@}~65nA5~8+4M95DPcSDYBDoAUlb(Q^rVQPSg=7c9Zng*CU?H zyL$3SQ?}J|LUc3-8KYN9#X%uSgnMM%TBJZi8!&nx73d1!I7(3R=HPS4fG`j&VUMMSH?YCnpf&(y3v1?Np^S;6 zCqrdolqsU3Z3(5>@EZg}!op4!Ueu!zpUZZypO4FX!b7;Zc&M(Hr zQb`zS!P#QlEUBk5>aw-%j&>!(td+Oscv6yf{Upo%4r9A-t+fpi1X9}?cSY>`u|&>* zE)nOgN|Lo%;5r~U4MlP)JY`7|x-C3hQ9V~9Hq{{&Igu?ii9=}OLv)A`%V%xeOmai^PukyS)hZPBdfl;i0O{rbxY4kSk348bwHKCUHGgC z5D*k%0E`psLtsPo4NL=b(XOQ>kJ{6Ih~}A*z!(T|#1X+rZVR1W$j)}KaQ~!y7TUY5 z?%n3yZq-LmQ%hG+E(nOTJzkD)KKbnYsIQiKHxC1kRqgrh&6D>(0@&uq$Ji7i4+r0f z*cp1SZ5?ku><{m}1C3J}cz=ABu8-@x`^)Pu_xtyD``hCOALHXgDOdaFS63hZmeo&# zmU4ZXfBE`1|M2OiphO;#5dc%DLN#hZg=H5ADad&kd|CS1(l~0b=KC&}t$lg(-g{~K z?YFP~_V51m|1*x0bG`oT@bcO1yI+3&_Lpze&?)bk%UF)OUhR%#8>|&~7XT#g;+-1K zZ}09L5~bcA2bL~|#Ly!m*vW9k&VpVwP)cF0=Kx#+QyP4a@bZK5EQ`MS#pU5FlxZN* zHa)+FiSUcJaQ#Fw8U{i4$Z1TTqA&6H|HJ?Dum7@MYCH!spd>;`dABQ*q^KmhGZ49C zA(IY90!Yc7sNLIm3yY&w(h@m1+-SgU0Zfp{VM93~G^z-rI1cC?fdCVhOZdpN0W;VD z$*~e=un5EgXlNUhYjA}v01XhJ1Ty(IFLV-$=5Ew2jKCF}aa4#(u*aMU2e^038&wWr zAPUM9Eok*3ST~CW;OO}*aSYo4z}G-&B!rfO%0J#FQUfcP&`q5Hq3wTf4P3Tzx2?}l(Zaf+QT`xFm;{=ZN@2py@xTHZQSP6!=cGw+hJeshkbs~HW*he z3}A{ftaYBIDIRQF)+sVzEQT@->#`xB6L*!Ht1*$}ymvvII}g+&Byp+BCKTRP#Nt5~%xHn5b1#4)UI73?Bnh-yLn;}%h6NIYjO-m6vRq!Fkb384wf4@0 zVOl-PDcXZ(fK3&B+@MZqB!HDL8z^f+Wb|5I3e~3CW_dTwhM3)ADGlzU@4Rh zaEwUU@5uJNJT^skflj@9z=(Qj6%-MfQV(4kkEikQ2OMOYm)n6 zS?&I8ZQgK--rLs8>6pabx!W6Ry7Vl^(`@=6H($fbSHmzY&+@wVno1JR%bPE1Y!~OG@`(Xsp>4T5&zWn*upZ{hWpOjlk!=aqY{OeB+FFxLX z`v%u9wy$R!;o;Z+$?gt0?dLwz<2GW1-sk z{^8v+fAanh{?&)OfA;I2{P~+VZ#i^7q%A*Y1WzH(>)OJVbQ`AK?d>R@{PK`blVXHI zYq&nXS!8e|Q(eLQ+B#Lac{PNHKyZ`aOdwgtCvKN*V$e3)c za0mnzF2N-sMYh<$G7S!B-6>oPkaIZFN_BJ*>Wu;--C)0PPMsD`6M7Ad2t)#i4g?eq z9Nq-T0t#UONg$$RHza9b9WDw9q`mHNbYRXY{828ObA>Ws^zevn3m1%v9l#R!<^~7{ z^w|Z$%w%;GrGVZc5JEvV)C}fY2s*jFV_-`JRRh7xb>a)=f!Hxx*c8gTX&NB-5J&>D<;cMD&jF;Q4o;^LhJ9u<)Ru#mbZ*Lisi zMzFTdT|1=5P^JLxl8N2O6S9SYqvw9y6;p2&7hO^x!nuc01UmWz1}XPn>V^ zaG_6074h*7!?!&F$6p@QV+gP%z+te6&)ES_ZAV5 z$4J5HzC_z{o(6_!8EoV=C2(uo!x!~8fAiIszg*WP2;^``yTi@xdpD=s z!!VT;`|Ia&eG>7@&GaFLocF$iLdYdh^NO{n;=7_}~5YAN}d;^OsjIzvFuLlyjj;1OtODz_+9j@y)~w zBKpU!M8FfCvC?c{^;uCYi#fMaKb#GLHAjsgjl2e_E&%R2mke7Kb&zuyy2K8 zDT%soQj$=TXecSGx{R#GJYw&ivYX)sWEB-%)fpoQsYXef7}~`XL+*sd4Wp}*7$;jV z*t>%wf+vK`#Ol%ljkIDU2uGe>6!8FiLL61HQHNMVawxd~Bm(rP6?F&EA$1>4kuXZL z446E`BZ4==`9iy0DI*{O2aF>Tq6~--dB9-=WZI1`%+;v{V^Ho92{n-16-f=+>xhB~ zm=Y2&59EQ&0YjL#$YcYdp#^Ll3?Sg^1qngKt-2g3R^WzdWM&HFvIoJ)8XA(a=**Ck zAoQM-*g3j|5-1=D0%H#o@FLRJsH<&8S*&0BFbQY{l2RtdNYEtsJYU)d2$(%`LcLqg zk7rTDeB7m^sv=k3qpQVmKqiE=+m*6o0_`=TwE%bMd7Kj0>~T0?DLf8FSvVn46*4_s zZ4n77CKV253t(ge_rS-F91Q{Pnl}$XaSVgiJnszvG`j&N;J%<$jpW!viY<2*1rV~g z$bx<4KmcLjW)QSf2h7fykJ9O@C#1<@0<&QZW-(+Q);RvA|c z+0=K;Men1{*>OJvUp-4##zW)6LK!6?R3t(sfE;e-6bv3EfFTmNgCam8*FZquVhfKP zksJpQc1fOZIFvXeBG4EyAqGezFeG3GfJD>@cZfSI1|1<4-d_p# z8$sJ52zWp?$!yIHrHKZG8HR2Y$?DuAVEXq*a(#n?FQ5Iq)s@N^wou~q;wq2( zv`=>b4|jk6>HSyp{paibooYMO`EmE;$v%yUP>{}R_g=v>NW!%dAO}$aFfe4Vpmoc; zL4c)ho?_TZKpf@z%YXRG`|T(1z5LdT!?7+E>y{2F?b67ZbknFz#|u(dWcI*aDdQM2 z9#WWG|IWAfF9y0hU$z8rDc9q4bCnM_zHZi?16&4R2Q;0RzML~SP{6kCGXC&;yKg<8 z4!3XHtGh7e!|<^9{_6SdM;{PArYbO<7~Rv9`i4np*spKi{_%hNZ+`X#pcw(0p!M?Hz zE^9cskh?bQhCAAtHzkY2Akl&qw3`Uxf^LLPZlDC(bYjiK*cct6M-tG-u#Sy@A+&{8 zK>x<#6chxAB%}=}06ahtlt8d~8%iX`b|D@)bsCTf!aG`bHuTK^85>gRScBNsMp|og zG-@2~P=_*%AUQWKRh6Mpl2{irjVvZi-eo^{YY67siqLB$B!!jcs;Y|z5o&LQ0di== z`%j);joo6a=fDWjsVP2%n~5m?&p~>7bpk7@(RIe)Bd{ z2Em~S>~|2|k^&=g!jv>3!VnX>BXo6B0HZy?#gQR_GJ!6T3YbxB9^5x4GSZD%%)%Ax zbTnkToJ|d_VY}nHno}TPA__t15u>4LAVdlR5*db!gkEka0H}i`!x`|{{Bi5(krdGr zg@-m5PAP&x&atjgsu({DItc#NZf$} z6LKJF8z@Az zY+|a8wuHDMnVBZ?l;rlM8>PC!{+h=`2}?MHdAQY5K@~|&-4)#s*WLv9IXsW2_nESD$>jwj}P_TwTOPk4;266Z_TzAJkdaNR5vw$%uzEunQW8V3lC+Lt<8v^u=} z==8nA_2l<=ca}mVZRdw=KCh2&q9imiwXU0kqQ}-dbE%totLV#(#FO{;dz$Chm+i~5 z1Tq^X7(V_u-R}MF6F6i{*&v10&MA)L(%{$s@!$OUU-Z^Zog+a5_MnY;=wAz!2;k438iga05o)ItoO~4oC|_Yl@;niIGW(E^irnz&0yArS2in8+mrW7-=!<cK zMUsbV1Shn_IiW}G7%B6B`(A5y4bJR5QXGKwL9b6`dZ>htV`)mmi|v66Edmw}yg zmGK*Qq#!fmW(koQ;tALgK;#Gx;RX>w0Tc+1ijEo3f|*D#2xJ6GL<(7uj{qDlo{+v- z-3S2(7c|%q13}2Y@vE>m)I}LCUP2^burHntl>@dtFJ{Y z@!-q3)kcOQ0b%5pvN4b#vv%kZi360a2WC=(Zq%wx8k7U(0I*FRFnV}3P&7cs(XbHQ zqBi%6#Gc0(oL9xA^0{`-VNM`hiqsx)C-rewkKUT4H+_34ABrJvID2AFPof=ds^u`9 zb|-)JO3**}ogaPu^S>IV17KX*_5$vd|7})80`#DGCq)ZHo#LBlA$c^}Va7rw@|R!%y#LW?OS?y*xSWfA}rX zugw(GjuTUFKm_}}$<4c8|Ht3|Z+>;@G7Mv$a6gSCjFOXgtARw>Es{t^(%yrthf_E> zc%@Vjl)L(VA7e%lkO<-kAl8_!$ph9c)S^9xc|^0Qv|TW|v^Nxpw3%LT-UU`%A3bG6 zM&8jFXo9u*;|A{(L&*u_jO+j&GRM$t7-JeS1ak7tVXJ^UQKr=#chM_elC3K>#lYA) z_NLxVc8*|a;`V4h1cedMe2EOu8d0z}K=ZDVh(JL&M4-9VI~a3x0W)wycR+MH5>4O@ zP?Doz3CiBt2;4RgR}u(-wz(}RiK7dEp}RFG10sRA2ap3qht96r5+Kr9Z2$t|s@|)q zHSX57@GMFw(v8T4AwftY2atq>ktS#t{Jw>O@Ty@t!S;1Y)Zh?E8X2NGgZp5; zsjI0%pe6u}fRfG^k7G-d#z5E`7gaPxQ*53zO+(fD>Yf5zj1mQ4P`g-NYsa0NBVnWg zJ8AEr&N)Ng*Y047=@3+V$`PrH*-k=9Rph65_#u!a=ke3-2<$V6M1!#=;T)2 z7tu}K!Ur6MGJ0~EQFn+k#gqV15NUk`jqb_T8X^G>iQQA3mA2-`DeVvLz>CYeiPZwN zTzWxwQn!q{`KjBP#7Y6K%cI!py}q7B$nJ6K!2 z5D5u{)rv@$#~yWo`LdiBjeJ?}F{2P8pfi+Ij?~|~&Nl-`pcAO^7hl%q{U|X_H>XKH z{OE(FO1Yiy~WH3l+<02?w z&0XE}3_v#RGYIzutdpK2B2oe@04b9JWoQ*>B4Dxr3r|H%v~SjGY!|8$ywIwM3b2Kl z8PIxXgLDW;Ljb#Nkc#sWf*Fv~6Ip{~0i}r9djst-pkj|fFKwpUQ&2N<6L*5B;ewfRiI7k8m+t0X#|B(?S>-=`2w+J0TeD zICB;^7_f({!I05ruO@PCtWRhp%&gbP@`DA#|mRK0Ex~i6q3{Ns$@&TvKvZ5 zBxOnAM($)S0?nHnaHuf=_uyT`BglXh0fGT$XpF!Bu%ZXZBXB|pD2ze?Oa#mW5Jn7$ z8zKVVe>y zFsym!5hH5o;%e>*&Sx+oEa(gLgv!y+lnq+k}I z&P`w@R9R*>%iTPYY_s$^O3q#hQ8^U`94L=_ASVma9>W-kv>M;N^UId-f|)vMQ!)+e zj<`u{=Em4-j9VS&H~pe{!v zl16yX&#vU~^zPLolkfJo*H531Lq?ZZ58L|szD!_L3PCcxE`ks1FbF~-?sct8n=Ws@ zXrKQ>Ir)_N`G?03zW>3C_pT+CjWL~$>FUTswm?_f0&_lM9y3y*GzonB<@n-u+?UV& z^H&fkASa z7{c8A;*N+GW}9z8OO4eStA#+D85n)VhM+6bg~-TNfv`R(73evrLuFJ09Z?&#j$4J^ zSw`p)+8C=Mpkj2g09fwBiF8E=u+B-yE(oS7aGq^=X4)Co=%~}+)YK?6g^L^6Sn#sN zx;O%61_Y#laqkVIQ5eDIp4@wbYT7&YCDg)0tp~V6a;V_h0Vz+Iu?KRVAOVjK1H;@^ z)YO-*El@f0K<{Sk7FE}%YnifD7p&dZFqoUxZDvD=Vq0LA0CaFCN@>_$y`}6p4ZbUb zc)d4O8LdrMhY6tr6q4HPY^J6)fVelv<0SL_+M(nA5Yv#-FzusYD!V-r*my(QA+s{W z(l8GQOMdwg9n=0t|C+6VUeHI61sf6@V|6q@i(!&)k|QXE=HOz)C;)WuFx9myKx-E4 zuqaa)2ZRInF6NEunJqOjUv*WEw%De%QNUI)db3)|!mF;7GN-Kl;(6)-QmtV~aT5;r zMzPBH=wqW)JtAn@?}nnoh{F*RE06mWMo=glc?|$G#~>ubAPPii;oT|R3=Jbz)CF*e z$l>ThK?k5AxL`T}?+pT&f=FdVIg(^2i2$H#o+By}vlrw*dP<O{_6E>L_OVpRBoP3FZTCuKY#V}e|Wr9VPcZQ z?n=6rfA#j^;ck{OVaWUd+V0vr`|2+r+Gl@}_Q$J_U%vc!_`&ad`*)t6rfG8R)@wJ1 z=v0z%SUdN&jAzRXWgeSToxrILw(h5?7%@#^uj zpZ!n&m;Z2Iv9+eUcx0_BE|!^zn5YeW^0b4ho+psJL4u}H6}VF#S%L|JG@`k5YEJ%$ zu0RMG2{GKA6um_Wjkckz5Fh$UnQh`2$2a@5q!x+HM0M(sQJv39-7!w(2BSb}5vD|n$ zq~#vBOXmZ7!>vJMftgc;3i+(_Bit)GTJIQ!h)7Hjl-LD5JaWL&!_^W{L<=fXzSoa)E#z&jz;P&NPC{p zg0<SpV@;btQO1``W1 z6PE~agd9ecLUP!nn_vR-N8>~RS}lT&T#yW3RjKfM0u$6U_!^68tO{rug`)AixQ)A8WQ`>Q7?u&6t-&2;|itbSgm*Qm6&^{!k4=$|Xj>y}Eib9CLa75U+mxDAPVKpB(Z0!S8+d zxBs*6eE;QbPVCjKYGZfsAr&XukE1YVp1<>Qyg3fj=}AQUE6>9gMahY{fI6RkpKYJtLv*NM+T>+zO~*KU1w!$Gz4O@=p@ip6wp>E zLkz`)q!XCfydon`0z(dDAcqJ{98B(vV7y{LjVMtW7@Y+%TqGo;Ts#i|5x~Ykx)2Ux z4}g2H=H}s>BN0TTTXcq~90*Bh3+e#Gp%`waLuf?<=nIs6P!8L>W3JMe7Dlh_%;}BwUeoZK_a8DL8;gBMKon z$f1;+#7S&fW3?ulf)G2I5H%9%Dqc5q@~st4EE!OEZG$aWS9$+r_k09xpzDJW?UU3? zPmmPJ*9|8z*i4R0C@E1cJcK1E+r`m60L;O3H$~3Js9(2p*sEXqyA_fm5)(0qwAl?o zf1}M8@+JTfa<$|OxgOOlB zzyyJiGCGAt02oSuhc{5icp&Jc8vq0u0s|V^SVWK<`2Y}sL-5JM2`)}MMUD`X9*zh# zoI+c~j3I!XumV;HL?}Z01E7HyN(7sVxuk+D88D`an>$C!0}p!{a)%6tI8IV>5bG#m zX)#|hwB#P(?$|dAMK_pAKw!8az|Iks3gh4i7#)bZt9yjU5CBoFYlTFK6=+P$3ck2C z@a7%RJ0wSA#$XSaGBgGCHet1j!`SwzpWPC`)lGWw-tOf-IAya4L}N-suuCm!A8Ma8 zu4(#C``}-0-~XNAN56IY7q|Nl*ZRd@efhWl?&p8>SD*d)&;IT|{DXNmoNu0#4?q6+ z`sGm=g6ZvNKi`^PfBT~+zx%J!!C(FTkH7laFX!som9YuQ%MZUtTjX@e?9Z>?KaE$y zJRF|ypMAiz%arqY-0ub&=If8YdpPX3i>`{^n!EFEfMGX{Il?m(lETam1*~(HH04;j zfjXom+C>*m#UorFkyz;T`WJsx&ufmLgwwdE%-b3R;sCs_Ite^a)Af^6Y7W!Q@wgnG z#o-0ygn$2&cW?gwkH7rWU&Z?H-uKdXfA{4Ne(>I&TUFa1ZzzHR5~V{bZYg?~oNu0v zPY*W@x4R2=0fVtY&~)6t{~XQmaD;pW5hM!M9(@0^Klxw&U$5T2eTQw!C_s{@>~$U} zq$Jz#cqrwNPeT?IuS;|f2{SiJy*Ut|3z#vHr-Awgsh|e+7OjIikYJ3sXc)qH#J0pf zMF)fi;J_0>LffR*SUYL~^biNSFmsT*R6?NG04H{po&Zx|^L9ZsGEy-#P~adS>j4lJ zm=F;FFU|>i$EH3%=w?0t-um^VV z2ElBIkqKH0>gWpq1W%BNbHeCG6dKME9et~+TjT;9&f?zD!|onoZs-8gQ8&;_FcRHh zybFN9OzILI-8Y5Htl?4Tw(j?NDn^h6wJ8?iXf(BW78#q>)KnL zwIOT|PJ%^YnY+^pon42UBej~#Xso-dmyEpXMv1rcf|S%}e=xh(ST8c+_+&RdJq*+d z8Op9;4s1X}WER?FpK%E2XNUoP4PY0GU}bkPB6n0~hTajXDH>}y2e<=7DyE>?ypCwI zQ2_`@3cdgnCC;(BTmTmWin@gZK{ARG7Q}7|9B?!q_L~q8!lun&6K+lwJE}NqhRzNI}BH$B+YJX97ZSB#H<(iZwU^PVOe;0s{ho8)9GkvT;x!V_3)| zG#AhfoqWi8S;LhH=h}m`0i#<;3b(c9rr*aOdepov3}DN$Ap5-1IW@I>!accXzt<8LR;O!Vodg~CKlQ( zI)!XRDK{9b?vLxk-uAk!VNBHczOqmX6U%y)4)i3|--~Zw_56i5| z3FoZ5mqGUVc=PP#?f0JN5|?*%{_5SU$NLxG{_gGfe;}v+#h?AzXTSJrnOpbKX-z|Z z_D_D4pOyC6yR^R!O!sd;b;+FM!{7eTrYk|M(`l@Y;FGxj{5RkF{=d9^dV2t@KvTc& ztM)oC4N!DGgGL({;wQ1^H<77ZpoB)i8_P$efJzt@p?OM(ErtWwMgYJX_-KNY7(1wv1eFh($D{X5CgU;3j8ba2P!QC(l8zQj6 zfWA2qdkWm(;o|uq@6KQVMWc(A9dBXChD`viE0fo=#flKv8Ny@kUJ=$BSLctxGYfy_ax?)6JhGfjQA4l)*Q!$ zxD6Jb8_C7#(Rj3y&6Cg;#$EL-o&FGi6 zj8ociJ>OIH`*^+E<>OE&k#%g*>2$)4z$VB0>?u(ZBEbUUVGF9UOb#mu$aJNSC4!tG z)DZz3oyiw4F`1AnhK5fh4RG>s0g5Ejx-MG`#}+Zj<`x(XG*a7wy`e-`AZWxnCX9jL zvE>`pIdx_Uq_JrQG}p{CwW1|jKp2lB=(<=QbxC8?jlzNmT_`nh&pNk0Q0}eM^(1AN zhY3=yc@o0OWn&6r30(n7Kp@P{w~6M}TJ%PLu6NqY zB44gG`Xa$U5QsypGV8S{@BvQt;_3jX}g@YrgVyGbkr=$)UgP5jl9h4Lns%`|mW-u@qz>TCNi4X8+u;o7^LqAB%h;2}g~26V{{jE_Uyc98 ze?9#3=kna6e$U^1%isNa{=472|IPgU_vgd0MkUBY;WTb8pM3Uo|9p3G8JChx_5O6X zzj<->)8A8i`0n5RFTePU-*^z_4GOLSFb=!tFZ+5@5+9SrSUIhHxcTby{hxl7$70LU zVaWx{@N9nnrlz=f`4hT7=GE1kG%6S|)a_@_U_=}@OsPJcwYo$$oee1h4O~yPx88y4 zc`-*XmJ(cReLlz&9p488uKF4m+ns==3WID`Y|`;28#qJitHQ z+R@O>s}Y5@pbZ8%M*!05P*)J-5(ezLL_0!&qob2?Ku2GyRW)rO1mNHV7?3DrMM{8( z5hR?c(3D}rNa#?22U#n`EY4CpxiKqyws!8&m7umo)j$DDp?(P78v*s^LS%JadtJ-` zXKl^6on}yp28^tl2C*TNVOYQ*A=cyAhoKM@Y^$+r5RAK{>e}Pnn;9tOAnwqC6t{zK zZ)Dg%*=-jD+FSsJgg8=N9P;2jVm(t=)!W28Jl~EJ6lg4fwvZBlWOaxs1A~%K4FVXb z1p@_zij*i@B8#TvoKS!a5~*}{MGa}KNAhWsuqg+oiL!%i!e>uoqYa=!+L9}NG)AVV zkUmipdASUCHrAhDXHb&dcaCdxq6*Qk~QGlxuy!dH-GD3T^g z&>0!P5J$ic0vklfWX>(3V;sRN_|Z%}jsZ^5ESh-@Jva%1!x{}YERv{<-Vu?3$a+}EWfivN}-O)r2{nap|T*T4rvDrVU&0#*#jw2 z!?HtP4R)@93UFE}BhnEVz>6yo%ymi5#WnQgSkJt)2*c$F%yO<=IGPqY!)7Bxc9~$j zDUEG>D%%(G^M8^4>`(F+&m?}ZAAWWCo4>mM#n<{~J-+4BxgL#OO(Ox0eLn8S&F7zg zw!6OAjS|WaKfHbX@b%5hFJAu9zcRRg^}qc255Ij#RzNPsaT^9@oGxB`PUC3DwRL;) z`R`{b)-};EY_}{Y5m+B@*N2B*Ql{c#r0MAf)_WTrBcVS8clFKPFaO8?>Hqls>0CJi z`W#xZ(KP-B~oARJ__fZfNd^rlM?Y)60suruQVvQM2`Ljm zPLACSu?$Hn!O7POx~{9|#myA}8|HNlgJzN`ArQ0{X&M9xP=+BD>`ocN5D0Y@AmVLi zVz!hARg;qf5^d&6n+mYaGNfsudl>>oUuUo9gPKwAMAk^X&D6VBXH(_8y}sO(ZOU1M ztPC`5ED@&Gz#A;ejA;%E3_$DI8g|2AM8sGkaY98UgV8;}BitD~zz9M)b?R=|+%0eB#7RC06|gFLtMjf3}hE~Ol~W9kJv=aMmrae zl7qq4a||YLZk>n!_Zcr znX=XlV3d>Z< z_2KyVa3bN0;VQLuIc>lE@~ho-lI%_B_`|!u{fqzjaDUo;@g?Ko`+xWUdwdKD_GyCx z3uqD+fy=As?NGJeP262%l`4oAROCESTIVlR%Wd_oKa2NOR-W`H~&8yF=)?-)ehZU=BhTYSf@n%Ywm-*`I z>A00K!zO1tFSec+M8Mc>rn2h8`Iw*o?DA)yzU12roQ4~|obu&m-aNaSaz4)WhjY8T zKYacE_IK-x_ib~o?qLSx5vTRs!^MNr^79|J7K|Z~yLp_;3H8zkA!OI+_7sDS}0V1x-saXJg@%oKgae0EaSoZCSE_6%B!kBmg;Z zAQ>YSAOYqC1`C=xwUdB535I)9UL!Oc7YYeZk}{((Ibe$Q48wpuqaTdN;K9{g61K{4 z?iI`;JRAnVF1n;isd!^N>P^i^HLnMwgBBJ;c@Q*-c!sLC1v z1fZ&;tyRDwMw?Oqkv8WkRC%2(0;I#113LvH+<~6(JcpWFLnabJWMr33@xJP5fx{hY z$3XWrFrwX?kYnoFjXb1BPK;!0a6@tjK&%~Tj6uw^pIS$sJq;rl|0T@<1la9ceg$FWw2?kTOQ6zRidJ3i=efGzGH8Ra4 zO+np_L1AuG6C(xI0Jok5XEh5C3$!7pjf)$xu^TZ1tO3n^P!bTvlsgU+Qt(Q^6x9hT zZ^c_MdsFwOF2SzE8JEygyKf!IC^^+;nv1Mbv_Xw@Wuz_uCsTxGC;p|94|%ng}>log$A7{*8gF!Qv< z%(mHN0-aaag)BQTwuQiHa}BbRHh~>@FFJ$N=qV%%Di9DUX%$#F8pa0c40LjI8^F=Q z$dKHc@!qQj@02%W#Bqjx0?H6tGeuuUV45UBw=e`)?~e5SuXdMy@#7y2&%Tmj+CABf z&oM8*?SJ==^WS`Z`@_*-zj^Xvyx#2QdwloC+bAjT)04f7Pp&Ti*`NKvkN(RqQ(x6> zewe@cyRUzDdkfD$Q8?cI^?z6!1c70m#%n#E(z;w+?|$;tpN%Q|-Rt{zuXdk(stUJn z-dn%pD7)*i-k)5T1VStzno3TxncsY8W4(I$*%n9i((G|Q9I#WpKY%zI1xnSE4HzhH z4Z%eiOQJMTirttu8(C+CW9_RASJVEJC%aFsF0RYuu+H=0u_Y3san@L7-hcV~Pd>XI z_;Fm{<0m6%7cce~7qY%u zt6P4uOJ$EKr^~H;`P8F2g@!n($;I)!{=5JE|K(R-54AZXP$s5fJvUohVU(POH>jKi zZK=YMCX#~H%o!clp7s!(B5Y|a38^|OoK6PhoV~dZNJiS(hk}Vr23k5OfE|L_hXNJ6 z-MeLI5gOPX+7c;wH}(c}jC0WH?u4g`O(H$U1U`)c;qeI2$=SVwoFD`uFcPg*RN2Fj zd}N{k?Z^pDEj)xmu2NqV2hbkqm?AJ-$Z?W-4(etMSfN$pp^HEq0JS5b^>B;ksE$^n z1FWu|Vr>8(X#xn$h@?0a#0hMPI+!I7K%Y7Y%M@XbhQLT{a>dK4vH^sUggmLDvYCfz zuYFlC_vUVKcd&Cea9qv@K;f>cF>B4%umuf2QJ<#_fb zu&rhbXWKrx&~+Y0RW7ogDFBHFq~4U6H6Z4@b#8R-V>QXcbTJJV`#dF1L*5Li8r6ad zHpjj&TAGSPcX4mz_y8He0i^>IqlBAwLe=ODSbN?92WX_M(Gy{XJb)L-K#0(*Eu;0d z=MqrSx>adef=OC87w@&z+Ot7SK^D%DoXJdvltK!M;4rd63U|dF6X0&2S%b25U^E){ zZoI}MuBA+6ENO&NN=ZXPNh0Dv*Z^<98`u=i05zfkq~JmX816VBA=)W$bfKU?Hl#pt zL{1i&0M5CA{=6fpn+C}MQbz!VVx8kCVSh%kbfT$m)WB!+Gp-h>1lL~HH1RBc8` z>)Ei+3^l+}2yzgk)}CEsuHeQ3+SX-u=xbXIt06OpVcI}8j}dhBl%i~rmI&%;@HRj! zRwG!@QUpRO7HEQ4=YRnL!yHj?9S91i#2^_S(lDa8)Q;}tp-AY~ED;g}3~LQP&5nuC z+Nr+p+r!&qI(~EcqHh2Ag}u31Li)Yd|3+L=lkE-L9Ga-G{~3- zOj8<1yT0(7vQ(ezL%n_f_UpH=<>}93yM6P!Z)cdE{qg5lfA-J5_}~63fRjQ4r2Wmy z@^q^Y4|lI#i){8!U-ZKpI3K_;?b*QA$0I;eLqz9tm7a|It1kp&y?s4=@nYKVdz@`0 zJVgl1yh}U`LM1RH8Rg$W+LEMET_U;?s+q%dkRO8@2au`|Y<=?z_UL9$H0> z@{phJuFkd5v&-ER+UdKC58w80zwPx9=?XBh7s)bh$}V7iygi+l_YZY`_u>2h{Ey%M z=Dk%Wa-KZWDh?alkiQD#fg3CHczFUy8lHYp8~R~KG<`sRQB@BaP2 ztLI3N2SLh_taWA@rkz89b#+*Cx|D>7WD)|bk+p+RZk44~Bqu`5L(~JM6vGD5Vh(SP z36P>YP$^^!xMOG}P#s*2wG}Wxv=xFXnmVfGgewEjAba$ckbFuINVxU@@&|rMbUfht z5VnCD*8fSwXST8EVa*c(C)w?&unkKT_s_2tXnny?KDu9<9Z?M0EmyK;}%CFeS=@`|P;I%s?KYMjQsfifG;m zu~V?Lvq2-SoB$dybciz%vRQRAjV^v-=+F-<^a||3F1bsZSOM6pml8;$Wa=HmbsFcn zp-)2!Z^oQ6NN^yFL7erBreMI}qa>Ku6pjeI5iF7*X7n^pAsmuV#`KY;U6^de&f}z` zwrOyN?rFs6AZ`u_fn~$Mp&pX6&*%k}LJ30=1Y{67xF@Sl^)3Je7hv_AJSealWplv< z!P~%|9XMMmRIFLrN+&=EFRn9z5EuxI!sH&&Nrj zd9c}lH5k<(yyT`ljLAVrCgc$S&X|BekprTz-30_dLqNAJ0f#sM1~PaiS|dtuhEPI5 z3g8_I084NJB&Tqk5PCp>uYlD9&;=bZ9+^`_3k)Mj)RCEx9LQ0KfB-T;Mh+rP>c4b zcWh|p6|&L#c(`AWfBlc;oB!{#_CuOppE14tVffJUU6u8GUL)JPcgyR;syDMbBVA5% zGiBxIM+`um5sAoOZj5tEAk4 za6FxliqX4OS}ogdI~h5Vpr$C90i#E2M2CPZ`Fi&pz2<51ozQ z9`IMceEs#ic7$XUi!S2Xz=h;$NH4$KUT%i=VQH&$8f00V`sPPpjX(Y(6(&g@)&rH& z>%abg{h$92-yM#@)(I>Ldo&n;q}aNcfptwxo2`yH)4(N_VDMhqRo*nIBH;H%GHuMjgIaSfk0c1ybA!Uvx|W{txHfiqB(d39L?5KGeHm5=BU^Z zJh^7I#SFp7{m#pT2BFb)MSJv~V-3*TNEvH`-~d8ZgOIf#P27O;0JA`I#{{Hd%{}*M zis0Ra8xI={2^JCw-Viv0q9QpOX26791HhFcIw*KYXf1@$6QV;Hc%X6;i*b+ZYNUYF zoX8gv2vvX}LQdJDAqgs33-1vdY~&odck7B^R*9Nov*K3HAt?z+P)=z#dZkRxm?4Wf zL_hY%O=3LH`Euj-;I#`-?y50Qffihd>$w>OGZ8eB(ijTpX&J{g{o3%BJK?p!&;4D4aoP(7+CC@=7WvS{Q9_lbD<__qs zxmYTzWv+->S42);dm6=hYillqm#owIB!rkU$9oj2=`1IUJBS09AM!l)wO} zGbM%;0FuA}z*91VG^D!B65N&Z7)wB!fw7hhs?McgfUiqI3G{hhgk{kl*u&7ql8jv4 zy86=OBAFF!QMSp;WRyAFG>ek~P#g>zdw@^`Vt)(Mj(iu^iHgTeC}53a2nN>;`N@2Z z#xN2sD+hyBv?Y5BF79h~TbTm1-#Ze}Cbe%1Hc6kHC>+jP5vAJ4g$LYy%IreH? z=UO&-n>mvVplYZ5p^K>EyX74^eVB7UROeCWa|64|&tf^-Em-cd+i!Q9+qdsNym>pw z{`$oi36m{aEtciOaQ*4_`KSHyd+%!=p7H5jUr)=i>cj22*74;FCc)lt;Ecn1vgLk|V{p0ml@A1Puo)h}}*N4;XDgNqz{^q5wpZxr%9{qThyX8Tb zj-Yqle75xs%q^xdwbN3S$0q3_8kzBi^2e<0U(|qq3i)y$Bv5R zs@*9eHFUBF;yOnf0LaY{2cRW}OubV$c7~{k1RVh}6wU6@S$jkSi=)RzZRWm!a97An z*Mb0vZH8_{I~@!1h_NJ;)*6N6fIe>I?!Jjr4`%`ZWmin~v1!+K((^i3 zj1?N<;AZW3m$#feEgKK_GE!fJv2%+U#ab8#j42eIR)F2=eP=zOL<^1Pu)!SWY7E(G zst+=b`~4OIGw1G0KWi{RZ6g=E?>W~Y?M4?Gi@?LM|I~oIVa{Nj2m(x};y8%`dnhUq z8Ce6$0fdmfpOlIVf`$$VfX+ngxeu2@4DJL7=`yUPq&25l6GcgW?zIq|%{LY)CpC5g zb|4cge!z@j3qoPLYdQc4&=AG|lW?@M&2Ssb#*hFP1o5aW1E1$$0G`ZFyqU_Ne8qXp zl!F8~SMW=a2yYNdutB>G+JiGVP#{nNMzLnpBQ5|5G9&cJ8w>!<$O(a+4MBk+lmH?y zCMAPm@0EGRjAp#TX(0I;fH5M~%CNMk1JQF0DEvycKgnjzwR zR3-xM-aO%|$PD7rGQoKb2qm9#;oit6cB2HWjbb3|K-E&l4#r$^1x>+;Fef}JJ>jvuQgF$702S zcx|?xk4i6O0Gky!!!^TihV%W0B@X*9{+Rye7rnL=(h3ieC70?;0WgU|B@(Qy-zxCnOUG2-p?NF11 zGXMHR`{lp+-OoOIJf8jjbT+ztA2gJ4(dE3vWtlSA!~B}lCST|EZoSxEg5G`pY`@E) z?>^w!co-Qv4Ac1X+11NuqTdIW?)Po}W*+|Vum3;)<{#d0tS;ceYY_tTdg>)@92$aV z+6;pev!#T?SOo89znH+0!FilqYuMsNLad)tmTzON2x19svPwF8YMR>|YAqcO(E)tW;Db%ADelQ%t<>+8YK zbs`uxm#Ljg9{P~52E?(_(_{z7f_@?Cfg%jRg=k?L1hqMfngoUP?g&WP`wAX)8pURZ z#2&6^;jCrPc#49&R(SHXe{h!ul?6J)S!E0aH;X{q= zJViMC6V+`+*)cJa1WNE8?G$W*3}66=6rhUk&WMNr7BGVKkHdJyBGduJgPFsd1U7`E zVMKYPJOW~5>ej1;S?5s3E_LCNFl-bhav@aAxx21LJ!Q$0L~&WeIRr{sTSMV<8GIVd zq5GM%fl!!&fycl&Bc&_}wQ;#L1@xmLhO9t=Z5s+`b69sI3a5Mtn86Z8hCp(629?CB zSTaDO!~#y+0aED`25?`yn=vO&DFZ-c2|~}d-|{%5XD{S()OWwrccIvv{==Zu^gyZZ(0m+=A*V~8F``hFDAMTEC_xmeISU4h?jM=rn|L$*<^~I0>aP#Du zo^RXzVV&E$9C-*%9P{~fuaB?4KHR^ty0~#aKK8k{^IX>j#?ic`&6t4)+CYQzyWeh~ zee!gFje*KC#h|ISJaaDE^zd+~b+sZ}E}}YZi{y>ut)3rTt=6eOh_x> zK$OWkV33+)tlbM*rPc^NmWo;fv9YizjzjpPRkWq^dJM_Y-Aht7gn{&gAFUaH3JDUp zaCF1N0={vNpozvLJfe282A;gB1UU|2grEcnR$!h%!>|)XtRGkARh66!P?!)+*}$s% zxq>P}rZIa#ivmfxD~qmIRPPwg<I>EHj{Q&to6QTl<%_aZ{Flw@qmk$O4&!0T;#%dJC6` z0i7T!U!^q6Z>EEP;%` zip){nAwZD~prIfU1r7*>)Mm9At%HU`8j(3CoTLZ?1qLy?%9dRxOfx`!iR;5J3mn60 zXF0qA2<-K^()#LH?qBC0zTtkVe!QO#-+%kt#n!8v>BY-u7hgRI?Mzp9uiv(F8!xB* zaWM z%4WZTLtXo0KfYhrepqe^99DSu=2yPv#~20}}Owr&UmIx{u0kZ>bZGC(u%5-BWLhj1daAnhjE zmc?j*!pPyAfF{6*ZsHv62KH=a z!!c5aVe7o3Xq_3cW4^!?o(5ov2(Qi8#grntW2iBE6-eL$9kF#ZBp^ybDSO%U-7Y-X z0jQ$53lW@r+(uh0W~Ky!z(R?`JF77$qY(xmO3FACugy-Y&9kr7!N57pq0J5hu=5y% zHF;wI#09lMc(t|P-^W01YKzuhLAIO&yn`^frHx>wrAQ=9;enZn^FJO{W#K(B@#AWk`u+#5LoF(5&R8@d4?I3z$vX#xxYz$+?t z@T{U)H@#}-hB$JdwX+6G#`Syxn1G!zfeS!( z*|Anin0SfU0s=~4S7gUjtZIylMq+E;jN=%V+>9jL0d$}6tV@aj72`zSOsi370CZJk zRyu-o6V=s*ott3FKwRBr!z+#GA~hG)z-l1OiS3XzFw^HZo89N zxln(25ZJoahmwi*2h=3 z=ZYec$0t{18n<~n=CgU2ch_bktaqc$7cchZmxS}SA0Mk7Z$A5J`iEcCx-gd7+q=V= z`&hWM#GT+>U?p zlPAypSNci2fBNb2n>>AZgk_ml#Q`?$c>2YEJ|5|GzHf7%&)t9|z^NedVL50k7zLyL z?8m?Vdw=lLn*x0QemKpK(we0ni_;~eTyZqKTfceTjyivn+RYypB-vd5{Ad5{-MbI( z-o1iZ3}Gw@&wVP=!qqHH!8rCn8cd0;XW}7g7G!2dRimB=)^n6i-mrEp2#CQfh#i#J zIxt{`NDHt;fVhJL7X)Ui=!7m#Y4BJOCesCR6Ffuj00M$&gszYnusVpq5>HwB=)uUroC6~G^D^XxD+TN)@V!GGo*re zAist*!TF9&ZQ5cxBbG2ERp4aEY!0nKKXP1w<}?seU{r_=5xOGiBE!;_p`_D!3CxNSUDrOJro7mCvl8q;aiN>bIKNBUN>Q59rg!~td-e3{ zFsGBR;=~gtoWOc2d3U)XD!?5rsO*VCTf)``jPSXnYo8mY?B<|uRE!%3hOdldF@>GT z7VXR_d$?0ppwK+#MVlZNLqj6`2uM}rrk2cTWNXOxI$cwns{nzy62q>_${j%1t63A$ zw$ha$W)cc>B&7ttT2LYcSZv|Y$KEj}MWuo^p|QB|Ad;8>ARz)!0=I~axCR-F3jmr6X#-wt zxRJYii|&zJ66V|UJJ3qVf2l>uuj6r2<1am?kjAE&(A>@PPopU)rWckfSYEmnot z4H89M?CCU{fE&OmmSf#t-fV`9X7%`xUp(is#Tlk;xq9}Kw1KWcFx=k0^JUp>o)K^T zaDO=54cpJTR zrZEk0QYX3l`fome`DagWuHW6=3&CoPPO_mq=I#EuF7Hm~Woe`d0P-HCpXX5NMK@13 zH&Xn8H_-P#{lneU{Ck&g>}Q*YR~Pf!5C8EmzrOf;zqsP(|N8vw4}Ug3+Tj&{^P6{X zU!9Kk=h$D(Zy$~UwsxYV+CpMG?R;&$qEp5V{Qg%j{`9~3Z=PJd+gitGFCHJ(HWNP0 z_}D!km$Sb5ULPNSIg-fkQa&FySI^p;H>dAj|L!;c`R?e=f4cLMZ9fJUy`dF|z1X3t;rs6Q}z`NiW{P=OG<8^TY;|a}x$LO>3 z9rOVN$(1R>#nu@xyg39y!e|y|s??X2kueivWf8Hp=R)L(9rO?+G$q#)T`(>Hlo3uE znRL;WAWf+EJ`~~t?k1Q9GzQj)Hj`&yLJ1FaXc&p~2x;eZ&3YS7bBd2;3tA5UmG^yMJs5V>ECBTMY(c4>!OGX+cmhB`O{W76@u+94O8M0BB(3 z1Z%~VASkGlkraXG0{!D>aLig8u|tt$R?TMf2tw%Q01<@1s*)sOr+ifa7zkY~MFz)a zik_GZ1Q^H@qDQNd5G4$ZeSjeGlVza@GfOrC9%CrlM)r4_r>G=yw$6g9gmouaT3*>a z6>*z$+DIvzDew1}7vVCl}G} z_Umt*g{inN1Za9{vm;YtB)rh$!0k$?q`b!jLDv z+&+~I_piTIJk@Tp0&2g!*)j5AIku>|%j1W;0F%w9Hov?0WccEL^T(UlcT@fPVc-Aa zdw%`H`(bna>`ZU}&2e-6A2!3Ye&4_Q=Kb4qoO+Yfz4iub`K40=aul)0mq+uHZFfvXZbamdQP_A8{!@KRnvywYVdrYX$&&m|MEweqXNX@m6^^nq(H5yI?D7JRi)?M`hH#JI!(KCoBiTxf4C>j29ML`<>t%Jk1(=MMMj?4K$7m$nmczE|@dx_L{`)7G`!HbTIa2sTo)77}k+-F_t;xj3>79+v-+11s> zW)-+g!Ab$WaiZytS(lvADW;r@EMXrEqP-vB>M zhXki@059g{-kO6r1nazP5(7g&J{(%p*fxIra{Kg?|JBp0yZg>NAf)9)>E>p0zAV@E z0;+9SzY?Kz5jW3|7LUu@e*EnZzx?yxe)rAk!(vOIdxSca^Y!kk-QVY7(>kCu)Wi}z zO{mnDb%$^tO3bW%Ih}XUZ@8U{KsIOD0I5TenR&x00p(!EA$SF)#^wlHK!ODBjlkS9 z5pxi>+3DK#6h)vdSa#kFxnk6quA$ZFN>VHps*A%0mlI1y3Pdwg0>*H}9&!_X4QdFp zduN!6E*4&Ci*ibI?elEI03cDEPIoNKBtav_3=y&4kg7+3ox)1+*@g?M>cK<_2~&h& z^blM-h&tx%3&v%{Lv%(+KubV^y4Y!!;T#Uppsy>{s?0K6qb;;r8+OUiQ-%3trHEBZ zsc8)o^X8o}Ct&c0wfA~{xi zX<`Z;+)3pk>Vw5zq^IHIyg7ix^et}6;*Kxjma<}ENsg~aDow#61J zz*VsXYOJ1_gBwD!xs!Nxh;WDK^hFv6k%PG}WmM%ua&1&TjF z5abPqciL%xD1{+k@U$dRo&fV!2m*pw0CM=^7S033g2>JXiqBn-C<^E<8%PcyfCX_4 z7y=!lBWwUFxC5X=#rW9uqJRw0BN||#W=@0wAOsEp93QbzPDC0`C=HB&jMNdk_#gn_ z4GfeWI|Oy7UFnMg0${UYqP8>&_S8-*bFQ#J67kjq94Da0>wyE6aVsR7%}9t49)SWH zOi+{LKnPtpPbxEaLRf+m^*MxrPobNz>XO(evZKoY*pU_N!sIb{8@!|C(KW-EeO?sS zhzU{!+@;BcXrDcQax*^toIqjy*5_sZ?P2b#A1o-SaJNHt6s4X=Fbjs!R~>e)T2H>3 z2~a~nuWjyiDq92}WuyBHd_2FupKgA#%-?6dPFtG~=h|0;QrEd1KIH9a{9<=~ar5OL z4_DLUU;Rg}JRc5{#Tr!SyW7`K&tLXqCB{s$;nG1qD;ee8e}=OfyrZi z{wJTm{^ixH!`lxJKkTiH!nK0dE*Y5+Ydzj^oAkvXwZ6p?C?HY3zHs;)5@aHjdk z|Ln(`sn++U?1!Lt09)Gaai$^8iSyIl0GXTug{0fV?f4s9)cpVefB;EEK~(S$@7}&& zAMX0$+*`>|UBn|skKX1plL?!Yfi>YgI|Uhr8o+Xx7gN%?wr<<~#N-7m1$pZzodp4! z!9^;J>su%zq=Kgd4x8u``r?$qXYj;8phub#CIaogj5yo}7EBYgMpa?If%Ag7K=)`Z zWEc8?Mn*xs!*~&>;Led<2e1bygO^Op;sor3U!gn@MqtKkE33vinkZl^YV#q|fM5#!!zbnNJh!btUq(6vrHooq!qfsZFIH=qK# z#CZfa4bWEl`&XK!phR6rSCbLyg4P`@N+B5B7d36ull=I-vpB5|URxOW{p0#(Ef4L{ zI}m~6#$4TiXl$HEiM2u@Mw^osGfkJcFVoxiORkXyN*$zmASVQ2UJa>fo%@<~IV~s5 zdmwV+%^rDKm)FvE+JGbmMGS+KCKeU&0PMb*M%g54b=X7&Cqj?~bU-VXaFRrs10A#} zkM8a?66a}8$rA&U zF@mu@D zSfq?aqq+z<^hWGmz_u5IRf+8A!c9p6Fc1a)qoRIZxwy zxHZa_m(*x_d8HicwXc?j?Na;Wxz5dSu%G<#|N8Sk`$IZ@d-}jBl@7YS+)IF05B24= zssZg_7|N73f>S>%K*pED_N&kL!#0guJ(}OY8GroA%P(JMm2S8km-8{|;e;|Jn}k6i zFm$@U*rI4(1C7d{X{b~ZqKb^;4U8AE+bo(NkyazkIBa-(bFTz0HXLKnQD)bBNc#&`y#Tv@;+eAl63!R8ow^0)kf-m%btuNCGIa9$j``GKC;H zEw=>SOJ|*97>od1kqNSfY{LN}|C64&TdLYwB*LUI2p~u5p1qa`4s`)`TD)anD>Xsb5c$VxIMF23l^F;mnZ$|^ zo2ZgD?&1AfIrmtT4X!8kEb4%RV#jV{m?T09r&DSWGDLI25~4^OOhGFuG;G7k!j z2!$=-iF2pyM%(a(-7yS>kdYh^8pdkgkp^@p0-(zfLZXNg2uK*wfdgC!3}JQ84m|?H zCk4?ZKPdj;zb2r;{(Qx)w50BOhe=-7=>5^;V1 zSTZ?{)+)E4B22@Irgml=VqJknO0HGAugSd#cgz@-3A3=I3`L+aUL+i!QG6g|kWRRV z6l{x80zD_#Ix09~KLJmO1R1~upppxw7BoR41R|>zEWU)Cu@(=D?KZ7z)rO%oJRx3| z+v8HPzrD+%%A6+R#WK&-9dbd_D5wS)_1%| zXPVu*uFDZ+BxBxhHnOugS|5-+Ps8P>yQ@#XT)%yN*2lx$-7{Y=pS&p3FXy8~8BL?{ zm~wyd{Kt4 zP8Z7$-@p3$ckjMFRP+Yu3`y9uN*M=;E^)4Ftz3gKTEe)xetGjr8M4790~z>^uf~4A zw6oIqp0bBmhOgh2=uRbBROl{;Wk&`PK#EbGw$QYEkSCzzC z0}%o^7FCO~CqKh5P+fr-VKrhvLqUAs-}fMM0PyA@lly;7a=`olb^;5g}uwXiGVsAAUG9NI!L8iP|uaK*Xfjm^K3odorfV zc@tTHT1llzN9bJ!q~y)hIA{Zbn9~qu#b-b_ZMAWUVbABsT*lg=Lg_@49V1Vc1NQs8 zd3&w{Cn_oDVLQdLeX$wGv>A&k4zXa(APMvke9hsE$oS|1z{n1rRxosTS7rf~E#gtt zk&Cp}bWxlj80Z-75_kn`UK67vUH}9vO5|#yjramtQFv?)uSw(YzJdyg^8LE;e z^=cH34c#k6CaR8^TX$fg)LReC!n!z{1@sQvF%=UY7`jkTgv0}Z2Pm2$siOjJ-A*6_ zuzLqUKw1MBQ-|u_Fg!rid&&2qi~m z(dNs7?)Lb2_)i~d;^X6cblpwUSc*%V#xz_$Sq_iKvsCk&-Lz`-}b(w{Y7RAZ{Di|r39IT`rDWLP1+2!o7%&}e0xMwW=D6VrmxTE z$Nu{D>GsXtyYIg-I6eLB_n$udSq{*oPoIo`^e;dA$xnx8X;|N{A1Es1Gi1da1X(tT zFd!x;K;%3W9vLN){q)P{yDg!v*r`~~7@nZyoI+!$)_?U^|KTtGx_)z) zPUpF4xHl|=NGj}TXxiC(881*N%fOSklr#WX!g*=Ur}09>FbT}_mUTY}B8wv0i2&(5 zvsP0NCR|tU>eyWgJ&*!9xqu@%tN}pLz1PqgdIJz#PYy%C`jMjJWr8(A9LX(&3VM7b z=`P4QIskA01!Y*3kjPfg1CWQHGZI&&Lc^Zu1hV(OqSiziLWwZZCNT(CqU4lmIZ`;F zYbm;(KfKpp-{E(`w>my{eq7V>sP~U_cz5{z)#LZKx*qPk*MRP$L~U^D-U5K!B$lK1 z;=Os~-mt&<5OWA;ltzyDQ6@cz%Z4mPMs*e%l?{N5w}eD&>fP6<_3r)M`Ek`lGYSFb z{dOWV>e_TAF(Hbo8WpH3)MN|;X2ROI5kV55lrV*(0D6#fx+oEhJrt<4+a=D`&IoKI zDA4U>%PEj|-Z^>WJh+l;eYP86(d}m3?$We>67#(b&9*zl4Z#?Bh^_&J3qal?ZJQnuX=o`r zh^Nu0#OYh}0M49M7uM5)86CUlOGHsIDS=_$?RY9Y z=8uYcB=E36luQ`J`Y1S~t=j>IiG_{COY)RQCIBI35@rwr9Gn?7lLuQ1b{rNrr>3IE zFif^+O5pCac&X7Q&k#&d-OdWy5dnlF3tt=8A@0U9_GmjfEqx>SmU*wDURf*loG|(bLbKZ~UOk(mTR1 zB|?P2-YaJ`31;e+S1;{&tor_w&p&(d`S0IsF0{82HMQSa|C+a(iT8QpVdN|Ykp*?Y zC^^s4TbIRR)rA+4BIk{qZ=YjjlxhQyRH-CPdiHrkp~$qe1X@yZ3QQAL45>ICQj-g1j&g6hly!Lpb2{tieCF# zJLXV?6}wMXw$GkD`D%Z2Gs=sn)6?ti_LCP@rdzl;!FayY@88`2?#=O7!RKT5?pPu; z`l9CtUuxG!SLjZ4xphTB;tj*aQwWQ-ITc@4v`{lRtscD-1%Qj{I5-wWO995P9_8(= zng$Mq#w;kkc0>S|%wt&3rs@GpB~PWHQwVgLV{J9>7{`*pye*I^Fw}b{9fm={#HCrB z&xiH#&bTAG%ZB^BRID+Vkz@b{NUp5fYrRTzIoU49Ho|EhcOy5Ec1AVw6_%BtjbdWiFctWhR$7DcDlFmlR8 zYQe_P1!t-!r!6x?Q<#k=N}Ehd3`}$cNaiBkH(KpsS}1!P1-=YWPFzyins08)Y&V+)kPFEAp! z0}O}+C`1N^ghI{$0su(BBorwD0T6i$z;FOlh$`9@0C?Q#@|dGp3m&QzLIWU;*$}ND z)YT9);m&E{@Bqt=LK^P2#SPDmA&5h^n?e|vfD2foGI|yQV<0HZ-DERcA_!#Ms2L3$ z762oKbz&xfbww&*#1zrgI$%lxS3&PkNdg@i0)Q-1;A&YZLgq?V>}S!!^jyMKIa{Qki- z&I%iE?fCxTY$U@ZZlC{)|LXFSr}IDl<}_~}?!RsG$#*x`pMPOkD1nib6#cZG&$^jL zB3>TeV&3O5_0z-gLmPM3<&)?8r&sTO^A1iuxZ%ys<&!J;@OEu=l-}GQ4)2HU*L$kOH)=g8_7NtcmyBl*j5SsR)>MfDI;0 z6?GxGO4w0)RN#$7o5M#0hNXjy!OegPB9MatSX4;{4QC*49z1$@0jzMb;W$A=Ij!rs;bn1HF%VEJfvXZ+ zq|+pvTJ4eun=ksNubTfW7z}ZI0B@Z#|#@y$nlQulh5_xa8r_=2nUk|BJjb$+J z-Qn&4Mffnw<}&6J-aa4>F*??Bw$+A-?1c5~GMF1E;#5#QdJvsmon!W-fr8NHhvj{p zZ<}ZV!P4659FlWjbXVZW9hpfh1py0$Oa&QYPE+ak9nQ5q0h>4#N{@X(2!t}E9q7A* z2`pyZ&9$vP@7&M8VVq$~ZIwu9(^Z2HIge6UV?M9_lV>*@JjvyD$|(^72mygtU<)1{ z*$fB_Q}Q*4vUfB(Cr_P7^uh4b=~UD`HrP7nB(i`G-NPBsNu!k{T|qp_ph#PCX9_TL zRBwa;A>FVL)DD4N2!X)W*g=soj5uv@J!#6wtu0-UqM_i@$6a2#0y_?g5}0E{Wh5XT z1czDRY49OY1|qOI!hzV~$i@aCOd0^-#!1r2eO1&0Ovpe zFkl5s0096%&d3oK0s%~DfF6$E6>)@cL&fM$Lv&}huz+zZzy<)06*rkQMv-nrNRb+? z1Ou?C1pymCW}RC%C^-#kdCN9atG(GIOyQA-kr5d zjQ;eiKX^QyZV&HhcnPhn3PI`mYX9;lUw-n>f6RyP&L1k2A!|Oe?KU@+WNyw)((z3tF?;pXt*L3{ue*alb7u&0w=bLx$gqAqn=O-_=7f(!^2A-mW z)2X(*A5NnX8Ok_ZUSD1Bw&mF;53jyn54F;8tboa&ZF;Y)x*9O-UOjxffBJIs;tRgK z`sTaW_rG}j=DX9WHVc|qrtL05W3jc@xutGerp-Qi1AjVwvfuSjKGWTy*R|4am9$?j zmTWir!?y_wyZb(Ivty^_adY>pzy0B^0d5gs3s}A9G-45GDh#sOX=cf~zBq1y zR^&k6LMT+DoXINi24ZG*T1bZumXJDivLxMI$iuP?RdVrq)-)m(Pz7C)5b6lt+?mBO z%m~1UyecRW*=9@YfyfQ_u8*DwJyfKTzNe}Lm#)~YJhakxM7E#j4uq(kE^kBKYD;8xi;`X35WtsQ8kFj$SK>V z_~SiQC2K{`O+)q$Ssa#zgt=bZ)t3Jy&d15hqFFD$Q_(M zd9mLN!^9w&P%^=$#q1psw$WB~WHuTn8H}M3XNZ{?T{=cF8NnKu0&$=qas-1dAOkQ&q`*K1WJahE zIfxO=3D6UI$25Wwig|Q&17XmQh`J0PM+rQHDFQ_VAQ6d2haiLo;Gl?M6zr%TBVb^w z5{>{M99F4CbF$(ZoZJY#hC^fFrdk~UEmKLjD(Y+*S4}x|<;;*6Dvf<5m{Lkp7$q^9 zGSG;wuORO+pwrVhUY$rsiV5A2jdb2 z{NZHbtd5|R!B=e2pp(W*2?4E0HalY(vlEx_MImztuPU4~TfyyxW+c#1X&c-P`?=DTSUK;L9k#pukN(A<4E}cgz8wy4m)kt- zx7o+x@@X886~la;rv0&=9**rL5$$wXiXP^JEtm6w(f~pAJa2BEjn6K}ueZZAo__QF zlTUxT+iw#=uXeh-mmDMQ)SJWh)NFvm^QT|D{L?2-^V|E#cfZNsJ+#VlG66VXB&NOD z5^Y%<&oY1Uhkvl%y?ytKzkBudH;-#H$F-l*v=^L~#~+%*=bwLmy1k$G`NgMChrTR* zd2+E&1-GK}um29WpJ#HL9{H|4+9~l?r{gd@iC1@Z_p`h6cYpam{hMF@b*qsXwY7?v zvoH)5w%3vn-`!H53B;jB52vFFd#qtQOoa0ZiVQ@Q6QGt;oQILl^E%|QY7)kYaP~6J zKAZEHq7$KIp)Q#BxZJuX7bKa@38Z6pwC=(fXhTUF&=m3B^VR>Krax=CZA;Gcus54A z#+-Al^>w>BZB?NPD1Zbd*c8RELl^pyzVeN2xe5Ei3HjbyGRB+vK98=eT^0BQUW2EI%AFwt-C}UOU-5Ed)VPSJGiQRQ zVU4Ds(U=Yq>?V}LIXPO?Ofys4&EaLyZ8v6$<~&0-j7g{4!7C~AXe}y-h&>7?B??(& za984Jl%<1R^4sqlrpTM(i92cLWf`^Xm=Tis~m17)Vpgdt*ta2Ash0<`xtTNkq~K5Rd?j6w7R7< zk%W3@k%J0zz>CmO%39Z-rt_Td3xISSD*cK@pEAx&(E>9+V`9%?Ilksq9(eoyPkjZP%WNc zoo`=#ZtMQ|%ikXU_U+XdpWVIsD~nmKt}gd)%cnnld3^O|TnuN-bE3GO?s9M2s8s02 z#uxJKUHVbn@p5?k)0>;Gzdrx`?fXq+$_LkGeP(WRn(sdU$$0qA-j9CH4}&q4dajoE z)fb3IEFy!(q)^Af&3-($^)ysaZ%$g%v0 zKl?qWJ~IF7|K0!bzxy}6o_jY2naV`Og)DCF%I80}{R7|KV7C%u{mpMYiUNIrXk=v^ zPL|5HeS3LcU!0aWk(1`rv59Hx&878T+Ty8uuX#Qh!onl6jut59E9H~ai?gteIKHyY zH3zqy3`Ut78!GG3`-OR@si608BMSJ4`5OBf5VS10`| ?#kGhlZ#S_uZ^R2RZ)T) zGpI#qh}^{X)*F+|qKO)aG+;!9H1T*eO*yabWlAxkuO1mC^K%WdP#uv7 z6+SF0Ny6o+r?l_(%dfY+r-9vAQ@QH>Swi4G8mV$puC2RuYsiP}7ayEBN4b45-aKfJ zvG@7rI8=Cba8m3}nuO|k43E%+kw^6Bhjmy1!a3M^3{OOjC?#FyY4v<_cc||leDyth zzPh<3FWAUVq_z7Y(S_(lQH6Kt0u8omn1X|Y*b~>`q7aIdII@Wa(H=YZ9!az&QWY|E zfmHOt1iH9K;jzKpC8-hyf+R|KwPu1W>qr=!ctuK7CzL>|A=?-S@s(umV6Hn3rx;=L zE%%j^g~8Sf_m0dc3Sox}X-tC5fzC_;feUzbCK(rqP)JBn2pp8cQ5403157ZI1>pf= zr*I2WVv5))KqDarqIpV)2s{g)K!ajLBqvC)VBMyNiZT>^tcVd<`&&g|>ipnnk`h9>fu7&LC=T z9{bjUY;aii7`6~YnAMC+-oOLQw60pxfG*QIuI>n!>(?RYU2kLG+gL8|AAj}Nzo7Dp z1eq<6kyO{2VjwHb9`5gZICZ^P3(m*meD~uY-hPSk;qh`gzxnxJZ|BUkieGMySJuYU z{nNbMV${=TU$)%wcB2Gon2#SM+@=e<$XB{PBPENAIcq=9g~~6d~*WAfA(0 zN%q;_{7TTlX!nrzOu2*}*_rz4oMDIzo0lY843GWd1z5W$0Z!x{5?)G#Ac$aw?qD8H zB5nrVOq^os?93TTOx5QTU%JJ}C_M$2#h8;_5FRPp=p06#F`j6?;xG>(uYRMaC@0zJis-1c*YOT&9K1S)03c@Kx@9;)+pspT`oIRLWGiTd-zB;OkifK5@ z#3aNQb`(N2u3)lP+Wo)?jJcnL&nO6(CBpecL=8aYR;0g3o{GBT(Sq)N!aS*;2HQ-kNEW28(V>b(NM$jjorPswqq z22d_OM8mrc8AOQ)niUkg>JhyI?nO`*9!3M4y2~jvQy7)G`_2(sB-r6WgTTzuEE59* zb4Ckxh7*kUC(9%bG&o=g!8%+)YF;%qk3mg1nNYw7vZTSX*I^5~=uV&u2C^N;@E z@7{fR)9=5#|IM54-n@DD=4m+JT;IKa|Me$d{(2z41p3*c$4_@T%kUCjP=pV zEB{)jSM#TT=hMTV{_@{tbuo$%5|#pacY5`cPyXm9j!%|OT1X%aEoGjm#Q4&}4g>CWYo>qFna`N#i5;&Qc=^~3Y%OF1maba*-4{rIP^ zen3?6!|#6mKm8y6`EwPQNU20^!R9_D5Z9o13QJ=j+xxdc=&fapHfNv&I%gVvPn>%{ z6M0eQ{acco+TI^kdzZ4HV8ABXwzP0)aZBPN(aamAOg1>dV^+U7Gb=lZKGje-8zCYy z_bP1$tMQ4C2F>V48#Xl;(v_vdwo1&!Ks^^_LSFaXzn47rk8;rJa?vWXYN5bUmys3XsgL!NfItkF3FN#QUDl`tP4jOGzCfujt#(3Ep?P7)2_KvmJ&$e8C&)wN(> z+j==2j~ttVn1yp9>cm~5I6G_;p243$-w+)mD2RzOg@c*B8!03c0IGo!qXu)tf6zuU zF-8Y9a6%*^5V%JO9bhBKF@)HH9l-(SW%lz5Dj+8^cp(^Jjx>TY0YS!jMxK#^BaNsY z+jv@AWJ+cp-fLq?Ua2Mq3ylGXB%)b;(rTNx9(@NZ$M7tgW2A$ORCr#&g{ajH>}~V3Rf8@Ga5LY!PY6Y(9}s2 zM{m%g9?_?8?ubDy+|pb_J|0;)&r$ya9oM`d9j`unb^Yq)Ob0Sp1`Kug5MD2ry8Gqw z2E*+fOiDH7I_3lY@DKmw^S|>$DVO_i-v0Ji-#p(xcY~0JySC-|;X~hORJv?W<#bbS zUzeNd^!kU>%NHWVnPg7K<0mM+pC5eG=e6Dc{I}bAJKetETwO-KN$$_f7oTRHG$rwD zyKPUG!!jo}3VMEXe*f_1YkGe8?$;{+4yP?79hX9LCMn2X4&~FI{J4Je7r*$ofBl=P z3zw%~f1ic^@b`c8M?bpxz2E!vR3(N+mc$4|;BoqqZUFFwbYUrwJye*VjU`r*4H zd)m&={j3nli!N7rI^G=q<||0u9{ZpDz5mO<`c)xa(#O^GRLYd|ybuW$Ftj#YK0KD3 z%JnPJ6Ev4}1<52i9bZA0Ef1Ox%4y)Cu@1?7_fQwf!nR8}_u(nmD&fWfpBE9b`ABjr z>}(0PMu=?!1T4ns+jFcNY6}S#Ptarn%O5Mo(U{%$4)%8NE4I^DaQ`UqS-4GJ98J^0xJ8ir3z~iVI|$F zrK?yDG2h1FikDkH9Ocu~^!aD$lNb4J%FL@rEN(L0@@N(1CPz=ja!R z1cgIF3i=v7LkQ7bsE35N#<|I|gTH(8^zPCuI)t5u5p4H9w!~Qzkds9B0K&MBq{5o0 z(sD@o`h-0DWsG-q)HWiEr(WmWy9XUkX*wQ6*hiNlQ=TFp2Ic+!@lqq)kW@-+0ZQD# zLY#<>Gsze)7r8#sOFR`Z1yVW~1-H)Skc5H8rV$*GU`n=n2#r2kcL5@jC2 zQ;@Pu2m=M8gzsP_Pl4xgj@ib2N&t?r$nk@os`2NePB8abE3(LaXb-Ekiyl*A;AYM$P2}wq(hR1lASRo zqn&Hd9773B7@a&!NYFfs6Gl1U`z<8XNqcSi>Sow8r$oy{AD&%SH7_M2e6%io07pI& z&By%tPiKBVkWa4``95ql7v*IdahcP#z&?DtLyCyNkCIE{Z$JONzy0Zd@*n3@z5M07 z_wPPDK0j|w2Kj-CQJP9mgN^Xs2{d3*u$o3H=$AN-Sl zGPb;w7$Z*Qh)J;_bTGkW@e!1h6j}DowLXt*wofuaItQ40=PA#u?8MVCs<0~`A}<dF(pW*es-CFm4}2PSUoMto14NAd5Q+m>Rm|?NX%z9 z02C!hdrVF!B}}l8VfSsOC5V#r7_!K?5Dnv5BxFi-I^tF%T^AnxX-jqE8Jq_C>dOh{ z@Zrde9&n_D(MT@7jp!CRsHz({40Us&uq`@yg%KP9KK6J}Dm(D~ncH*-!$ig6i8VWR zIGPRXhEwBdp;Y##r-QU<$zowW6#6=?};(b~fK?l`WlrWDasWLk=KUq2LVNJ{HAJh)_5rxeo1 za8NY3nh^EITs$}UnY4PJx>K5lHLwsRj^R2is5xbzb}eclaI2e>BpVhgGAP^LJLS9l|$ut8!-CyM)^Bccf= z_lrvcCgzJr3SvT`7!g7Uhf#Fm#Bk>cOyWcsK;|&Ue87Cj=|rZ26KGJ- zl4L@#k13f1RK$9##Fc$_>sI$R!n&6RqR}NvYYg*foSX?{XXIJL6FX6G^PGgyq*=r= z#*V&OnP8QDc)3AJkQ!K2E@DivP!R%oS|Y?kT{7{_z&zw=%Pog`o})&aQ)7pLQn9uU zXQ|fr3u{J)$rRq29*~lA_(64^^Yz_Ty3dCfhx~-6^X=h|bxxXMpqhEN(esif>yX1C z&FOID7eDyP5B~PwxPB>*zxc(Q@4i2uhvw5fD??Yfv##4CV0(Kk*T*1dX^&t1DW+xb z&;9Z3=sUYDMWT06qH&x-izg&O&&D-m+>(0{@FJHen@c90({^F~z@1Gu4JU;*K&EtHdcRzY{ z_wsbQ`#f2h%GJ%Mx2GT89DjH+4JJC|FoZ5PS&$*-?(%iVnZ zy`RWWj>75v*MIqs{S}B@dgp3n_nQQPWR@`2Jk8wK-ko)!&OyY6Q1>D+U3tzeBve=(IU%RW5Ve_uq{!3ti<_yGAopez$x;d? zx5+d`a!*PcfdX`ekCJ7cJgP4z=*FEKCFCes;lo>J5Oko8;LNAl!O^Q5tXk({WO6LQ z!D(?YmFpOjZ)=1rmBf2<6(ui8cmu+N;N+}k+AQ_Us@;7LZcV}AUNy_mfOjteV~rR# z&4~{skBxc{o9gQ*~hqeUblV$KA1a*7(xh)O~f zKs18}PYe#PZi#{z9-$6^4f64EW&%MbmdpmA5D&HhffHCAq1yEffVbItBSRfvHxy1P ztOVG8>5-1@a+XXYovTveURPVmvN9&Y2F_MArKQA!$P!@j;?8brqemvEJ^1JW;z1*V zn3HOZP;mpd9+{nUG7erTon#E-Bc`2WiTXs?9CxA5QYm~JzCs#>y7ys~d5HH!(mfhW z?iFS6K%EO`R|W)#-o5ZN^**L)=6p9@zc@^NoIbJhw~ya_7>CJfBs+UK9SMS$>E<-n zG5X}HobnXQ)r;fH7xRmsoa*nsdH&|z*Iz%w>t<-+bVvq{BvELiI4xz{E0^Q`c=kSy z*T=9vV&RFOAKsV4kC_eJ^L+GAG(WxF>~X);@{&8}=eKY4?dAIQY1}{L*UQa|SCrHJ z`otWg)$1RAapk^Rukz~cFTcGeSxz^9Mq9t`nC2IgEvLJj`oo(y4?FeKG4HB54PhJO zmY?R+i#my~oM#+wb6H+YH{p4s@~X{G3G(po|K0mHKg0{(tq`cMDBZNST|A?8oCVFx=7WN=6}r5>(Xd6x|NfvbE-x$SUe4V9Bzt z-OJQ`6%SY+qY>P^rJSqKVGQmU)f@tY=WIk`GRO<{J#zLuv2Pq^kpV{{!bG%lz*y7? z!!>irfV1bE;89mkj$VBjF$IR_qtw0YL9;V!QpzgjjjFiDx0dW&ylU`jJ zUPo<&2u^09DT}uNh7)_HoH=$2Nxl(B2osSzv4>^RIyj9KZE!W4;ZKRCzD1rW_`ue2 z2r89jVm>08E7Pcf2x5xG=^VCDI=h@m*;bl7hh9_(cF1t+F_JFqJ<^TF#+uXsPSG1O zLck=UnZ46kkqY_Q*x3l&ggAG`yC1!f47w@y&3Es9{g>~)`DTEZl*4yUZ)+PoPxErryVIfFUxwAkZ=R^|yY2Dj#fyWaFRyNGe<<69xU%Nw`_1a^l#a{I zLjC3K;q#yVFVo#=zW+tiYup^CIS!)T>Gp;q=)lwc zyp_n~v@atpC?dxm*OSCm3JXcZ6LHY-^+=qrZb#i*8M7jkqm59OBtoP!l5j-y&C7v= zM9p#VNEAJmiS|9Rf=XxT2+fOCXJI3v+PH^D5VNCrZyas-EcMy5rqNu9+7tASWal9v z3waN9GK3S+gtj?FSoL&G-GdsG$i%D?8K^+TTZQI`5e8uaSM(lS7(qrD5bRhE!7jvL z_N8z>^1P6bC>+NLz4JsPOa)<;Tv<|#t_1@Nj=<%~DS14F&A~wiiH1nZGT7l_CM-^> z7ENf~#ioAI#IFsAizb*n&KtDo0! zEF|sWEE@W-*F26&yvb#26akaTnipZ3v)g&w^5p})yrz9)n&Pl%+jYM2VFN-xV? zj#P>aF@*E9@cE&&iRl69#b8>vDvBdTQm(Dh#d^_v;{G^#A~9JOu8#qjPg1JJG3v!Q zMX}tCViv4IN|ZRr$uV|@#-y>XV>+^^3^$j|<tPWwgFr?RC%ABM_k@QR#aHv-+q8 z-noa<3<$@de4=e|A1kp=MRiN#0Ww8S5CV0gj!3Yx$AP?qB&ah>sDTOOAR!UNptuSe zAEhuL_HdwuL_{zVnSg-+SqEi&RM}DDV2(!N&Jj^K8bJb1Kv1X1CLJmi2aomRXn+Sv ziRc9Ia2>9DH}nytX=rD(QGEo7^j5L<%#)%q2O!Cs^*nr!WTu`#%|mA{|_U z4;eXU3*kdP&w@`s-uK0V}9ua9ru{^Hla`5%7%Vcko``pvstT%>fD z!Ju5|`kJTY=%KP)FUr*G1~l@h&kyUqcJ!yGhg9_W{hPk7k)G0Vp61uz{^_4T{_bl! z7ER^paU+@Xbck+;>#L+pS@$t;dTDw!U%!5N^#vVoXugiCyQdm`mdp0d_s<_bw0#A& z9thMtiyU)KuU>!h)Bo&GUi{~Oc>MjVEl;fV@abuKRZFpwOACwg$tcI#(l3 zfA`IJc!P)c_3ayae9(6B`fT-Sdw8GEZ^!e8uruC$=-<7)eE03;&6#}lKKL;E)BVKK z*0aS*+=VX?au_{tQt#o2+Gu~0Lfp>OR%|P;AFw+;J>$7T97e;NZ12z?M^xu(`wHoV z-DS4ImS)EYYkd$fz#+AhJNk2&(AKn98xDU&bngUjAsD=(OCN(8!+NwzmaVg+gTh@v zWNy@&F%c?JM_*%%;0dr0BB~IJc?K!MF@_z8vdBWB5LN|Axsr_Norp*#!XcQLf<=Ob zWCwOPC*O&WVa>fop_X`?dAb^BCO`r?bHFy;|aa7dR zoq^SRM^D{J{fgs4Lqsb@RCj3+?l#i!mP7lX?rj*FCU1S++&!c{v<^%X?xRJO>?A{V zY!^2UYZhb#B6v3HZ7>TsQSnqn2{w{I+<-lhGI8-0I7B{*x(t$_;BcBEEHD$T-~tYc zEs%p4qyU46sQ?6DiFQJX06r2eX(A*hfCvzZ4)$PX>fjQr96)qOcch335O4|*1p+A| zfr)bF=46dog&h%u5GO*IcedKCc90Vh7oxBnA64|ekIDvQifGhoI1QCv2XTdE1chtL zqNR-GAl7NRYNbrn5hBe=!L5l&C-GrKDY7{kVuF%S0M9{B@-z@Ct*Qx>Nq2RK%~XPH z@(M%^XV*$tjm2Z9FtJ7?Xiaj^@Z3F1P`#A3riEqf{#emFR~Nu^Dr2MWsT`JaHDBHF zbZQ^IfB)6}GcWq;Q!r!ek@W7Tzb^;%Q4_ABZFxR?`ujh)`|;iJ3w8G2{rf-r<-hsU zZ~p49S0%l9m2Y!QuFT8bF=>>MM%~J2s`J{OuCA^<*v5mTsqMa=AD-67vP^2s^J|*z zP(E#S+<)_H=C0}5c7FTwU(i)~@#2T}{&!~m@aiS=;M}Lv^{5fOLUy@s^QWijkoU`e z{{FiU?;h&&d04xD`+R=#r+r^*l|p5nCeRlNw@bNQwjX_Z_oM5FSNpd&sZ2Vi%tym? z`qHlp-+aMeu*DSq{oDWUT~3rI-rw$UrHRORdVQ21{wNOg^y`1|kN%5ae|W^c#s2t^ znDca;I=CddJhjm&L4{MW^2oxnoHVIkP5HD$*|Vo*Ho3lg&IO4XkbH>aq*F2(e7I`; zqS4We5|=uLhdpk2uZdiOMiIBf@faYeS`1bqE@0(+WU4qUQNpCa`$sLd%~#QwwQwLh zo8AN~dxi}elz2%HccXAJGut8#ZqX`s5NRbW|MG>fE$g?Yp2};iADnf z9O3FJvNo^cBt9K2O%~yl*xZ&QEsNy?WuwD_<*0;6iPOPULN&@srY9V(AVnG|5v5QK zPJs;dpblC$>dp)q7esXybFhooOOIiz+t>qP9^TAhdo54TZ{M7yZ|mq7V+=xQAt#N9 z>6n9QA~JOV7>!Gwz1Kc`s=jCEC3`qDgslZ4h(IYh3qU^psV>jrqief&1IG*F=Xn}Dc!oJQ)~o*Tk_qQ%0i<|Z6vh{=Y%z;GMciq zjvx_D&!V9)w5ooNZR)ll zU*PJ+xG55N57U;p`E zz5V+AjaoU^Io4?9<{q?PQn7%N1WsRrF0qJ*1mCr}ey*={mQ^55M{A z`Sptf<^F!XzyG$4^ISfCywu*;`IArQ`F4AHugj5!%W;|06!y68dwX~|9G2ydj#u95 z)5Gw`58vIty{Em6Zu{7_OW)qE^}HR~{`k|YAOGO$C$E=RzxP9>v;X2Rw|D0@%|wdY zh92egzC-4f*fBDJsH-GQ)?Jxh?|M|cF`u)^B zQ%EjZrBv>!ntmcNYY34y z*m>`^_rqx%CZ8!HLAWbNb&J7hl%`=~KCp)l`IwW6cT0t{xwui`^F>?Z(S>eGY~(%m zPTtvrhs*Ye`pl9c7HF8Vkh$a#L{hWilFe6M8@YKs0~}^vhsQfLmfZWtfY&>8A1 z5?UgR>J}7aj=F+Dq@D&(WaSENi+uf&!6=%evB)gwAn-IrQlSi{U<76&f;JZh11urO zAc(2ej)1xPGWl?)$#RKCZchQ1oM{+Th~aFI0H_OGr-P>$dS>k$SF?bPl0Z_t8h?If;~3O@)L@ zXNr+pN3SEI(P-UcY^|`*OWGRoc`Ny-sKFXINPlEAlaEdt?#N6lTrHSF*^GhU$`nMQ zXk(yD8KU0Z8l^;f`3{_&8`WKRbPI`5x9-(!O1*QRk6>_`X>S}(WdX*pKA`NA`aMTX z2HwtMi?cWqAM$9qC(4@Pjj;8S6vF+HdkeAfhFBa(jiPG~6DiRx_<}5m$`N2AGqywn z>WO7I26BcIfqmZH#OiIF-+YIO zDbbtn-qjwx-!Ipn-OQho*x_W$d}wdZz3oOcd_Vl)2RFx;ZciHH?z6k=S66iY?epd7 z>9RjO+xO3p-#)zk$?ICQ#!^NXVt-dweo?}uT z-0z=wK2^OkGpE$Y=qkxMJiM;ast|ZqwE7Vl+c~4};3N%#9#b))NNzCqi9w_lqRb#3 z0pXIwD#&7(SEqE%3E*%eVr3XI!fhCZJEF36fsN{WW7=pCXF%;D@HUzO{p)Zf!11ndV2o$DLQLv=1qO1ol!44g@G(A*v&?b z@KGVVX>DCn(rI*1oo^3w@0O28t7i#tDcJ(&in?c|ZUOEqiI&NIkkUK}XNHV6OF(n8K^9MZJh)*U zysWD!ZDZ>upkOr z2?|b#ill*t5Kf}pDLPq#b0CnWzz8BxCI*;68PSP$Kp_Mg2#y$_;>5uv9O4y0-~^0d zBOnVC8cbm;xOgDKOcbn$@sSP3Av|g$YoRcv9UjlC)aBs$`>2$GWc1wVg>9tK;#Tcao0bPsx^v z_583CmO8$jZg1#3dViO1UfSjH@ps>-9H?_X>E~bktwre5pMLh@6SOlhIDM<5(d9<-zJiMB7%t0wROFy^0 zk4Q(KZ(BqgVbjc%$b+3(NR$Z7JV`X#DUOGLa+A;`yYRSoA_t;Vc&6G+8Ht26jKXse zxNqKeCyMT{N?t>hRu2cYjYc&pfWv$A4)08u*bc8x?A_8dMx)Cad)Kr?o;@5R z6hs)@Mj*$OU6_@?;yNS<-cV*TB^}BRJu#Tss5Ge?cH^eFJY%Z}BX#i(&n|<6iDBJo zAKuUG4hU$#9et0Us;d&box2NyzWwcob9HCrV+k0N5qS^fSVkAWDJe66n zcR8=Sp_YRa9ZY2GyTgK$W^OEX&=wZCgfDd;$Ky;+uCtko6KUDk{g8{BT8{znDN4S2 z^3IXc09ewZSB29_=Wr)@WAq-rjikZTU^n^Fv$>hYs7TBqnh{O|4D;HfB+f(P7{gMy zO(8PG2KB)a%r3bkOtxMOR}cl|F_5W8??&NPh*VUVBq7IEDHoaKP}E2ELtr_wh>kVU zXpfJXM;bjdWbZZNd0Tqt-8#muN2xticg^DYmb9zyOiFwkph(HFlL6!|Gbo5PL}+wa z4HohXuoESqMqCI%!-*7J0`7qz26E8i0glZ>$*1se1fc>P11{nG@gEr^g^+YC-ngNl4V;>;jknzwvU&a3>Kzl6Z6%xY10)Eb7#`o{ei0psOSb z2B{0rObJPe#jZXv2yu9jb73mI52obZA&F(8jqLq%4Z}2JNypb$^UE)z&~JYB_Kbkl zS%%1=r-?wm+q%kbn<1d(#qDRO7q0><&v4ndpt^2-Uo~>jD0z`te6z3r;_a)?zf7Kx zf)*{ulWR<+u=jNKw#%qrPuHh%oUZ57)Ao3#XFgu}7>yd*ynpx3miGFypCGki{rTH> z-~Q}h)Inoos+V%O`|$PmTkTIzA4c1*K3~50(T`sJ;L{iLKCQob^Sg)l`}x_|)9uxu z`RS~0-mZQ7@P~in_y6V}{lO1@{Mm9_`aX2@J?b;1C={owQpPlktrlE#QOvJLhSm0~ zfBerrJaAeTKc1*0A|T}Wdb#-i8*)-XXS;p3#?B)G-|p! zUh1$w-!J>agLq5JM8m`OJ{>&}m_`i~69Np5&W|-Z6IBukPD5`1i%dic5I|gmb9TI8mtH@*g3*JToKPFA?9$XNER2!AzokiDH zT}L8|X5f6BJTudzAvrd4-*Z?dm*$cu zcto5pLIF-hmX$}}DlZOhd9lVxY==githTh)EKU=vBN9U==)_rCb$F0UhLEL8TsZrv=?f!$<&)$OLz#5Mc-E24m(jLV;%*Mx_xI%M$&D zWD#JvXmY|n;L(l3qjz#s?m}jhhx$O>3DG^lM(mDa_IL*3dF9 zMX3A3WjzZdm+L9dPy2-n;-vH8#rwA_*b)Y%<#1Kv+=lH8D52NY(EiHP^y_y8Oho_F8I{lEVI{_fB3 z`R0gvrVnTA!77KVeEi~c`=9;|dj89Q^uPMIzk25axr`_BE-`T$S4;lE4_+@bb;jUh zwH4w~g!{m-Njc3qxU{t=@`fT7NqG-Du*}v84aVDg5kxSVH37wxnYU`zE-NAFabeV; zD1G%2GzRuc>{7%;xIgnU2Qt>jNGXggL!>)~I|XelgWR9K}kZVga9)z z`|2(^RDc93f#H=M-KlunfF)X^wNf7pkIY089PS7kUfpa&dx8~j&*Ec@V`L8_A5I)$ zmG>q=j6mN#7VJHS)3Xv4W;WI!)HWd3&Q};>`HJRinisr!O;>l4i6#ezOeE>RaZQ{( zi0uiM!WtzVI>o++5#b}xs8;x}^7CJO{eFz`v>Fk>Nhn71k>*35vN9)OQ4yh3_YM0t z-DOS=8Pz)XTI#czQpgx}nAzS2nweT#2cs;rxeOgCG1aZsL8B5pS`&8~eyPr8{c&_o zlm7>`u5g>KUUl1iNcxztiS{-OA?7{;vF%0Th6I%ZJTu7<9z2@vXPv^w8cEY>roQ>0 z=!t}F&tanUL@;<5IQEU)j3){X2C*{Kqlly!o6*GX#YXZLrXv!}m9*1@X=bOblBERW zKyW2!#Y9 zA)I0(YveOg3nGfa{dw!po7?UqJVslqm}QbP6Qvj+gNnJ7$Ubu$%}hl}vyQMOWu5G4 zvoSUcJKhXNtxV}u$S^h4V~Mw(7cnMx1SDV@Y{52>07XJQbPg^AVxGe)13^bxt^`|` zKv;BV0h356FbjdUXEuZ^v4MktQFb#@SBCR`@ix+KY%bH)?bWLn)9ow!?sre$y_IQ9 zu_t$h^oG_yZlhg|4|nwK;j6EH_shSye|*-f)B5)P)3?8Vdh_9ay`QfNIWw@v zn39$>pWi$_JY1*~C`3-MG@f_&xPI~S^x`FF>5u2-c;jJV)b~*zpTL|_4sZKqt(SGP zZ$JOZPfJMay*J#yt6%;6>!%Oj=#{?y{XagFLd-DM6XO3XAukJ#?XdC>C+!D!(gAKNE+ zL7qo%W@>y0@*wWDf;x>BUeOiXJ2Ww5@*oWGQDPuz%tfZ4gUIaM-lEnbPbfjjN5c92~V@-o5YZ z#Tcd}7^8F3oJqRVS#FOep>B|DKnNT9czU#<=A6~$<8qo(2uz4ga6CyHWGzZkhde|_`(brB=tqj}Y;(c@5odrHT3I#@AIatza z+eVUd3{HbYq!d%AMACr>fuipul2D4(M!BoH&NgIplQ5$|@CInnt7MY}V}!YNn{pA~ z866NdBLH3y258U}DMikKOniU@v``EQA`FTM5^x~^B#0U$!3~-b6l`$wFcPtVF$XF9 z;{m7=J2(RIQ7RB*?t{aL8$e7WP>3AjL?w`d7h-@20T3$=1Ym#W)hySb3?+$ii7||@ z*|e0f$QtB%t~O>)4o{;FVQxwexDAUb313#8P<#alav-y2&pBm~ji7`PoIMQ=C$Nu- zLe$_|#7qD(i;@`zW|9j#JA;@bs9Ormp=XQ=^MM>S<hJlETD zdhFa)p!L%Yq@s z&v-0Ztv|PtQ@4q+af&+NoAE5U=AeOz)2pj!TiPuSS$(jPL&J=X91|@!)E~(P@syx3 zdMq)zhv&S$B|VU>krbnGFuCJgyBxGPOcHVm>&A@cFb_(g?&y&wvPR+r2^d7&YkXui zy25>cU>DCX`1yfqR2r#M(1uA})ZHl^!zzv9&PvU#P|7Suc_M$7awBpESLzG$Do@`G zcG^H6o^?uI-hx(o@j8F@8CQ<>jQ8L9x5FO7QP?`T(#hQ;V4hnk?# zX_}n6?>1Kd`B&fGPcv6HGZ(}jVR@M8AxrK4>WKGG9z<==EQv#>#m&iT!pLc1w>G+H zBK0;+(pQ%}&`$fsbP+8}(N=M8m)T_zUI%uJz3uQ)2p+OJE|0riUz7J>x;n~-G}ZMC zmO@dEM5w9<>Tg(!SH`}{H2HY$o#db%g^47#AQcD*qg?T5U_xz%NkBGMNi%J0WE7iY z>b({2o9j`?%=W}1l5iShQzwybT?d$aC}Kch+alX@Pnx7KkKIgs&;U&w&2wyF;;nKn zNG_v}NX#RHP*WujY$h`5$Xs@_B@l%}6Buj}I>1wSr=;Kvs!UV(1$u~Y}MHc`}(5N^*7eyG^{< z@bkIx!r|Ngo*d}u{{2^vPvhZyUNWw~_`+K!pA^wAPkEZ)IpwK8e>h&vNy=q?s2Y(= zY{QD@<)&@VTcg|8FJbF+OeOu{{crxQg05dK?Gm@Q)5ErsLLDfQE@SnJDL;Sv{fn1B z+0NbSd2pQD`QiDbfA!U6yJY(qIkj=V-lj%Vq8ERQuOBehDKro6Ojj?CFP8LWYNs@8 z9OQ5;<8k`(bNlh<_0mS&x8EF2pC4YlzM78vSno|=K%Uq4{TKh_zk2uE%jxRXB6xRy zk1|cmX<6#@`ug~v{AaEG?7#fq{HwQXUW$&vVVez|Bq&H2^I{0h-DT$IIDiMV$)k}W)a(w;UPNvUCl;HPuY~4@r z+DACm2UU=e5ThB=1K7BpHD@D(F|8YACrUxxUC9DT{cyvN-^T#Tga{-7)kwvo5E_}; z{DLnR2STT)4$W*O{QJOdUlNg{uhb6FE0=eXP7z(SyNJdnL8KE)gf~xfv^~Nh?A=xO zkPIGJoP#Jm0|foXOk~?Zy_iq#K$*+c&*{ZiTyDqxr9L1kP>tGy_so;o z)AxRKP_(ld_VtNOV+w^D`HsVE<1&1XQCE?lf8EX-oQaGnh!*kgrMQO@q<;TybmJJ# zNinLs2FCD|NaqzF9EVi>F^8oMVVz2>N{Ozvs+zFVc4!9YhL8o4qkHfM*-g53|n5>8W8=OtP&WZBAuix#D*sM{QG>B#}2#7$q5o?fu5Iz72f(J<8A|LOF z7zSCwb_a+-9mq2x93PX(K#;S^fBy0h9cGQsI%qGe{kqT>>N?u-1x1W7>yt@7R zXTQFDc!#KhK`l5<)R~vW*Pq35ynkv>Z9B8|z1C{a_kCAfpKd<=$&XlQxjBhU+r!(& zyKyc>>()r~sGSp}3-t!`owh7IHVSX;aoE16>(kBM=k<9X^<3ubl1ulolv^LG>Vz;R z*oMB=*0%Ze;r8X{?icTk$?N{SowvUE`SH2lKgUwaa@C(MIyIWFCrlr{`Rej~u{t#M zzxCzv<)^ROcOTx}@9SOzQ+e?Ri@cd%T-{#NJRj1_yW3;CenHvSR+m`D_TBc|fA)`m z`)8Nsbe!+5p1*q<=bWdQ?{dB^w}0{{S6?3f_22)${j2}>GK^yEiPURT4q_Cut3^J) zl5{(r&(Ckq(RQQZIY)Cd_UpX3wTPGr11Ym%ST0O<7J0_LT$Msb zfPhB@1EkCe1RBlqfxK~FIXk=v{sXFz-8~rlbL{w7okSl#i0VoKZxt}p1ztJ3yFg3S zD&{T|v$ML4jSE7qwSM4kcwS}HcuIJFipScYpGQmnp1hA(32UP6es;e!yM#ZQy{rCq zx99Gg)5C}jQ8xplSG(-i*7o?YzJIDKlLpbCvZN)mndgG&o8f1F_0=!FecmJ$0X5Sy z1r1@Llyj!h%t_UpSy(A3NzMywn9hfT$2er}nx58;TO5uu>Yk>>)(b}jaiWq(TU+-? zZdEix)SK0g;V>X#P)M4V*~jajeERx2QHtKnhi~7iU8Z@d4;XXdkX3#gteI#YJCWKZzND5AI!c5vWJ10Nx6B8 zNMvCtq$3rM=DZjwpn=RnuGB4CgmMT0es)u(O3saisCzi5a9s_GfD^3K7`uRUO4Cun zr=laBPLeio7dkp+O2kw`6qHCNFf%jA;2h3Cb1oD+ToEIPLWF!UaWE4RlK}D2^h*YC z2r@_sJ2)W6h#_o2NDyk9!c%$FUfQ&2T1Ly(xn9aFfnoPnuRl0LDl zh{f^{#K2fe*tqq0Pg$sTWFZ%*fd=CcwuT?HZG(?AT>KHHv~}Bt4sxO05FJ#gU(8}J zG;v;w-W+c3(u>#64{zIfHH%VLLgp;)p0W--<-3V@meTeo8_#uZ-FF!AGTX}^{>0kj zUn(@ zcsfj1i`3174h=MMetdq+r(=Ca)XRs5-+l4<@srPgFV6MN{kc(e)O@bDuYMTrb_pYr zIPD+4FGu<04}SlT&+%8k`?GO=etlDZ^5yGSukq&L^tes==7{`RNtNZ(V|0meIF{+) z8bL~H%k>cUK#%{^|NEPN`K}xe%Q4CNK*s4LC8y(|-G1@Y!ykV6tAFu-`e%Rd+snF7 zI)iBVri{csG@EVfPVe6MCmQFy+NA@ds!l`+xsHqPk5m@6Jt8LWTJluNJo(cZnM4kU zd>$!sZ;d#yFmq*9xwX!mL$FehX}(26eNwD z1I!deJ$%3igorcu)ss>e5h9Sc7NsDZ@-@N9oN|C?rwAkR@Wh-cI(e%m#+NMsM??q` zxo6s+DW9yLBRautN@St?K6nU%yjq7D6SlAs$Q(eC!9?c7#FDTQL zJuX*aMmRS=sRNnldG|hIjNXFDor5d-q4bD)d4Bis&>jb9Icn1D7s{c;UDZb2qqL{@ zKmY1s<)STOW(yjl7STGo(AG_OM7Ql&(!MtqAy%tr$%<;dJl`%;Fwlo+NXlSr=F>1q z2*xxWra9gJ_5s9Z-V8X~@g&t4aCbM&C(VNe%7)DcHRIX0o$n%iY-_s_;UqjuQshCS z#DMb^$Nfm&X)!XMh%o{u_O;6-0!H&BPZMJF;FJX{$y2Jh39?8$pcDJW(a*X||<019G@m^jR12JN5&QNW)` zu3$TLI2}nE0>l|^#tNnYK|p>84B`r;@WGq|E6GIRWIM1hdw3ys5+|ZSA||pmaANMD zq30$5sDw2tusR~A+y_Stwz2Ojjxw?9u+EaDwF^QWphV5QB#j!LTr*qtk+pV;(PT*? zN)A#F7_xv45*rl41Q!`L3L7=r(pbp3Yd^79%HmoG0GdaMdhsj)4s7bFvQuMq*;9?f zG|rbM0*|rG?Kzl(wvn%yWtu*_I{om+-rha@`osGEom$i3J`vACeBfz5Uf&d;1^n#p zy&|-f?nI*{id>e5-+lenFMpP)Cc< znt4{pq4R$A>6hnUy{Tg@>6+H}T&5E*kC%tG1vm0>7Gn3q`PbX`+n>MsqyPD5KmCtN z`uW@Y^Nxq$Ip3c4`xQp}`)~8j5AEUh`DcG|{QV#P;6MK9?Ta65_YW`1{U80{q&Imp zetJ9_KV9fNcF^yC>gQ*_IwYOAKj-Q-=a!!BLGHi)v%mUp-stIgJQgHbzi*w>eBk5j z1HSl_{?6at-~ZyD{_lVOG>9abV6=5fHLh12wPkd^ZXS&i%dJuWvA1R21Y{{k1+tUNbE18Z?#**8rS&wGl>9B2@ zCgqVa?H3$UHG)doc9Mf0J_ark;f}21G7KRSA=r!(0h84aqS;x)0<{qv$`m6s!O6wV zC*@0W8IrQM$dhkNO3#fzgwrgho(5Mc6HEqzl+0*-nM#qU+>qa z=Y1|EXG!y+KlkS$>)WSGW1r?Fbphwx5|c0u30l=!`^7ikp1bm#dTTr!IuexHrYRlD zJiMO`#CBP?XCYdPIW>`!mV#ehqeiPpfWU$%BUW}yMvb_20%Bm@K=}@aZUhm`}`=(L6ySi&XEtBdL!v zOYN313C_eYD;Aw&Be`}u1D3gVca_!b0L~(tM`opf0gGVxu)spR5~x`>KERr_RP-6; zH7kMzc3~2qg{z2f9-sb8v**z*mG48A5>Mwvim+jYvUoPW1m{>Cc)qJF+xAY)$UI z_x^@+;zR@@fCP}4m04L;T`YD>l$m6@qyDSRWHOn|G?y|un%y;54nQIS z1OgFphHu#0hc)OT`WN`!TJFBq`#ct+mkR(W3Uk*qO##h@QbkChIfl83u+)4 z!XZ|V9kz}@Bsu&{bUQdlTNAT7Is%NAwym0ETOlVu1)M9T#5m!!d-?44__JS$>BIN! z+AnGsaPIT1csI@S&7NO;y4z_iFWc$6(Yu%mrpt9>g#8k?&ws_%zxn#x>*nA7&2K)r z`z*BXZqjC1FDD$}=xM^^aqkhOXgpShsxE4M;dv@FmED{UDKB&wH@Ba;Zd<*UbnCs+ zuI%{b>BqNa$&MhKUA46Va1Z$VfBx)?KYLDp8sGi+aM8o7p8!wRe*5$&oA#TD(|ohh z;psnq#p&|ui$DJKPrp1ae_CFX^tEKdfBZYPoBho5k=Q_S9*&|rosA#ulFo15 z|Mvg&SJcz;BA5N{^f(Nu%$%nk-yNU->d*6X^LPKvfBW?ZQA+tnvNK2m@{*@O4FlA; zwtBvq7L_H{417MVDe+jOXv~Fu8;BN(I9QX4N2{ZE&Djeu6rOh_o!1C)WU8tYk;``N zcS-wdnVXeZZf>q`ohNzf{){M?+(}gm1E$%P$ieEBmIEeoBQ6IWY?l+cdVWsZhcPdx z0~{ipMh8?Pu~dkHY&a(98_mavYs>D=3x&m0ppJ;-kWzPO zgSPjBcC>vk-Ky5h_rL$)o9n|i9xHx%r+GS%oM@M|6q*-dm}lmB&byKW(j?9R9U7%R zPG7&pdkd_q(+;(=$;Zg_EGfJPI;vCVkC5;NA(JG6K8%(!=hU|*9(}BN$~hr4tfptv zp)^{grPQjFf|6KF7TQm1-rYEM%4G+-4)Es0q0Vg^<8lqd5p%-Jj&D1EUyjLl^P<<# z&b0F;$VL`e*q1JCW+d!P?52WQ!krxq2I^k5Ga1d3ca+hUu^7>mLp9b7$~1~#CC?mV zKrfJ#GPlkt6tn2?2pKjaFJ?yA$}WK>!b|U7Da}Aa8c502T{)oI&BNBE=obr@nh&vK_VUP*Ex@2TPj6eb-kR^ZsGKITGh++g1gAMq&_6Y&V0Ty_4 zI+3;rfvDjViiAIc++s9G1x^qhf+C8C0tkTx07L>bz=Zw~G=l{|K&(KwMCM@#1ZV(C z$;^vjngM`uxD^e})2?)ON*r6u&a?nFnVB{NADsltsU7-47Hi_#j%15&Nc;6Jcv7gdIqQ zejU?ov>HG|gok4YS`@Lq%sx_)diUukcYpS)-HcD)zPp|t+Vvz##RrdWi(@pO7mayZ&?YXxrN=6#}LC@Fv-CzEXZ~rh}zL;_~A5r(H6Dpy=c?a!?H)ji6XhxC4J1KC@s12CTsh;eiA)sUj~6vWs2uqdOFPbPU;| zF@ahZVif^{1fifUaIbCc0in}!H)}wlbv>;go+A8VN>*mLl|;q!G>fYcgAe2j81c08 zs0gG_TOG|D!MjQ6;{vR8LmE*E0gV(q&lFiwVOTRD2AkdcFsqN>o$te^-I5KLP}xZV zL{D;@SaiaD@(|{|Oov-=RiA*HTMaC~`~Ka#)3&)kTQXIxOxm~GJQEBI#zp)x5>RBA zMrectEo8-|XDMhUPXq@j4O5#AyTsVBDod%OrztP4$#_7@rEkq@4FS2q-OIGy+q~E9 zBtk>EOf(E#kyrQY*65ImgBQ*Fed(96yNULcn8B{Wvulk^)POl#F*9NgW5vM(G2Je% zhSx3h1SLWf)HQO_n2;Zlc0L9I06QUD5YnTsH!y7|4(4%fK|2x}0p`YzK_j}7%^(V_ zOfn)f`yQdWiO-?cSyeJ)!ZBdp5jc8VdoiI_9WaBQ!n5PFInLw)%)H|C9HlZA0P{@b z9DzWHUPEpW)iD7m;-Huv90(m0(IGGZINbdl02pU9aWq6V0>lhjgD3C-^l`(H3D6?~ z2f&QJc@P34bl`;S;1fg($`Ou{5h`LZaFB%~Qij!tRV+CGc(*y1R$bfXp{ZnZky6}h z!BT676uN!%Ca_X2J{qRJDc@fz=&M10|WzY$m)G|9AM<>h|$ytLct?^L~yFBSyk1JQyWj4@akk)qQmHZeEG@U z>*wY9p?~}Lm+wyT_R2VXc>F_=M-KD~^)OoDcJId#qgTevK7<=ZWY3zQWY*Za?qs1JYrbMeyj2=8}*r zJe1=NKECZPR2wz(h4X}ICt`=8hP$a>*Ca5uv7O&D9)9@dA3pu*pMLVkf6;R;m-lUK z<#>Ck=Y6H`|K^|d{A4jnnciRV``^p%@xB9(fJN8mdA!CScX&_pf34GtJkPLCk{&ho zIvzUB>yPih`@8dTD!Vc<+uQd(&C4?J^2xk=eZ2dVpKPbE|MLI%-+c3aO_Tv6d#CP{ zB2m!gnl!D;f!0*q?ay1)ms!yLwVuBp3(aTWr;|`Z9z^j7*cEQ-XepWDGLp` zk?jq(2IVf?C2RC6=PyF5MLmoYY9(t3$0KAa^SdjPjh%X>}JRGQ_1*k}Q3~dCGXvV2Sg)Jm=W`Y#v=4q^*wwBY58KxpO z9~{SYIN(4G_dU{3B4ch5>X98Mcd^B693ou_(8;3(5gH`oiP{sC95EzlD04pHxCJ)G zY%xSNVcyuKv(f~98p}&k^=^gj3I~HND-XhH360R<9kFcJYmO30HHfs#1B}VAabyTp zlo6T}(7-Y0Qhj@J%Nc;-G>CnxaFfXawiTZX0HSq-eV`x!#1w)^8POr{V6*@Ns0b21 z5CFlA7mObGk^UBh9$e5qI35r_E_5a&53~pY>mO0lh?!tSD4+l$B18xvg(0FLB}f2W z5Ddcu6LQ3GKtk(*95IBH0RRCnLvwUUMF&aWAUrmWDY-SA(YMS528?)#fe^&G0T8yK z$3iA7q&4Q5MPuYcwjL3oMA#x53Uc(o3AhC%KZGaQg%CJxPL>sa5-ShP6um0lM&tJ!Pzy9Hec0K=o4CWYalncY? z>Gq4`&BCT~xHBEng=>WHjE@vv5kk{{0Bc@^0S2@-hA@}ehAmwSGUuz zK0Ex2KSmtC{)g54`LWwqb_`oo)w8z2is=Gs>b25*saBSctxIkwByLdFzs z0N%YBhLc%NAcfEjotur6VGfnV`qcKhI1-&s5gB&O7(6GwHiE#p3>$SdAw=`QK(%IT zS{4sSUHdw(tv+AZR0^fEQG*8a@jz2SXynh$Rjtr=SEpvve3tuD7H7f?(RE=|Ub*7spTeF#~H1Nb|aXDAy$4#e0fG0nTXMb|!1cmtX(7|L({6 z`OR`TT+b)y)BY~syg1(ci`(PB`aC}?Km6_g@UQhKD$~fOG9T%>_V7FvHw8dB z6nnaexg=KWR*Q9;CvMfR*Ygd~3UL&aWe4>V$(qN~F1%l?cVld|g%+AKXGRE!NCH01 zWGlGh?xvpx+(b%IpEd$&*Y|}=5A%pLrvUHf-DkMA%p-z41T%Uac06Kz?*W9JWwvZQ z(5-7J*%aNu*l%XCN4w93Xof$HIWKI+;YsVB3SZ=_WV}usUm{Wl?aiK^z z83r=)l!3E(_wT+l2a`0Y_youa$0lWleabZ)HZTTC(XVFn`^Rs8{oQ5Qlpz^o_nw!X zwt=`K?`iT050_y8lMo`c#DyqJG$^doOtw)VnQg0yl8MQ5D1@sTg@_cJQ{6P408TbBv<% z;$0!nktQA$i~<;FgwmiO)Ci~CeU(si4qyih7BqD)j7mU(i4{R8rG;xX0f>PDDD?5GB_!x$0}+BNuz(Z9006>)|M{#4Cv#^Z!~p;T82|uV zqXYyFn~9*Ic~dFu8=G~e)OE$2BM^IQj9S;2GcqE8^8&c}boA4`mS=UjO}q}uvu`v! zWkVN~z&2A0|JS{j#3l1LKlr=3F;8x5t#r;qbg(uG@Ah^D~rGPvFNC! zum4MUqZJh{Ic|XVT5c!&?AGfA)b79g(F+`3ejeVKvQd@v{Pb>B{hs?M%d_cbO1VpQ zg-zG>>;Lp-&eH1n=8J!s>a%bD_Af`u^NZKdw)@vV{mH@l&E53b^QQw{%6U_3*0ZI_ z#<_FhzyCG<*`KBT7do6`Y)|LMZ!hou>FMFeKD~T4aT^;?N8UeQZh!Xqt33F)f4qP9 z@BUAJ|K0mRm~hSrxZLe(uYpSv!n$_KLoC)2BU^6MvNY-=7WMN)j)-KY8AN7_VW>b8 zPed2Nl8f7Q3u2=zmJv~*1du6C*GtU_k>;jDw@SyuskfttAF?#iG%pT7xDMGRYe5qr zVRy+N`BgR+O#+%mGqL}Bcd*)I`=Hj9$bs$+)K z$rZZmwBJ!zZ!l)q&ca{@WG7B(I+m~v(3yAJ_cWIn41#+?Vo}S3}2UrbZb&sSzW>v{dOVKM8 zz^G$dqV`JZvi|rthP5X1004jhNklA0vfrog&#} z(is!E4kB_OBrGWN&bN1}quIQWBXa1HkU*~YzTC`3`;`zdd2fr%G}Y_l)%Y-MeRy~H zV3|EO@nSW(+xJ*pQ<+FzOj2aC;YbGsf%|4iMIG zS^ySzK{QGhcnffbWZ-TwBYUWjV5o%`qz)eqC;)&H_$hD#4*+)X8r}BhVbEA!0aE3;-7-27qCL$!T(JktzJr zVb9}gDU-o|M1vq~psoldJS@@J?~0ExiHvjC*d2S?XCEVtC!8n7Fv}Qf?vRuR*)7Fz zwk9|Qa*P0pFyy%4lyir`<`OW?NX18IY_Lo;)WgF9$vm-FL+VZoN}zQ>nzGv6P5JVR z{a<{M&)=SYbN}|;kNQ|$of#d986?O2`LR4tx|Au8(^o%q@KU!T^yhmwY(F zk8gGDEGR7Bz55~O*^yvZc(;orQ(n^CbZl+A_iNkM3vx=k{pIQL$G1=3P3Abhe*f&n zulgrH|J}Q<8RPDgSBKY!n^E_uGw%|dF=eb+%QLlgh-~EsO@GZ%1hDIb9qq*sn3A%NNl#`%i z!y>q$nx?bW+vRXwFO%S=LxjaK)P+Z|kkdZWbDXnzag02m3-foKUSG)?e~xV(l^7zp=E=zE`zkap?eElx9i`6Aku z7dN=Yc0vLAUi=(N8VOxPO7^)rCNodaND_`q!yW3mcI*)k-~RahBesFe9F&;AZOpvX ze&RWb&bF?A&WB{Hiecw~e$J7is6eWh6J@FQbh-{sOQ>^#MckVs;uYtTWjviD??kdb zwsyThn(*$Jw>1>JAh=Fbmd)w+y!`y`1OOPV3nWlveCV9A^W!Mx#=p@U(;;b8#@ zXb__gXBdGyf{VhDK_H&c69zJ9WJ%qupM80O(PLD?H19$Kjlf+JR;4|Svn4bXfd33y-n*|U#csC&!U4=NH zb3%tmsLrE8E+|GBkpRUIJ!FO*L+#*GAOJ83gWAVA0iXnV1d*f&W)CNWxJB3yCqqI= zJi0^7nIix&qiDoT03XxEUJ`T+3a3lgE zAfDA4CZ%w)0ckE^7;{n-fK4!$-9E^s{n63QBej8jgRQfYdaze=3rBO+u3CMB1*)+i z7DlFsSc5D)#87B7w2pybDj_TmtXGg_T_H3?DkrRxkJtzF-(RH4^L_DA_3bhB+G3*KMmYI`|M|Z zZ6cFJ1J|5fz#DB_8`WEY{P^vgc70N8WlC9C(uhcT-s^_vhv-+b!N^lk?H-Ni(Wm<# zzxMI;>gT`s{MAqQ&zJd=&yp(7<+|E+1E;<54u}H`Tt~llCv(#e>fOiI&hNhOUwwc1 zkAIyyA8rKKOPQt@uk*8)$JhV+yW8C)2fzRA-~Lbk`VY+vtLA;4Mo=H77>40WjMjBj zr)cd`DGi6N%^x0WL9kjO=!P?Tn41rE()H3h8552V?_pF4OC_@^V8zCx(b&AeHr9*l zh8UP+Z0F&e_ZfR%4h0a}*qFq|Xs4#p*LCX->qy!IpnGHla4xR0(op~oJT~%%w2<^b7M&s`G^cU{vLJ{u zKoYR4)JG^5Vu6!$3R8=0!*KmUHbU*>Iau*o!6hMHa9{aVlg~DKai3|-x0Y_I-;Q*A z;&PR#lb$87vSf;izCmo>SMMuw7_GGri!v2XdT}Whf_}MHvp&w}%YXd+^~bAPIE@k7 zy}FU{P+1N`onUY=PBKnIn~v6FG#X>S3kfrIa)Z&IE^X_*k0voDhC#U76@bXz^SaTF zGqz}~Kx6Ce^a%G)O#OC0jdP80mZ=yrgDWQ_cJpN614dKf*|0HiiJh~9515l-kgI;& zRmUmt=zc{sOk%@EOpL&A)^x+-lxw72S61pU%{m$>LRK(0CmJT3%Zy}fvs6PQ1jZs;p2$S#1mwMl5U>y_7^vehCW^%B7`26U&O|6N z?KBY6jwna2(34=o*nk!w205TC&;tW70TF<8@Qz^tJrIHz0s(5cVYGk%>j*tSAP9W~ zlE*|?00JSupy(7HIkH} zkz+V;D5!fNPy<9WXH&x4paMxFD8wXghy$#LKTd!?1aUZ4GzuNy6x1UK+C$I+u+tHW z&nhe@GNQ#b+0cxJ-!;2jrc0|XgZ{OAR$uB1Z zy67g7Th@oS57vj)so!rv{Oo7HIR5N)zg%YLRZq>T+6JD&&@IADSjzG$2~TMjLac*a zhI=~hC8e!i^0L5kLmcKok#Hh4L$PaLO{aQ)dVF{T9>|j%cXT{V&tJ{+O`4`s7O#Cf zHw4PG^RBU_(~rLo@B7}UMP|JCc19y{MYy!-zD`+xrHcR%u|Lv9Yjh*IeJ z(Gzv>5fdsni_Ei*pq!_&oAQhZ)%wuRyVSM~iXL`TKpKSJU{Jbj8ci`1Eqemf+IX3H zIwA*8k&b1VXH0vi1Tn(gYvb)vwu^2J!Jt=|-L0+L*1GoLV~l#;$j2JqN3*crD+Gi= z_Y!_;>_!L3BP8+mMQ#8 ztvqOWx9bn|lm_JE0P>2uD z!UJMdoEz`AY4_E)?|*n&ERb?SnQ@Yi23{Jq=%Y~au!sZ*Ndl0P2N_WcCvuU@HfP?K zX&XlKP8>ipO_niH*)z&$7MY7_!YSz%xN(^P3nyOoGtE*@W|8tf?IChr^2e)ZlHuS! zNm59ahACBlc8rb?mfeI5@-RGfa?oKU;sqHTipc?m2^{b!-EcqvvUHdyr-Wp}rnW+7 zqAsBvU=YAJ(P}d)G!u5AG+__kQ@wy?Y8)gfjcpj!s~HR?nk*s{fOeo*LkB_%WL`sQ zL=D%CAT{3rGQh;kA|R9mbgX0e)+~_Qk1Rm4$fOVnIgkgEQaWP`#zIaG(T0(jrHu-?y|sSY2G$eTfN1rcU5 zM@V8E#<&Urpv>ec7;*Wz@~3q@c)r!UXJdbp$NKQ~hp+$kuit!fIF7ec%&Jp zCC|@@P?no({eHa!aYcl-t#!pM%XWWiQ$I}mnX>&0 z8CbQ0;NkY}?$yzCJzt;Zxgbv%<9d0I+4jqhFkDBTlQ!jP!MC?-*-Ndu{%P*D}pPvqQpYZ;^etUEI z{cnHs-~OBb_|E|tlN4&T-#@}wWgXy()d3?wNf1VzCzcS!F|=Vwm~4^4vP|=31SiK? z0?-V|R)<7bghdrF7>|N6)OsYtVa?W@oc&^5M>WJ@)i)hX(+Ub@=fso};Ne=)GvhSZ ze3uzv<^(iU(7^}Y zqHG9gD6nGQ86CXwJ(h)*9VKy|K>=GIijEw8sF5;Y8MuE&cQ=%Roq#j66-UKk z(g&aJy#qX5l{_P*+{w=&S|KZFJ7k@(d%?JLcZ|vI-@Q3^O%|*Yx`j6cPc5Ad0 zo!AQnJx-I5imPK^BU1z>i2m+}-~MiWtQU(x;k`Z5NB%&lTOf?(Rshhq0I$#k*nkaj zm^y6NxK;(fy~`b9xVPPy*D7u#k+SPG~f23icq zW)#E|4`2>6+B`C00~9d|q9Wwdm5iXSk_}bExd6Zsz@y_a!T}3nAPLG536L^G0Yo4S z5uk>!g4`ld#J~VVpddg&O%Mjapo3_5Aci5F7zHR06}<;Ih5-X&1yG1NFoz@i6<~^J zh~Xc5OAPWy9D$>uDIkPEcn?GJ5q36*P)EH262+8b$_fzOT$PNqg|9uZXe5LQpx8V? zSy(c(&8wQilx1+Huz-n1k3r-(Mu(Q&1#(WQqwXkL?TXMj3gn$DfscSfd5R>c*|}25 zXrBZ<;zFEJx}sf?B-|`JV|6Nu`v`{*%nIeERIgXP@WWXT85) zZod5d#VbNzKKVo>Usvzz@#*qT4N>|u-z}3&#Br&*96NmCBlRuS!EM6$@{a#ke<9Bc z4te)K{QK{|w*36|rg#zDfANb?UPqa}oPUasUrpa{kAM4D|L(v4_qg_O03)ZAQ%R#Y zYs!H*m$GEZ1t1s^SUfJ&P@Kg#ux@JB$JRrDV`yxd<}pIYilz{4@NW{ zO|78$02#Qnytmq+BnL4d8XFM1=L)MiL!)Q{Is&@pd`(3qLm(R>4wYFUurUUY4&X`- z!32ZZf|C1^{N_OE>bWSJ50CTe+c`u$9{c_lia7?_3aOj1Yl_PBw8k1~Gu$|yz#jL0 z-@GCCJ}vKz=)^FXERM-bhJqGq%md3%3z>T_DnJn)5Reom z9MzIYY}!kZN1Bm$SU|b~g2xjY1P#O?*ro)d&y);kP7w_uqbCXk%tV9G0SVAChU)+#=Z`_)h?EdXBoS4oSE`i|wNPZwfCo#^R5&#+-#EmaYND7oF#bc3vnd<$` zi}UNxKiuZGN2u!`{_+0ZkEi?hb@MtZgcBoJpp*!dvb&kna#IdJ{pt4I*Zu7y>WZDa z2PRK9$G%?A=Z396UN7z^n)C6qPkFTS_owqXQBKp%JS}&(HwQ}?IRipd2i~9zAH4v> z>HP9%fAr$T=jYRD^|pKdtWR*5@8-kKDEf!hAGOotvtNDr>cywgn+-fYJxF%m<6(JS z72bXS{a1hgmx`x!`)nx-7#==(@%buh!Oh`t zwYF`&9bQ_xv9&jglBS!xc=?4Lg!{W6zWty7@ch}~`Lmm6Q#^bA;>*9NxytcRzTEhD z@BIBgeD!bsbzfIvB%TTn8`}xB1__WDDwvry*OAKT*Zf;nxb zjj?aNZ^Jt((#3t97Ip40sm#MHJO;QMQCvf-LxS3AYz$x)NCTHLQZNlO22Z{(F&)S) zVmKf9RCzrE&2H5Kw4-%~F-8_ZMVcT87|Gq)0u5zHJPB<`1VUi$I22zFu+EN(J>r>?5b#vWS4IB3|rOeMu^J<(k&2^a5Chj z?X>m2n)kRwwfpaX_~-Yy$+T^4VUgV|Q*k6K6pjrrXa>muNtuJwl#_52gK0j@iGUEI z8y0K5c1Ej8jG55e!NH-Er@p#|)OBk^BWJyw2{=<{i5*E$^EBy2eZ9hQk=@RQh8mj9 z8i7f-E|3rsm^QvH$h;_Ek|E?o&;dDuL`b;|3r~B*1)@9Muy29vU=lzY))h^og4Ino z1VjWt^voP#DM9iUcpzEHIV@BY@o-usu4EFZ*zbLO6oh5*oaXM3!b<`qY>*`ycVwWU z7#2H6Kq6Dgf|3dnAGJddCrgGeikoFqp6g>^`cy5S=K17Km?tDr*H{z2qQp&05_}yk#I1wTGe$2yRPlpb$jTSb_%T{TC?x}@aw#vrdLN8Yrod|?)~Y**0*8SfU^$+ z1YqCo_J!`4Z`bqN^A=}nvgpn3^&|^iYUo&y?!Npy-z@t0;q=4(h;n)VUY7ClCqKK( zw?bJGTW6s%-|kb$^#QM^_Tj6q1J>pC)$-!@cr!i!)7NPmhgYu;zx?yv=dY$ucE|a) zpC9z}e%|HXB+quZ?C+kMuXI$3I>4awekyho*Y|B5r(ger@^p8TZ>Kir`Sbr0ayuRV z=#TitWm_)|>Tmv+%Z7{3B`=fYBKvun7ruEu&7~YfM36bnGjQpnB=&`<`v1u{zpjM2Qneo&_@)G7yIW&4tsTKpsw}JS*%H z5L0cwA)_nj4X}=We^oUjtHG`;141#nP~C<@Gr*t`IwEzn;R@&kT9q>D&~8BtW??O? zjUu4}+WB}xF=Icu^U#4gMO$5oO(8H55*Al%G{3LKmD3ie^FW*014z3mhOq!l_CNo z=AfCyiCV-JbfAN^D*=G7*hXv(u#9l?7LLP}g^}lkT||LfPzS=Gf|vmbgCZ~@04)N+ z0UZ${0$z_e}Vk2J?_swm{xorB4p%~)^` zh)yLfp3*$61`s&!^2@s*QU$;ONZ=abZXKfZ(aj-7H+NPDRVJfk0SR1*2PlE`AY@?V z3yjQ(VA=pSVkA%)C(1b5V{ENoti8P-TZek;+r~pTRT0liArQ=o16sn}vOj)#*x!CO z+r#PG>jUx_0Sq~_%5#pORCLOcq%22o{o;Q7pK}Jx3|kr=Gs48I@@4#W)I$;PWf_rFI%Pc$I~GlK6x(lvOE0zj~DwP;^))9 z*qy%q>W6>0{L^3m<8S^j`fxaR5$0a&P4?)8tC3eL>N^kTWkCNhqvc9Pfynt+GATejL<=AmN^%uq>?jc*m{}7VH#J2a3BQk0#d9Smc?x|jv*QI=qx?1s99N25%AG-b1VP>Fkm8e1h|++z>Hwg z-DD6b%~K}!Aa$hl@x~o2W>O3UifCkT9*AfT;o(ZD___vcoF+mdL~V%L6Akk~NZ}(W zhz;W6R|#~)&e5!2w6-wU%^WiX1;oH&oPms!Chs3vJdkz_5*jdS$Ua~Roxvy!0wQRF z@Bl(0ga$ys1ZY4Wv=0PiK~Tg2BoGnS1JOJo8KMw6L;~QTKyrW)IKTnn64ucpe1NTC ziZ)_Ej16rAwXjA(=o)TeyMS;`#u&H@Gh_`5!$dGP7@OpjyCGPuWI;9t0D?E}N=?xf zOr2C*1I)CtjaXM}Lri6s;EY}M?Sq>p3f78Y1P%zv9Qp}#KnNMTf#F0M42?0PItaMm zC>Qb@r0{@H0q@=sl*wkdOUMhkw3iiZeRxy{yLvsJ%;>m3l-rbd=rG#Twe^T1cegv5m?IAb z0vzYI+}_GOVcU9GhtSx4|Ml06tt4mk*kIc2^UI^4_IHnxidubq|KalO8(*%k|LB*` zp6}<~%QWL*pVLCOH+N;8ityu`r|-YL|N5W*x-Zo~`^mTMRld2)IWe5QopP+pRG&Zp z#d>~x_v=5Ld@RLp%SaFJFU{-zXO@>S&rkXDaoO8)2-!{0zWn3o%NIAVe)-4y&)%Hh z+|vK{=cAV2|J9rS@c;g&|L`|hr<6aOZv{7RV9P!l0hO2(S%jRtqL~FF`;kIZ_{uu~$a}_+#H8J4t?Z!)Nxk7j;G)0<-2-%xSYSM z*AHE{arGftmpyzk)29t%*Cxlmn7D8w3zg zb|j9OYk(t82}N~m0mwy@0*(dxX-p{?(VY~4kPk% zP_pP9lmQJDY;XpY)-eZEbFfsjbWyAZ6|&`>8VuMeB~_}?)yTAtxOijRm;-w_i6BNH%V z4DcX8bcJ|uQ;h0%55OJX;**1)Pl%KmzFD4wNGd2@BULY4l4`2X8LdK)Zg}9(zp*?~2!~`i| z684NjF-_XY6AhGYOU*SOmg)5|KYMxZVgjXk^wF#K-c2n$^{v+P`C8ZAB+KDh$oYDGuWr+_fR63DZF%||wdvpHbA^+rXczL^jwa zKYw-n^M6IC_3`og{qODZhms#|e)hA4@bCZnZ{9qN)4S8<*K7T7+N4|$F9Zh1QQ&M*FV|J5|N4{v|_^}m1kySK19g(Emb7)694rWC4T zAd@7)Xal^7j(jsq;<$f+VbYs#8!@MBGIgR9)`qS^0I;@p2_(^)!S1qK-GBy|mogGt zPSoqUZ45)*MkQX*E`Dj^6(AJcQF^RXrh$TzHV1?b@FfPEAZJ_nFjaBP9`sG92wz{6$ z^|3y_X_xzLt!rIR>!k;*=TWU~yPLM#r%zs_eTVLm7gP&H!UXFzv>NF)YW?Axzy0ln z5A%9bO_WPQN_{*9064hnxDIW|nMYSMjZ_lz>`|NYTy749J%&0U1=POUnn2wnB99Jf z#}adKnatVSYUd}?aj@YX6ETd9_eUr`5lT3& zPn3u%doxTNwIdNUH8@5DSePbf@^1p*6p zOo*9696gb97RVpV7?1(k8ga{{TogPF688k)d1lmQ2VF)aX2MMzGxn^NlChg7HU{X9 zY#N-WgaM{Hd~<^|9-VO{M3&Lm(<2dLR)js`$2wcUJum|}dO&0j1xk+WkORA;2L_-7 z0I(wq#f0R*8XuK0F$f_rBRHr*46w{@uHiA8Ucmzb2|l8p0bp}T2<|e43sV3l1OWsL z0y&_d$uXFa3dMDe>q>!vl*j1&g1IflkVF$fiG>w98GFD{5RB^cb#Gc)!LDfSZ;mg2ygBA?-d!Fp4_{r=Hyd6R9XAC%&-<7> z71}T3C_Ozr&0oCHclz?h{NZoDn!or3{_OVh<_~}Kum9=a{r%d`uIt6ZiQO-&T~_Xu zwkluU0m9&lX*~WF;zvHIc!@Zp!wE<)F5BGK*alVj9Z&&C6VL>#m8nsG98a^&~ zv*X0Xm-XqP55Q?kk!enH9<91%P*=C6=BUiBKC}|!Jmm;%PbW8z>o)qxY`y8Fw-urz zJGtAo);_>vTM3613pX_FT`fZEW-xSBW)LGF>9d1&0|Xr&!wdo$IV^I3x|#)xS6>!) zq4hDQ5^gcTaPEPMU@&>gBfHNx5*#oQC6Hu}0S?H~8mW3%Y3sidk2V`HOxb_Q_6gCos;}n1tiw-^TpRoyWt0wE>D01og5KmnNmJdj`@ zF?ti=hy}a>FhV8}f=6ux0020^d)NR__ZA=#4wwTI1OOEP zg-o6ciU11WM8Fb2I5PqT5Ce^R8TF!Ot|?;kj2Mt6pdd=r6|`y}!`!w@?e6W`!xdwa ziI_y7L?TCzjO@US4z2-;$zuZo;)P66D=UZDpb4F#&ww7%-5l^jo@g|R3tI#;Pcz|6 z5y)=KVw#9s$YSG6ydVd=M;49V^x zy>Wl{;d(l4*8!uXp0$u14$s6>T-Npd54}4kT4rvZS{Y4|G7$4_ImYmW33@^yDv3)5 zfOFNS#~<3m_p;yZULBZsety(|eB{IJm(yWBKW^vuCj%`nKDl{*1Nks)^lsBUNs|5H zb(;2hx0Bg;KHPlv=Qy_Z-FK2_-ox!rf4)5b7vFwg;n%;7$2XIt?Gml^b+v~N_w|SG zv|(#mU;gXIABSDl)eU;H z+DX{ddl;aN>tjDXfmR<(Y$jrSlE-)t&V$SK8pSemm zxL9i7jP&Vl3c%Kafwtxn=v#~mgmQHaMmDDcG%!YZ%%eqDAQ9CJ^AyW1aJJylU8c-3 z$t2ntl%ez1wL6$AYG)Y2G)e{>Vci>SI$$)XNy4KmKv2qv6bb-NSpoxLV2>~incM=A z5CR!pGSEq<#iLOfF5(haJM+_8KdVV|OH zRI-6mZG_F;0|zr1t-u)(i4r+ZsDmk)c+Nsd5GcV@1ScF%$n#3DT{qVOS-{vv*D_xb z-=D_Qz?3IG9MQn5*_@e84!7gfu3!Bj(nOAC0i^X2K-*T^{;-FgfP;=J8l`EmP_`Ba<9!Gz;&rEr))2D|>FWpYr zZ(RT*A?Vm71|VFv%Y9u}ZO-ceGc(MtJ~DiKE}NaZ89GQJs5OWI26`H!(Li9(ynrhh zxD@b91QH@{tJ$2+R|t$=;Hu~lONLm4A%LWK3{+WQMk@>Bis^`i6duX45A=nmMdp2? zQufE)@pax!<#621`~88I=Qnd+4#(TWEgzm8_n*C*c6q<^-Kc;N^${wBdsOP{7GRdM zPkR+LFWb8P!|$|uLP7mXzkaTk_t+RzCJjlTAQThVGIq5!;Hj%EiKH# zG%vzE{`o_VfkW48cWr3Osqj_-mV!?R3%j~cibt+brh&tV6EuiG5(?S69YQi-LXU{h zHo1xW4vY7^nCyEl0PbU@Kx9-1odGxzq}WMC7dn<^qEO!Wg%J@UX~WnABWQ zTLGI{6&vFK4dQA5;xI2QYAvZl25nuW*Nvwerqu&5%;$X;NEl&(l&A->JC=Y3F%TTQ zq5}W|aReZYa0DgrhyZ|su0RG1P5>D0N&w-3rl3fn4ij28e-%DF7~La03?PJPL7V_4 zMgd$1Gg86;0Du%gJH{5V2b>TEfFl@XL6krVVTnrx03=WjK?}mLF@_RB$`b>zkARMW zLJ*vNGz;DxV_KH^i%NW`E+7kBH%|vbbcX;A3(A3)jCSqJ#42K#kgkztv$xkU4iI+mYUMzk z7eNdV@mrk7vy+(Z13*@sq0wE)Lk%B*#tm$%AcLz)s`lE)VCk+4V%S5cMcx z?P|gi{O+Is;qCkC6Or(v!p3vd6Vh=C7^4S@gL5k6J-Q9q!e&L(%XL5VmPq>Q@A91F zq#I$e-e@>L_u9goAwg^~Cg2eb%{p|`F(#DIAs(s~a z{`PdOg8%}_6`Uh_w^Te(je)!8Te^JfVzB_~P+0&xQi>c3%(Xhs$p`TzMp6T22WXB3 zts6K}SYIhrl68U16wMuhl6wnqWV5kcYK^X*~V-U|?kxF=_k%?5; zItOh5!r(!eL{(D&F|ma@NG7inQybf*`;K`8EoFOXw0FSZ6s`^yLmaPs}mw1FoF>R*1!c|Lo5JF#O@jp4ia#2&S-Cgc5EjH1}cCn;tT?yfdm*O zXp2Y?9WVhBb^vCNi9{d_IRF)1!VMu1C16nc~Nxu&PfJam_6su$iJMkJ=1ZIC2P3N&^6XmC~Zj;`R(fSIn`7d98_N%kYXUi`>fB4-$zW=NBpWaw^hpw)h zX>Yzpy9StDHm!|u=z5m1La))zY^SiU5Y~oX9=AU7Xclh0jm@>i7=s1FF|@JUXsUGu z+tjZ#aa8TKdT-E1Z!K(daM-*)p4$Z^OzH;eZCgn@5n3N>GZ>>cQy4kRS~s=0JX|S) z>y;hW?s`67pX}*+-L~qj>1L+a22r=MUa#&3HehXjJ%?92e!3+RxPfm4#1 zZ=SL2^8%P|@NmmSJkRC0&vRLBk0m#`eVyi24htU+NG=JH3MEGCLvCaYxIRU&%TcUB zG8FWL)_psF_|4bbQy>`J9;fxmyl%(4SHUCf3V{@09b`0N=uDKe`EXTBL_)+CG+oeXo;(E@;WxMbEmgLqYTnH1C~!ikY4NSFa}F1iRO2;|m!xaM3a*k-|!y`+4@6h*Hs z3`DXcVG>D>ncZs*#kkryL2|AaLI&tz1_)pkMjP%y$axm*Ar905!5l*Z1(69c$cB>x zex!~F@Q4sXH3f$rl1v2@F-NfVs;)^5!qrp>W`JQfbtMlsWsa40!=#DD(AF$4s#a3-ma z77^$Qwgf1`F0e!};Di7G6G9*WfPrD?24?6MTEQJ`4NAZh#>br+0Wgw8m_eLL5DAfx zk(dx0xDg=Y3a~;9^b*h!2ow<-s1lqToEwu1OYIG{#%yCanz|_>1VJ=Mt;*zPYTzES za3RaO$_%v}Xv)#*g3ch!gPM`-FE9_lt5C@#fi2@o%{_fc%kg0VIOngMcQD1u~hY5m~}Pc1J?StzB9 zR5nDFY&X-)LSxuA82xZqZg)#gYAIdM_veR)wyxEcOB&lrdtk!CD2}1V1rlIg*X9N} z4e-eexyfO-d(9Zr<;SnAZ=8liLaH$E{@XW?-~9daFQ=dX7yt4w9o~QSPq5hjlTRQ< zmIMiW$ZtHCC}%HM1jr_u2-gF(RrCkd%m7 zs33#!ezNF~kRyNCCUWhf*)%BSu4C z|NkugS&wZ?m!5}>E}A*lTA8``KKry^TU0eqX=2~;kXh!3U&A$)`#E2O2j^~L;#v^hInV=(yZ#I*|b50?S!0FGwVxSQg|0v=S909^{4vF$+a_5Ul6SDq{zz z9@Enir%K2^4n^xifBemFe!2-|lFE4n0)t$ix9joYs!qwXBIJ{xNDPdO954nuCwI#g z1dE}UFobkpJUN>I4R@!ZDu_~QpcYvY81e$7D52o<7{_B9yBc1y-t1#$uo7l{+1 zMlcyEvi4QD=VS&oasjr(=<1j%hX{tOg;uAO1C-MV!PUnI;({;@F%clMg?NCt1`wD8 zFcCp!KuQoebx{>ZR>87i<#%n3FL5QCYL zsza=Bnlq3#$Q99Ir;`(FlJB< zkDyN{DS|<80TDn!0tAUT&@0*j(Zd1aK;O(Uq(d0u3gHnMu>?2}f9k*o6c!-{q!o|? zfdT;;i3k_+0X~5$fdZ%p5)cMMJYy(82b^Ju5HzR_YCep!c+Qdw?2!N_XF{AF3XDoe z3m9_(#d?Q1mW;&c0#y^YTLNb?5|(hA7I$|rw=hLwkQ4b(!XQ#mL_lGJNdyrI$-oOt zisUgEG9jwrDR6VY!mI<^v?J3H+_{B}!eIdRVSrE>l7cYpKr_NSS!^ih}P%P*F{e7*c? zUFzK$4!7Iww}1Kx6Z`X?jt}Q$Jbe8sOGKe|eCFT$uex4;_?JKY_y1!3%}+)nODRz+ zTyjv!rJ}Qqh8S*2Aat05tO;nni@M%sFOsbmzPqa;186B}Xg7wghEw}~!xg=-qc9`X zyiyRL+C(2Im*KfvLrTb?7B1|4a7w_e08ExR5e6|!ccBE+K^mz$c8#!p)wx>&hIXDB zhzeb(44X2?zHR1>!VF<(bE57vMi5OCQoT)6HFM`Nd#Kaw=EEcfs5^RsI2^$3=w=6C z9;u)i?8A9c9=fbEUmRAB8PicxEy&D!E_2@HcISQ4xweC zHKlW=tfd&81tq6^VhW?hup$Q%#th}@xxs7}37taNKuE;1X)cjWP4syD?QiW7Tq6az z@2-%WPUxdv?jTh-Sqc`N5NbI}FcO+}A7c^8Yw4jSFqjatU_eZOabC~C27$w6_RWHk zGy<0FD3B~rg<;f(nhT1|V_5IQ+>v9YGdW`6hgbKOY9I5aEuSEU6S`GN5>m=QVw>U3 zv3PRF6p=s{=P&@(!9YeSY|NMr7&Vy#LSpJ1NQf3bW9d7Ia4AI#Z*9or~nWU0tApjFl703pGHp%(?cP4U_xTT_XJPi zNU#GKn1>D695G@^5duH~17rbChzh)*2!jAP5+DR30y+SJb;KT#fGdSz0ELln=n6hR zjYP(r5feedjBpxGGvU1*-umGZlA`7+X&PGMAXFAyC6<#g3-P(0GNeUN9L;a;yqRYA z9^^a;k>=#QK<|0%fK54t_s}VrP;QQAAfKyS0 z`<^4I++({50rH7-LRZ%;DPbna>vGDK(R<)h55n8_eA|Wz!17vzU>nOrCNIZNw_Bg; z6=|-#NU7(S=e#a;eTa5+8_5>CT}MYXi>4#ggMnNqz?6x{?51-JyWKVnVt~aw7Y^Wk zjJE0iv0uM?*Pb8u{Ufh_di59AH~sef{qo{eZ29=RKaHcM(@Uufsv;7ntj}Y+DW>~H zvOv=P2R#n!{rdP^A3p!xho>12zd-u4JNZYiKfA9PDd}dK=>B5+&Hwa2{`3F)-~R3MybTC5=*np(u#!0#5vf*^ob&6|5oi&|+(xh| zL}PZ)HWRWRp=btk-vux+S3qH>m6A?HkP68s`Ah@}B4MHA)(`KuvBSP^YDy5(4FR<6 z8C-nYuzXIlyUxz*g{g<*>?Oh}IOozau?7u2t;!qHR0D1a7j0TvRDFr>Wu!`tt#gOB01Q$QQ@<92XP9*nMnY@He1Qf>~zq)iRA z<#gg)a;bV7q9d>Q{%)22{M3`pnsRC8EKdI0BK)-|{~F(mCy@$;9!!O zrZOq>;z$~Nw4E&v@&;Lv4A|O6a8u8sCInp35fBSZl&MGs1SHsDVAqw1-N03r6^H=P zgWU-*0U=;PFo1;6X?$|?7L47E0T9B`6Y4FDJ?;Pq%)!NjF(Amm9gk;<@t?42f}jjU z9Fu|&Ix>!h>#!9mP!w8Y(gf3oXGwCN!NX6pI0}kmfrC6y2y^kQo7N5>tnf z95k{p1IpESHJXMRoWXW70(VG@ItC`E07T0kF-VaCKsDwS>q4lZs)`Vi#{tvEnEy$V z)<#_SI3AC_!SUQ|h&_&>)@dBEKi~3+8CNQpOPc#lu;u!qNHG_#8BBXu6qZlg1t767FF} zK(ND{X2$FhPODHUi{umo-3SWF2587!NSyG@Yjp>O1XANRxt5sZn6-z4>9ov(KKl_G zLnS4MFdl}4iNQRfVcGkb!BW`!AmkvCc_qjmPAS1e&r~E06h}Ue;bEv4j*hv{Srg^T zmqOPG*QP%`@3&hY;IsL*AGaQx@fgoO)AWq$t%s#*f)mIS>p-7}5)hv& z+z8Z}u|FdisA{?hvl9e)*bGJ>0k-hn8;6D&qKBr%3kA5Lf(C{l7AoY30p@&<)q>Fp zKvw8eLsAYkbB#a`1JXzm1xG<3KK!`q_I%YCPBxG@EiX@&h);zBBs?BuwtZr+d07^@ zZEr!<+YWb^R0{w`c(@Fki5z4l!st64v-gP{;Mk4>^f|FDYgv=9PrF@F#E&gnL@%g3 zAGbc<^U7RatS>&#z8rsi9NSG+&gF|~8~~@+52y7`vYcLjR?3PVOy;q=Hn4X0*~>ln zgTT?-sX*>cq+qD+-X+ZuWRNFqv9opn^%@o7|C^+4_ zA*;?$RbmD@(IjAGL2_b@oB{}E;&}_KAO+O|8=^-b!$e8Q$Z1I{Lq5lH2S_*uB{0q+ z1uZ}|$ZULY67GBO1^vRvvE1`Rb+$T;3GnsUBfj)tWpBaL{0+xb61Q)F1ZR^=@Kul5oxF zm^9Hq+yXeN6H|&{-fKd@7UOzA)o_iR1X-L54KV^$#166oA_M>?Fh?>Y!ouzr zpdJ8V0SQ9`iNY~BumU)sgPehg01zuOkQ<@`P6$WzfC+kq=mbI0(FbG*s^|fj9Mqx$ zfaz!1_&axG zy0J^xhwy_uAy}xQw=mGIm@R+;eGo(?E(mOiW6os#$&n3w+i!tbtVjFg_ZhHtTwy-q z(+?jX-+XAwfJ(kn5epKkQiz$;TAfVCP#5jDNo)w1O3q12PWfz%(Uu;5w|2?d`XDStb0BTRwtXic)gDlw7d2`LrD$o}OE~;v(ge>;2OC(lr0a zZ{O}3*4yPCm)v?-n6)-WYjhmr*wf}=Kr4GWTtRA%+bEp8mWUnizl257a;L!U+QQ9s z4yTNa()ashK+bnm0f-<4L0|$t^)^Tl0v*+dV!-V2@u?ZwvYeuP zimWrC*mRXTosp#J1j!#eVoD`B<};kvNzf@$S}4dEr^mLzZOpfm4#(?bdu+ZPF=^nW zJ~2K%+d#m1%&AKF{50F}HVrC9Knhz{0bpFH8Tg29P)e8t7*2-h!K=f9SRyCZsv?6k z3Xq;TJ7FdgS^>+7%Q+MsL%=u^j18lE#;DEj0YPAFu_qepl<6+RLRy1Cv8l(3Vs6Py zD7F|IW}LtQDSRG3eYA49l)FTnBwZdVNw_+u)qn#HY9)l2%BM8UJOLAeO+w=WGvv7G zvAI`~io>!6Xmrjw2LAZd6EhJsn~^fsH9<|8Jg<%!7#uV_u09ck)gjz)7)OAh27J08 z+qT;cP>o7k?^g=zmTvR5vUv+;vVMdE20}C=VSrE=dq;88OY;!hf(S+>?%W^QQnIMi z69czK;4X1Ei;Xukev|()OM;FeRUibA-c`l|o_t+$?*SkygaP%Tg9*5hRHu z!Hg`x4yXu%F#!S9AR0sh7cz%20#4uwVnj#;eEMN_Bqv9hNDHDOI1&Lfzy!bm3jYKF zh46-+%tu&&O?UldsUaVL8O$7luwY~gN6*G*0%P4AGhsIFm(>f_L3{l5Lu-%SHs!4Uj#D*+p03ON+DuGe%5Gz3t zyh1aI5rTqKq9X!CfhYJ`BUHk)FV z2Ex&}R4K_}T0Y~#A!X}NkMG`IpPx3=nlI0f&mTTs-B=1QuYZ}V+)uiOxn;+i4`NP{kzWMRr{_!{e z@?ZY+cmGCdyZ`bR5}zH<({x*2zD{0jr>^hQ<;-i&7rxw|&iOOcAbH_Icz>RsmB;k; zRnK}{(^5aX*lLZTw_Dt<-|OsUy_?6I?Wg~c&Tc*Mx(HKR(yzXG<+e5|8ZPCM);lO? z&ULPt7M5I16RIPpdRi>Flrzb^|JgTsD0`E7;UtWTjmeWL&I#pClrkiEQ z#EJb{)iaHW9>J6ia3Hlq1<@_=l2c~l0`-i}0*#Mm5t0yv%}|mXW+5NLOIem=H5mtc zySCfaVwp_94mAtnK5dxYx;)+VVU*Va=3a#L}D@kDvRLa0N8Isbr7cMczJnujEJ0&z$IyU z>B0(u2m^i630Z@TUcSr?2?52`)qG$;WT28b*JCJ}`V2MqyoS=cikUQpY13R<4`7UP zN-0B%&&!9tb_J=Ah~r6D?p4R;0Nh!sx{y0=)Fd=tL8t5=`zx%oQj&O)ccbnyR215e*B7 zV@GO)mcY>`=3?^^sUZXhW@ZH86oe2l+z?@+D=;D?j}hqL7^o4`qq%S33IXH?&{H?&+p{Eo*(`U0P|~DzWGYd=h25F z6h2F$e7-xsesTBZH)P|w=?V070=|6N?mpjlswY{G`269;KmG^5Je~OQr^oAY^B3{_ z{`gn_;H-Uq3APyzNRPka7{Q*&%5PO9A0%!%z@&@xxq4#2DMN z(EaUi{!KC%3gE*HkusDl%ZX~q$cz#slqqH!>T~RB1w7qGN-I}joaz*yto<2yuyc2L zYKMfQYVVUv#Pj3sX06GmfP_xwkeucg)OHOQq0w$5P??tHqA4R4v8KDaq-90PEGf0F zo9dza+g=9b!_sw+<7Q*iftFeew9!XnYe**9k{JZJMTk+w{pubH7&(QJFBF|<-(c=8 zNd-a_;4yeHVM+#tNI*m_zX(8@*D#n;0flKsIZ<8#$*BN{bA)7N4kY&QIJ7 zInBYyN(<$#EVu}#bN0kmA^9L5F`t|xVHd)ZOP^-P&AU+s)IpLlu3;(E8HX+>RKosD z=$3_8p+dCb<%DttorkNsO`ij?`%GeSxde2etU>_p2E!b2^e)xAGYbp~ce80iVNvc> zvZkz)q3tqmpaCJ)osrp_1;&^Jz9c9N6wq@fS;IxS7*?Q#E*BfpLWUYc_-qcO>Pobj zA<41~p}>3w5)zImK@f%xh9n3GJ`sXU&<8>Vv;YoD;DE7!oAUx3$OMRp4I(@g(E^w7 ziLj6>gaJCb1X1V&NNxaAJ-VBNALKhmqX;kuAo2sukc^NF9BluDH*j_B9c_vs0RZ#> zA6znt^wx{uKB1T)MEGVnIlnkz(A+pDZ3=520W$ytR2&^uW&&G+7HkL^^#)vtcbeg; z023v{m>BFeg+Y*KQiF`JVT=e3JApk$LW7KS1+m~e_dWW8%L!XkLg)c{BOn5YoWxST zK3h&U)xq<^W-$;80TrGp(##xJG&z^ox2O5zAAWFx$Rw2P`PwL~2N-g~a(+MpK%Nsg zS6-7w5DvS#apXDDau*^;`@oiqIj zn~sS>kc#OL-bzQiBi36$IZ`WKWq-j@QE@=#oXJI|DmmVp@E7&bD=|B$;&v0_5yi^Yti&cyxyqVGm~ojs&<3DwXmM!y;EU z4I3yYU68KN5TvJtjsd&^5|jFbPf-n(5S!%aN?dp@NSWLicGIZ9<_b>X!HB~tsnZ& z!JoHnaMC&UZJT*H2O65gpJ% zhF~F$2`DR_a=ASnmKfRqBI1nsCM-%6%ZWnL93zAv`qXmHz>_8_Pnr^N4t9pjxWhz- z8;LuwF+WbP*(RmwQJqtUBg)WzTBL%ya8j@c1F!}~Vmjs+%5}_k4h&jg>J4H6SRIef zHA@c-Z=i_Ig3~NI@+rj_ML4V1c(v#$%zHn0g0RtDd>|yrUZOqg(5&;xCbF_WC?hJGP;9x zNP-!0euDJfg?Ge;dLR`DjTsO>iY3P!ae%37Lj#>aK@ubcft5r!OxGfo83ek)APh3f z>sq?$0r#Kd!>KuSLm$Qj%08Kl70?nT^4$^21V~I-$fDyad^SggaO7Y@H$o>J;U(+| zv|3b9V?&e+XW@tlGFZtpd_hs~d-zP7fnyXPF$_nexZV(hrs}X^Ll1-D9AFmB6%FK^ z5$40^ua+-X&;6&j+q;k3oM26#_HDb~tjeg4buH&*UcX(rWOSWFZMLT;a;C&df{{=s zc0HcPG53kVOxllQPUk|+JGcsg&cb=QyGual`-Ed8&dVJ<9|H#6rMlJ(bzb|J z>+>Jq-oE|g<4?a+X1y-gw@;i-+`>@tRP$X~FKfL|a=D~s{pn9{k9~#lCVl?u^2=Xz zCVJoh_TPT{^wSSty!iZQU;LaTJ$>xUFTQ@A`L}=XfBa!|!PkX<`kUWB?d%DVfn&zj z0021{;$nkA&3%SZuE(@V92%4f8HIwAQNfZN^Wu9qS&=Lx%~C98xu=X`25c5bBlmR4 zXfm}`7Ky1A-A07yL1;EcH`55hFebnC1JGbb@6IueMQ7}^#3!W6tA!$BI(02E9SbmL z0yKpnu)TLD&oFKzrU!y+&r1XDUU#`{aXOm!jvuc!jh;-*5KA_-p{Afm;oB8y;&DSnh>ph$LMMl4 zo|A*PDsZH5bb=yc4pijm9A>jPc9}Oah4vhjBpc@H?a&~5dV36kxg`;wkxz-vm&ZN_ zusBo7A|*MA$Y3D{ItisEVvKD^0*G4Cbf1@m(%FcLgJceXMWjtwkg^G2&IF?k%87(% zP5Hk1c!Hq*;Uh6890{FUxSG@gSvV7k#W9$Y-)3wh>rRE_;UNX)Q>_tH95`w^p_0f9 zOg>uZE(ze+Ag?(Ua~Md4!Ux!qeR>#rPe6n-vK`B0#L97BRs(< zJlkQ!Zo}No!?NpyXb?Z1!qU*00Sam zAOeU)fq@Yq7zL0VB4UCwc#EJ2M}G=Kpa@^VB2a+@(P>QdX@C*UVG_7Q25lS$CIINx zW1wHruGi6`fAr(+TcS^XVs~rctpijYY>I#^=aXthKyyF5oGLS(PM1@yhG0HuTCHguoiwtLyJ9f;IBX=$PjBA8 z|L~FW{k(P5+xg*hdN{2QwN{peODul7_d$hACNg4Pk)MSw_AOmVb%+X#6LVv{0k^u7 z%^prr=;??MDC;2TN;OG4+=10(^ya`0Ma}9`FAr;R)8!=SgXs$W2pqTFr+v7&b>9({ zp}CFQcI^{DbPop)unAsq!-=7QvzajH7So&qp$G03%-88U6Dd+KXx^P@b-y~grFFQu zs!xC(KATVXIieezBN90SvAaV}SXaahuFfeyEs5_p2Z}~qI&Q#XY1YP^B!t2qok5K)CM@xk{6WY zO`F`2Xdf|dF^ML$Q#Lekf1H*uN2mhTfH4h`*?k0M0GsSR*cDX{qUL17NMX7xI%*Fj zB#?xu20Fo#0ZA3e0TN3UmI;9v5lF5zM^2TSYhY$lLn|C+0SUKls`G5AA%x*D3!Ro) zcbm<^wGAN*U>qM0NFEdeeRDEpQwCIUMhU_+u1jncJS9d#19B8#1}x|eXaW#Ag;#)x zI1`bF0}0>>ya6VFpwPfUVuXN{0SHKe0zx2|qD4$V1b6g`Zl6ep5d$#;8A1XQP=!e7 ziVo2u=ApCc*!+0z*EX)xAK$g>)^5lC-TUo_zx()i-|~Nc|DOdBY5*5rmQS&PksyM= zrywa#W=0A&Ks#^*hGUW}R5H}bsYXQ3q>`4Gr@(Ys7bj#SK%Z$wEQJ$8p#)9>K!hkD z2*~Jxu+S9vv`^@YQGyZR6aGy^5e}xz=tDilY+zN#VKX#*^wd%WV=I1Y7@%E=Tl9D~|kKKVHqXcMK zxO$rVL4>E54^_%`Yf8Qq%I7v*k!k-sX{rnJ$?864ik~r zda86kVLyL%f4RIqZtqSHFED7ky$_v*IWH+!q_VgZRT|H`^}%^b%fsA1()moBZonFN ze%MF(>T&z{_%urL}Pz|o0C{67H6V7JDhP0R}=tF^lc)JCS$s72oOyv zi;q3UWJ*qk1i7H2VS|B6x+9At&-UU8E0xu?BJS zfF6L#9Wgv+voVKF3XCDLA8ZPo(r!#8J2;DmL=erc3SvPv+cXCP1hi?uC-bi6Qz>de zP*22tM9!WNmNQJ<#R5_aEiCzN^a6}vs28M%lM zoDhdi;*~lA*Sk|poZFm+dCh^S3Sh=5XMr*2qHzeXIoEUMGSBCiP^)g&eJV$e6dt+W z)%IbNv?z4S%nr1ibhIQn-!VSV58JqZfwkVX=ly6H4mxdF>#zUp{`|!`=@Q3JGy)(v z=KvdBN2W}R`&3sp3uoY9i*R>Ks=>yAio`N{@IpR9DrV??Bw))Kbpt6d8z3MiCk+T^ zCPQQ9JVaFSXWsK}5a!U+|K1OtirtZ@J{J33`T1tkpz0y75;$E@ms zCB>9f?;h?hU)A%OX+g;a$tVN}BLJK*CVIj+z#%}<-Ec}IUPMAg5Nfz>o9Gs9+3D%?~L@2t0Qgnmjj#vn%fB{0G;%E>g z#NZeZiAQ%xG1Yze90t;MYkfX-JHnqgRSR_B%3X&au&%MZcvWA0{p0uF{pmfacT-0- zIAkIy@cDcZFv#}xFaCu^e)DZ@&BX&Btvd z5LkGO(c;z1dlJ8H$5TfY@?&C6a~cTwU|6%{MEOpESrRfcCnH2Q##HYzxD|oI3nfgM zPL*}y-VWk2mB38hPo<}_M7LXKU_(m5Ny;R`6b{WfY$*Wd2w>ILhTOVFV1TATsy^w?S-^*33IT-`ToVK&qWKBZ%RCz(5rxl$ z0H_1X9chci5F8QE49ZFf6pEy9Oh6#GdOE=^Tps}?LLnGX9oTmTAQ%d&h8Ba7r-ACU zt{J!Q{KnTgfBTUTQcf!tT535QJ0bvrumA+$h))$;Rug#EQ)~%Mu&-kBGAKG*fp4@ND3q| z#W65Rk67Isg}D(iF!Z2|(+2}PV4(6E(A_7Bgh5yXF#IzwtXt~hXJ+D`!D{%%D4II z{ln>%|MvLP8@v&UYAA3Ax5xjea<(idi>uV40f{50<%&j;1fi*>yd;zmOPWk+#z4muWVvv5 zFi$L>f{Pc#-dScB#K_bwd2ay#tU{#Q?P{gmDM1W79Mk2({mrwOe=?dL7>g8}ew#Y? zdVvwaAD*`I+1YNl;+&s9US8d4+jGTtw;Pj4!55RD_J!ADHetnDyX`u8d9^IJMzLy@ zb>EU3IYe1(e1!Y}iDM4p1Mr^vM}>qWc)QZwS)JGs+1v=>;?N>2fV>5PYbZn55;i-O zmD1wfVjFH0>VZB{s^7XxH*4XBiyyzh`XU~0^x7$+eaTeud)#)WxYR$)22?=tVZjp;K$!@&U}1MFi&J4{%6 zoC|EmY?vAPv~pqSU_D^}c2ttS_SJg$eFv09%@xUr)#juH-xfq-YU;m!mGp+O1V5i6jB3ot<#qGNbi1c3wqED;L8fYTv9Wj7&qfQTsQ zBNUw1fE!Z{*vZ7OpsJJ8xLSb6VFSH)JMwrs{FwXGetmO$y52tg6hFQj@AvIvr#4_f zb}*Sr05Fg*>qTep5eXd_GbPkOMqvm=B-gSOn9-wAmqMFzT~?oy%9_wXZRW&Eov`dJ zmO42RB@YmRkR^CJ3Gza5keowrA?H9RG+h<-gfpy~a1A?nx-%;@k~2(nQbWO{X}Y_| zFm&~Z5e6fW9GM*B*laevUpNbV_OmY@UVcUL+TQ$)(4Exd*DwFUa)0@s|HpqfB%#u= z+5Mf@oIZQ`A~E;To5OW$aFJ?BuLnY5CAvS~wr!bPmUMbJfB1fD$J6EX$^ii*LqIU1 zrS&9_PkT$8uWcX1fOH}6Y{|=_{){O!Oy`(S?+uG4z4f`MmJMgOBHcOpqRf&Of|Q^6KT+zh1un^R&eJu)@2) zZC>)4zkKz@Z{Kdu&uxMb>ai;k10e`;6}wJg8bWM<2+4aNU=(Y|48bs|VYz1*oG&yT zbvxRKUNIxM20)}sjuf=1TP$lGT}i~Aw=hiNQ>Tign5)w?BXS3!@Ud@QeWmQ#`ldN^ zKUA}dQ%M~AVO-FydkRr2nJI{fkC~-Rf;ec}SkkKAx2?Q-xwJ!)DgwN?zrVFX*vekx zRBj)(TKQ_W!q_XZLL{6&e9U#}X_Bvx@3#(=o~*ksTu#|Ptc5BpAcWUiF|cGdsh9cg zJuat^=lmSwa_TANLs_3FUrcu=0j`NEw9RRSP`?>I;Mh9~8&P0k+uR}~J9eK%k7t&I zv0D_HkA{LV=XJwj7BsyvZCwlCW3qi49k%V=+u5cQv5<^DDJ3WC&mrQFv_$Dm)tplD zV`8m|h>h&%y>(ufZQt~^jhlN{1z=(rI^JI;&>)THk048B;4_x>LSq051Gwi(qX%PJ z!VQq4sYM+`EAa5B1xgY_WOQCiSlCUh?cM_Ff>AO&bbJ zw`(^MG@i{7;RpdhR`=|HJ`S!r#v|Gb= z4VZ~?FqJI17NLT&0Hp}RPy`0(Kt$Ff6p_*P0QTqz6?lRh5TXjOh7dvtZ)6Oy1Wq)F zIAc5k1Yok^j5|aECh})T2A>Que2_Pr0^ZHs2dGVN$GGY^?%UgUkMH~YpPs*agCBl6 z-fV5BicT96nuV&O$l(D1nPR)Xr*cWjynzHvd*Y}Q6g-%)`^4vCt_-TRVswl}$2jaR zSL`zh3Hb7SAP{Yuwd#FWaz=U=}1>>vF6{PTY@#ozzUe>`WR zhtEFyr~hkx{{xwFJ|8}EhPK^8UWjRX{OFb=w&$(YoG`abEzSTiZ8M*vlRn(tU*CS; zkR0N6dz1)ph~%g~n#rniqBGo2dv7&6VbokNRnFv`WO-@f^%I+_rB_rbs&=*G&(MCB8kwx%#AnGozg z(DCk$h~y6DbBSUiOnsWF`?Gf|~D0`Gqa zE3?}eJhjhxSO~-Pl89EY9Z?2MoYWxz860q^Nlth(T7tVx#CnHE3zkgm1~Ve3u-!l? zVVY8~hk=6Qr0hJ9GK|)klU@*~4*?c&6Y3+ZR?x`cV8ek0djmE7q?~opHX!9Wc2$-X z-i|1=GUroD_ehHi4deny!4<9Akr||9JfygYeN)3^=Gc^wV)X>8uO*m8~>u(G-`9!AJDPyWRBQ!sUKN zpQFS6^bCx5FJEf(++}jOH3soHr2C^krDZ<;{`cSf`7byNFBKuB`{nar|7;8z{KT~8 zQ$ii%aL_(>co*B3FBhHr{bxUa^X_~8)vNrbZ1ZSs-hTQ>ckkNRxZZX2S{TjiA_18z z+0)azEHMvWPIYhVt6V<6_b*@4o3q8!it~%VxI4f5;X^;ta^DWeY-r}h4o*cFd2Bmn zg5bdn-K4N;dB*w5Qpy>?S(BawhsK&^+Bi&+62xpnRxBwwCa{q*O~Z1(9-Gc+rdCNf z*u@!hGfkNnNFJIPJ9y4jX7srW6?FwC0V6<~hY7D4(BeiRlp)4A^t6_KI2E+1i|}Zj z$};=BUwAQ^3aP@n$o9cC=Tk0oyvc(bMyN}{FaSbnRZbCxe0R@gnBV=Cq0d5R=N7N1vBFu?}h@5lgnAD#|h2nA1Ew+2S$W+h!Ahff^Yh4jW}sSx>5+ zI%A-!8%~HVLgBev395vwL=d^8YPweYu*2C1(WXKIRUC*kBA#N+R8r)J%ln@`bj9S) z!Cyvn^O<0A9~Kpm2Z8C%RN{CdS6F2X0(j;=X+4W9x7#lDFcI3OQD{NikZ|TQCam!E zQG~+}T~_3Y^VEi-9m$e`Vec)X6aZxlWt)l%)FN{@&csC!0)}&jaX3()=y2A#k*Y&P zRD&S2P9^u7%}LV(GvQ_i#!K=5n>7VXB3ywX0wate06PT6f0_VrhajC!#FW6ph$sSJ z0)~TNL?B>TAYv@xHvm9h0t|u!3dVutp~)@WEg*w757nXC%#S^;yY0u`_4elJ!%zCd zTmA6nZ-2PXr;(3+Ofc(#1p_ItgGDkekcCYE2mnBpA`3!&_4&R(!9pifUR?Y&jyAv)P+$T@MCiKE+ z%d{#qf~Vj>NPz6Y;RmK1{=~!%Ip7AoMm!rrSaIEA2=*;F#cbZgWPwQcEC0n`|Mge@ z`8W4}_4TWty?Xrr{MYaQ`Fnry>#_gwSO4(q*Yxq-kMEeW9)r1J;_zb|V?Do`$5a0N zmp=Za9|3sJG}njM*P|u&GBPhwtOVkA+fq$#JZ}dWDbC;pP)v`UmYMiWOFBs(&1b~4 z-aO}x@@M7sXJ7d8`2F_-wO(p__tEqTF&S^#JJHYf=e~ZiU%p&Z&D&ZL=;`AX&u99> z+mzSk{&S~!efsX@t1n}@6OtLmz}To-k7vqWh}6($x;#LCq{tA1 ztd2)xuz*$LIZWof338i&0cPD;%!7mdQ|Eh5Vvj|t;=Xl6s<})P$xG;gk|cD>*SujMO}ry!C0*Co`}f}@A55_-Nk5g6g5l62(rf^vz@aebzYa`^%! z!UYX8T6*a(7)%z%vc?hjZMXQ+kN|IevOB^=!wro=-YW)#j6z zbM=&&qg?L$*e3G?X9SfNMe>3}k@s<&qGCR^q|l(& ztuB&e9F3R>6|O-kjayt^W}N8avjwxQ7L@_D6i^2cophc)`oP$qS~~__AMwQtN74|Q z=(b02VoP)lNePnod05&xa#Oq3vN$bUijfu za#8hsmVFzRby~`yZRXSte*v~}YBcZ72l$5+Hlb1i_gRTYAhc~DO3o7jRm~z?1&Mst zh1W|VVi6=vKn{Eg3e+6Y0E9e;Hvj|3tkWofkb>NdI72An4Y7h*VBn0v3GRS|{tT2N zR6^8y0DJ6VhmGu}1jAag9%Fx+k4HP~cyoRC{`U5J{r$V~ex$AWaYJS0hll86=*U6p zzLq7d;bAF5 zSC|ed3vL0~u%UZ5A0v54V*J^w7eD`tzxw*W{NC|wPJL`Q%jqRkfOa}d(a6s(VN{eZL_Zy#%+`r8v5q(&A({UTb(Ej|f?j@}zWgPP@#2@i{73%T4}bdC-@p5I>;s10 z6i8JhCNVn6g6hEPBNYk*5SwA2#>_`Y22M7vVJv1ap57A{v%#mDY5~gt%3_-D&q*LxI=?z$ba4nr;zB;lY0YVcGo802 z5plOb3`1Zq@oKdurq?t~6X6_`amHig70)lyf(*BGF-8qS>zeZtpX~w7pMqF0Zx{e$ zAR+NIZ%!yafU4yu_m@FP(4^L>yP!d!-_IcO>zB)%UcNLF%$CFRalCs0<-_~CpME&M z|Mr$DO*+8(B&(KeGnc3(yCSgL;M;(eV>Wl{W1=$|@rjU!=)69f1x!o$F&ojPkQr$|67#q=UNq=o zlJ&z9Bj+MD!Ft9^Mp>x6*QpROgJItymgxo_6=?E8KD_OS>rBGnqq!tSiR4Gj(-jqP zS7exLxp#V$ZWFyJo|5j8Q8l`9VmDKVJo?C-K{u*|y_4vKg_uc#Q>8f!J-mqDfGdR? z3~|?Vr^g1Qs1}Cm7}CNsV4w|y5*jd^&exy1jXR zdh`7D$Nl^F#aD=$zVhqVJrMPQVgLQ#@4gSC3PV;S4E&8A+;nglQh#ndpTggyU-ozJOFp;9E5ug6xVMJS-~IIT{%zZDHRS*`HBGRe}4f_aXO=99ZxgT+~|jIe|wC%KkCyDKaH_3 zFH<=^$f@LfeR%oRic7n_eSF$H+@)AMgd~Lg+8K??B8a|s(orMUh?lkac4$yt>oj=2 zj=gK2K#VitlJaU388%002B4QSb05c2HLt*r0oCVB~SWG)bC?PW}B!CfP z?jYh58Ir&!FW|m+9{beD0ka!Zb^#6opEyQu0j{v$l#`&%tMzUxVWo6F^Jyt%>fL#{ zocToX0{pJeTC^~|$jbxu^|D-&p1_!y#R_Ax34l^cl|6x-c(8Ahh>^fr=F>UGE7qDk z*^~fsqgaw|Qj+MPL!%^gMGS+0(EBiU^E8scpq@IYGXY z^(4y+UQdx2v@9fB;EE zK~xF*3>GFa2M9M;VCKLG6;G9ph(w&{v;?5NcV-A=Dv>!!Vs#ILm0r|3hX=r``%+kP z=5V@xd}8!*04Gc@*VtPqdUG90fMrE7O|>#mpL4Vj+7m=~Tebi3UeD*t zaTve*4cvWW0k_AG)~y|FURybVgU5y=dO{#dj9sQS$OeZGq!a;TbS`4nC!&!Nw%wQ+ zg+d*fj;S%c4^3>A%$4Wiz@-4I2IrU#FlkKUqCOL1L*#%7;VvF?!iuU!9yCK1jybu8 zDtWli;IrFs0t{9U!Ia5fyu5qyHLee}WTtvzGKfGV^nuWPI>09g1OO!W$p9Xx5QxT{ z+y^0JC=z2l10s;QBiIpG$tM7XDcYfMvu?AAch%#0YTh5`_39tqynplU^P3;%?|#&G z@8^e2uHm=mL68Sc1Y#^gdAy zG+Z$fS#Jn{k_6ocl|mFWxhX^{6LZ(IFZ00!IJM96lP*j6!7&7 zlXwZ5GP$x-5CT*L!>$klOc8}cSuogwR0n~p4S+W0=zT!jvFow{uXjIx{SW`_=l|?i zzxeB~m-F%W|NQ^-&;Of0`u)%0yxL7%t}nlO`IrB@|LXA%|HB`DH}_m4#q#PE8ryD} zVXgVDE|O>m%%*@zvI8&z=zhrE`Mlme|M2!uMZ!`g=XG6j+jQ!XBBxXhhDc^!bdLMW z{a3&I=Kk|<`t$R#D+wG=k8~&;6J&>iNzMTi+nYm~FDd=C}5i`r4k*rq#=O z_w}zYzj%57#R|HOryu%9+Kwkx%BR!v`V|tSb%{PnF!1j9_+uM>8}{ADQp07IRrT8EZH+tV@jtbiOt9M?lvc) zSs?g{GbVfa+4-T^`}c=4Ff!-_=Q6vQQ$Q{j&X_S_&{9oZljR6C!>|-QfPGG7=g7!Y zyf`CrasvlqwB!Kb6i{nfi(d`EUHec~oD{517=%21d2u&URwP-8FAJcyj%ms3g*iVg z)Ksb^=4EA|5Wwn*D9x+kf)Nxu1Ohv{%b8#f7zXNrKwUvFfmqBgiDNoUG-7WKHAce# zD&npVgyskVgx;G(j@>Y(4>QvsMg^M_CQadJJ%)N@4~N@x@JflDQIutkWS&wfIM=M_ zT3(#(^x0a!$(KL-?DFN84_|zBSMC#&MrVSfO$T!gNhLr>v&@F40-9(vj2>3PT23qU zn~PDZt#5(V5!<1CD5X&_<8%kbNb9Nk)bLUkkQC|FYqtJ$RYOr6B0>z~xk)Y22QHF@ z5XPJ}t-K_@_P{C$xYWf}X{Kw_y2z`S_1C}rLe_`*?(eDX>FzT-+K1*6hZ${j3`55;JuAC)14hE()BQAO zjJ^R4^g7*zJceReD4PhnI+o0!PT)NyK?9LXSc^DpCdW=FHWUEE1`udBLN8Tb-KG04 z^OC9*;T%XA84)y)&?K}$09Zma07lLbJ%A`2F;PM=fUpS1P>AXg0YNZ>5?KNZ05ubJ zi(b`w%&ObRIb$|&xBd2^J-+?;)1$q6)c5c958chkT;y&w5@Rx(_4Px1_^^uR8I|q+ zf|s&zh72IN@c-uJUkLLUE>i)K3z1ZtGX^<@6jl!cz(ip<*s_5`NZ~Uni4Yhf1r<>1 z?9+t^B~z^>Ws?jHMkzahumTYZLQ#%W(3MC64SDwvq6wHV2sqp#IH5mdEWnM%1$=j) zPzY;w#2hx_Ja^ji!$RxbKmMzi|BGLI@n8N*=%?TPKmY6h{{Q;JZTc_%@jn6D`n7N4 z5%4%K@2>yq@lVI>?>}x^TcSPhI}6ReulMU0Uw$#JZNENAs(n1q#z3rXo?m`;x4i7f z)23~jFp6t`{q@fi+w=2g%yD?a2o{=1>Yn5BaDM%(FUtKrPKz;fzHcAj2~vKz$Mq~F zC%oLAehOERblkS_Ji#VHZgZ;J`Sm}5bU{1LUw!l0Uwxey%;LA-|Mc$f|9;=Dd3n{2 z$IEA*n?I(d*2@ZWP$-}5e*HyC_q@IT@cwBZo-vrd|NM)u@9r=4H7`{JdC?b-x9?jY zqz;VEOhV!aOaSx5nG_Rl42I|8;1aQ9Y=_>uEAa>~A$`u%9e?$(Cc^j6);l6Nq?KTT z6e=>t^q`O=MMx*PxdWi&B!Dy#az0xdv;smxNkfeQ@w`Hqu$vl?t?L5jy9UHq?gTo; zJb=nzKvYlyKm!QD<$?v^vc#N@y-y>_mvhpZ>gt#m0?aEfWjWX<{plmLPEr--WeIs#t}iJ#H0XZNMJ~Y%vlW2 zWba)Om}uLb1fkJT+tFzFdIp@RKwuCNTrgWe_60Z?)E4H~)jvPymoMY)t9AXeSL@54 zeg5#}-Ex_}ZMUvE_$=7mISkmqc%m}+oD5D8y>~9udrWOMU@dia>t@U41tDKvW$E5b z$iuWPcPG|Xgwnz#7lgXscD7)Wbh!kQ?K73-&;|pU5x0E=tktuRr{|ITIGwTwZqEm; z`KFrGUjO3$%dfdyF5~&fQ&`Zl&9uM&QFChB6NQX)I(sW;7+&YmoW-u8XsQrZJu-}G z;D}(;ARO2M0#}$DdYWdEE^dd<6TpNB!eo@F4=$2fzWnM`9!fozv@Xaih+z<73hm(& zG{6nL167O}@rmJs$O}S4s$hme&L;#z&h8dq2zP7^0-VDg)utIE`8YV5&cU`FeUpA{ zkI((-itpcFAK#7Vu0x>}8AGji3&S}Q#;UXARE3sImpi`Xl~>ATB@Q6r|Kk4Z0ObJV zgif?pzbxZ=EO*(I3bL7IN}~_S2we%0J=Rk$;pT`yOlpW~hP=eIEb#xQ=}((>S*|lZ zY>k;&RnPOh)1J?S0~~-Ly4g*#2hr@ot(HRa5TTGo+5Ul!us=D%ArA`K5$%@La(9#J zK_Ec@1aJ<{u;;zs=^3gjGuK-Bu<5^0Q4yKB)_q@BE@_)#NJU5pS0;&qBpZg7Gb3&} zPQmEl5QBf13)O1UAvR#0kRoqW_g*AAA~mlVF!#o>T5o8LgR|p<5ZV0x7a#wvXV3oT z1Ft{*=AZpP{=fg{0Ion$zxQwVx_$WY^y zgzic6<>QN-P|I#@M@<8?*uQ+0&yx-bh9tvgJ>1+M?w57$VTb*xI;=gWQqIpGY`^!t z^Ye4BO$VEvUF1!{wOxPp8^^18Ki7WRUR>!AN*DF;hEr#o>aYH4dGV*|lSk9}Q{02* zt_^D2&kO(Lcb|gaZd$F*YiN3WwJi_sZ(bd$7hyvcbg;%5y~ae?xMfXc++uIjAbBEO z{eHh5Ff-B8v`pgAH$!=F#$}UVyj&WHf;%w_GGTPe!_XZ#97GhgNrayk)2HgHF#(v47!Ona=0kp(yE)-K9$BCy^>b3L};kd%D|GaFb+P{5kg7Lba> zxRG6sEie`yqopLNBvnf&1WvsJA_~=|Ms-kzV8J;M!WAq6vw*XAkC^j?E;A;_&fzSW z2!kjBMG}!9G(>W0QB{DM1Kb^Gz`B4hC}g(ad_phSPVN>KY=Ms91i7FfTBiiS2@~UB z9;-=_qGSSYAc?p|2!f^HGo}Yyc=R}*f0WC^2WOX$&hr+1IrfSK-T+3T29%iAg_zgc zCso8K1gn5{UmXz)`m&mEJ3?4HEcLh!MO$~F_T<5%<+KhPO3K5)G;H?o?qgXYd#~bl zzpjz59?WlU(nf0Yy1JyC)gh+CQd!V3s^qpVz$MDYdw=%v=CjW})+yV~YvJT+v&^SB z)Y-5i!Qz`~I?l(DQ_n=fc7M-B9BQP2nW6S*hEpN4sNIpk7WIOJ=v4twqOKM+Fg9CT zRKjKUP+~Rf;oc?ja$0?i`3}$*V}RN)H_Tyca9~9zN`ThTU{xV*v&W2>`*IXQMCt6| z)Eh&u7QmsCw%s{SyK&gCs1X8y0e6T*zJgQu8s3ozLI`Gb^iV(!VnTs_#2^eL=oAF8 zG6=9iJpw=gfw{GeSXy1NQ)}Q0R-bL5!+xD_?{D87-oL%Oe${S{%i3_&?J}RJTaXv< z;+QnC_&9Kp>3jury7h_r`y8_I(24anKBmzM*x#okb+piqU#y{NSY+G6h-( za5iXSq(WdlCqZQ#5>l!2oG~QjoZu{z1N_2m~f_mj3wD@8hZ8-W|)J`U6=W$Y=%TE8fu$%I$XcKKGvl+M=8^GyL<5P?CR0Q(+A@;V9dIEIzG;r%KGm8 z^S}73W_@@5q_uUacf;G3&FW6Y$mp}L}-&2yKSqU zoo>JG7!*G^) zUCH2j2@_-_Z#|G12`66eW@HD5ZZiZixT4f<#GSx2b0@=~wyy5PLV`#*lAv2P6jI2P zNHnW1DoJ@&MS!)^+6WZ{R8&w008FV6(smFjr4W$Uk(2@1c-rnn8;B0!=pf7hr(g*h zV674fv1;^%1|)NXg(mI?*TT`9!Xq_I?yllU*}D;hI0q0gVHlu;hbd!shlV)edT?JI zcX4=!z)f?k#?_pX`|6RMF3OsREdmhP&h7#GIW*I4s_Au^Uu zoX*ZFYsy&=Wi0vpY*ZIz)|67jF!j52Kex=_9!U*wn+o)K6%|A=q{5h{f!yw@r6kJI zlXfefhr_;W!KV+-pZxeEkBB#~QPo%Y#Mn`>_C_qxrMQT z0ze@KsuTo@4G88C>PF3)bg+p7F&PeyGn#}ij*F%eVPHMT39Z?@5Giuh z8o?Z`t++C#uvmcu*a%5Ri=}r3@E-0Y(JSc&!lxn^Psj0LE<>V}kQ-0|2#6Iu(3a@# zz(@q%Aq0pmYIGzH3Wz9y6c~UA;7AG>*aMn{AllIv_-o;wm^0uu`!JQwh)CpFfEg{iH~!-%KO$uc(v)RP z);Y?6y%S~d5VnLI5foq!)*1@{L_*>OiIK=PE4JuMqq>rAB2I~-hzJ^6SDZsGG)^D` zAu+E38rcDe4UGbLMC=ZC5eYm+BTPM(01dR6Tlm_cxqJ6uAhv2zm4v;#7bGSx@__0@Ov2JGZCb`<&*buJ@f4Yg_McbGc;f zVLl8aIR@+am|Mb`2{^}bFzyZtf$WO<<-*ar%wqhPgN8N4%Ht$|NuYKh(pM|mPkNeG5 zMU>7zqO%95GZA+MI(Mba6}@uts)T5j`kK`?d_6BWNmKjX+Ay zd7H>N3&@7iakE46SPrg}J2JO=S^+##mH=oi(gno{r;&irg3N(NZwo7nxsrN#268s2 z!QueSpb#W|b`~ZHg=p*y*qj3ZB6>9I!8s_frAUR>7H(wSkr_8hW_H1%QYd(k?vNE_ zLt&T%k&pn1fDAtTu>jTwlr^wu?BJayCF@f_r{cNZtgfG zre+2b>o{gJUsrC10O2UeN;$7<+eke5X#4DUpW#w*{{|CzlX_fM2d@pvpvx(r6=xM} zlP^t`x`Pqpg2U)CkS`<-76u-uzTP+8ut&h!J+Vl)6@js?K+-$9Ma+8yS!;#fL14Y_ z=!;V^gmhY0=-6YssptBSpK+Nce2=)(5=m64CEgp$Dja$a9+>sSECF!gau^>5Mjs)bhEM`PO1e|z(qEyL=bQ5((=AZ#w z0A}cOjmrr2mip!aeEPld4}V8?Z%_Z`U;Om{`Kzyf>$kNS)8(U!vb(syz2DzQH+pbZ ze*Yi;2bZ6IwExSme)`@0DM0g!4mN?yC z-|#R(Xb`7pJ;CLJD@kKpo1KihS7oG3PHPwiq_fTGur9~jL@;b00C=8~xAFbUm&d#7 zJdV0Kmy6vbSHcf3uO96#AD-{daZTfRQHE_ff0C}!cs`lI{_Eeq{L5b=Y>%gPJ>CwF zx7+Qf%i-;EoHL* z4kf%suS=K-2&6&t8q5X`6`?Rh@Y@+c?6uE4{7L68(WW5uDppDy} z2^l!TksySP&{-AN4q2=lPV9>#TG_InAdlh{QX}m!NTQnqHXw?SLE&I|8|WCF3=jcZ z4XY6pTD%=l1l$1t`wHF>5fTU?A)+F{$#tNt%z$X232DKkjs}Q`;7ouK;0O|gLB!(V zgjm5C?LfhT^9K3ilCGXe{&>5+d~#MUwy1O4w{Y)n?hs(zW(y?C0{!6YdUBSam~T$% z-WmwNm>mFv?0l2lf_)95thihsPIII!uf64QSdS+%^<_0;v2Z)^W-Lnec7r+VIga~7$?@qIj~@Q;p&gHKcSpMRHlEg2tsPICC6L>&9jUdZf`Td`0MQl{A0%1K zDU%s|XbT2V^5$kNmo%fkr50Gtrkh`{b< z9_AE^0O1B8h=gJo34p*>;sJsJ8xaQu1`sXb#b8Av>(wpy2JT_i``moNcDS4G+u{2D z`r2<^y?ghrJ%4q3Jhj@*!VGXE;aUv zhXL_cLeY_f2qNu78tH&kL4qi#u$vQh6UNS5S2TcugDe=q7D0D0LZj$lV7!G$?ufzs z#V6a}eKg>&?*8=8zWvv4fBS8_JGI`tuT}=WIjrDie>|iufAKp{fA5c;A$<4qfAN|0Im!F;PkxNouje}l@E3pe^7(Im{`7Y~DGwiwaelvl z(MfE-^j-%7rfjVh=&e@fHnJ=5@pyW_kNLP9*A*~@BS0GlelVo6`j9EA^nsovX%B;r3;eZ?lacW5%^9I5I0#P{|x^*CmAOv96wg3Pk z_m1I)D8gQwW4QM=O77l8Sx7}WmnaA+YplkJSyx6eAZ!K<;EeSI62V)q_t@2;r(OxV z^cF~h<~U+sKHL(RoEj>kBcoT+j-thX;g*>^dCD2f{gpO-c{O z;qr-WJ|1=tpPk9$0rvH9zjzHZ1g}e%2o9TPueNe$QUU|-RxOG`@1b2#j5TMG}a6$?U7tNA{2pdl@D0&0}V@PnH&2h1` zajxDib!Y`N0#7Gl2zM~=n2jJBKw@jaiNVF=#3cuiBUC>{lY>(tz5K$cb6hBA_446Qeacr-2gx$>0B{GET&_+a*EJ3Hynnn+(i| zkkD&LAa=4I;1wAMX27Ln{*d0c2wQty0e~Pm1p{iKu45{sngfZnFtH#Jl>xAjRHP4; zvIa(+Fpz_SPys7eHlN52q&q+&D;+lB*>vLkfUh>?$w3ZZ-TeQ4@%-nfukTtcYd-|k zYQtb_(|mTmJ#WkH4?h3+=^y^+@ov8U_uu_@fBNQlf0~;mmS`0+6&cXO4G?HuP7*!k zP3sL4%==>t8pko9W6h`53^2uL%TaRTbKZ@+loRF2mi6v-FK&QIz&ke5fg<1By{-$a z^9lTP`Ni*)l)x$k_H_nlv)guB*1J1F-aeEv%5XKN0n;v*s|^o^!As}YfA&9q{qyhK zOP=!P(RrrLa(mm``_1_->(FXNWrIc>ahk35s3}^Ap6zxIF1|mUJ$yQBA3ps2+0qlw z#}&u<>)W4w`|51BJp7wK%ok_nJ-&ML+jUkzDVM+q>uz{ zRT{{f2U~YwRte*QsT+i22bu&Mb`E3=jLZgEykgnuJlj~DD?!25G)_SQTCkJ)J@SB1 zjS$VDA&2z{>>Zdx08FT^2&+RDlOO_26o43*5=AfsmV~rYiLe|PT!?TaU?MZ;JPtjG1#1dtKH zz@xI59hW5xjl#`btZsxc<2hm8SRf~mMKL*_B3xy{^Cs^0e1 z)K*x$A78zD`_19&Z|+`v*S~u?zrL%XvWj+(gsARWcom!ez=#zgK!0t6%&Dl)pED9)|#TQ@UB zG+)=Xb|(yX66=YK3uo`lL?}vx*#MNdvtV=uS)&V~Q?M&SZAeF;O~4@%I^^gLWdpno zKKJcIe()f6&)p96_W9`-w>RI^`_o}<*bW^cpTZ>#5&hwl-yOzxsKe)f_b1cUeEijm zzxe6Pude5Y(t^$gVJS(aulqnn;SI1w4UnuUjg)l2o=BjjLJ6bF3Q-Erupr0 zS+1uCSNZHIafiy#y)_}m^|;TQUD|Ah#}|6K8>ZufA3wdk;`#Z{_AlSNQakk9+xq(X z*B1|L_v}$Vd%S-0&F%gG^;FVGy`{vkF37S`;6hX4-u>oa*47r#t)nJMI6{AP2AsEt zH~05z6NiSH8MwIxh&5y`B5PQ0LR6)#OohCI2Ra&~cN>5$1rl&iy_*mdBWg)$%b8S) zhv}&E+6e=Z3gYQhE#L$Ho*26ucu<63FVjUkT@T|q)`cfYOJvD@Lf#fdfMY#84&3oDF2aKo+1VFfe9EVqj(`pcSYf3b>IFf`$ZaRW*%#pTNq%<=*=zE z-IdOS=Vqnwkk)=c$Iij|;TbN+)4O8;cor3~wTq;~QYQtlb~<6ni)yOJ#b%p(%fm>b z?PNKXf!#V?iW-%}4yd1l`GmZeJ zBUudz*P(k2V@=uD7KFHTU<`2d3}C=i9RdTF3M3d7iE~%V8R~rnz2BdbcXJ~t^>pK7 zs%wn~5GQb=bzZ4ZGh4eyOJM{ag>9Z~UTv=4A(-Q|^d8#>)78%NFi4siffxWSf(dJw zAu^y~JNTaa&0<-ANRz;zFbsJ+avISCQzDhflE`ZT&qXYptwoQhRLrh63&RRQYR}`G+GT)9E2dIl=6U@ zb4DJ-MF$=opE_|=PF{kvCRKHnb}@8&5Y zpw?53=Y|%cF2ZCYE8lw*A?s7kRvlK6BbE^_Yh( z0h0H;sksyeJU##A(;qw&TNv*t~i1o8OH1?(DOVWI6ll*FTMp z5?uvHRUS1&OLF$E({y)gcelMs^fUyzoGOKv9Gh+4Fu$E`UEGAjS|UQiURz+PwbH;% zhVVW{owgg#sd)no>;`NR1q*ZoT%mgh6`x(TM-n9`vnGlA+*;I*IiY$4geIVIL)I8f zteq-iHzN>$X)2u5!E#cL7)ZsNGneE&oKLGxMT4X@q;PMYwvn6-0k@77Wkk%juDsi- z9|D9Wz*ZMWH|Ig5#fQE&DI<_1aCCIf8@Cyo2NLIj>;y>Uz*d`Xc{yTc^y;99z{P_g zN@3`bH3YB_u?H2Tjsk><(!d~yK&&24*s%!`089{#z>pazBRE0xaFBvw7!E)PZbSqP zdsE^;@oE_PtkG?>2!AjAzK`WDfh$ixcG4K==$dR$;am(KY4iZWN3$b z!zu2rTNzfD)?CldiF%^uurqKcfO4*|;s^Z`T~M4FG0B+Qeu<1lrJLsw$05SH2%`WQ zu<$e~EQ!fNkyhCE7_+bg2Do7F7%MQi4%yHF-J7ivf_;gw=w69-^Lzptx{Jb%4nPfkB&%R6B9Vu&GIJmRBtnKDz!7U; zhKK}V4xI?Y*XUqg-Fq0iLqGMpL_M{``@{R!>$hLsef{13aen;mAM($1r9_ z+>{K~bx?N9&{eiW>JgT6f&>iEJQ0SnDI|pjq>v;3$>0A67!IgBsH!59gkhS8I9LdpXtX!mI7-Jl+`S_}ReQb9G3Mn|CqmeoG5DsAME3ExUx$JTo zE;qw;zI*iK=IzUO&)++S5ssrohz=VvOGURIUwClq9jbq@c+@(N51*br{p9+$zusTp znkc!E5d+UR@3v1L7uk3W5KEedR4!!P5^&Z$rt`Afo#v%c+MO%&`TXMjmw)~ha=&=` zba(M_wTmnG6By?t}%6}mYPlr*%~5G8tag@Lph6Oe=fATyXTGmsGE;${>Mjz&n1 zVI4E&X#k%k&>BELKpMmiIykv(w!;|Kby@Cd1ViN|*0F|#)@ zH#6#lhyxO)2CUYrhl2=Mj~anNuwk6d791yyH5`~AoRP!(3TYVTJ7xhF2V<%M5fa!u z5@S1IYo13Mwn5DUsC8op5W+)nf`r&QQefI3bTCvMFtOl@JVbU#BWkCSP?Ki>?;r@= z+*hCiVJ?lMffK?EfGCWC0ulj^je;=(S;O5iFd9(-`|AUNK{kR9HhFj|`SFA8`KP(V z&3w}{kaKM!{EYebXnIZ+Ql#Q1ATN*ogr zNVeJ{D>`%t&>?hk32};K)HC&aXO^;sdXxbmO0r{{wsvZWjZ#4l2&6J#fGI_5MB)+N zoX8EGkg8W?46`+W64(0~NeI`FVr?loi8kn#GNA#?ci;%Ew+enZcx#%t z?U~40hGBODb6?F`^kb@b*ZaeA z^Df?e_43;n%eUVwhh=3JvPiv8EW2|YfCe^JPm~aYyR(XqTBM_BMq^>O0Pl`TylbZD z0o}vg1Np!FNB=8iB_hOzm=F;MjG}=OVF>^lQCdCa=&r$-fV;`rNJPtFjS|p>u^-(i zZLL;8ElLiw&0K~kxo{p*78oXGXMvDWun`=Mr@#?xWoxFvl)aB+71A1wKq_yOz?(cD z=(P9KX+Bx%Gls)*u+=?iX?U2eEq-w2scbGk`t*xuhnK(F{oap0`NJW}cJIIl4zWfJs{6OP8P1Z#`xfef3LrOcf7e4g=pl#lK3J8nj!PLF83<|EruJ!z>Xm@30&>C9oC!M)@8s} z!wnK~V7EpTl~imsb6?iRkUqpk&?Kw3=yd@YoWV&xxQIC;b;2-aMV4SQE0mDklCWjD zC`jQ^p?3!m2)7_K3q-((l-O%_(Tu~WBL@&dN1BuX8`Q$+>{!=;5g82u{X_a6DKT+i zZ^B8Cq0ip20z=9*wX_7Fs&&*HkqMUIGxpU(IT7~oG;jlO0BATbNYDZa0BAr7Quf-w^b(I)YOD;%C&z}eLWTzb2`-Y>{Rh;6L|4CrUOv0=SDFR{8I zjN;T=nM$A6x<5511(zhprAp+Z%>f{R$9YX>IjYqaSfvrku&tO6$ELEKPqz<0y8QIP zFkF}&f$L2(?m99IOlF z4r$2Mal#HEjWkgQ(2FE1aEV~50m7UI=qn&Fkhv2wG;_($U`)7Q9l3)*LA*byk_e65 zd6>v%HnWl>taYD{&CF|8_FlHz^Gg{YZpKkDDN6t>02t82m>|NlO95Pw2M`Pdg78?u zS7bn6!!4i%d>9&q)fKGze6%C>yEp58nXm6(y}14EyZe`~4!20%LlaA}-TC(Xf~Kit zj@V=o)KE^)nN$cGj3h+^12AQ4%|g9l=d(BD$l-j?_;}grh}x2NPKCjE1&9E%&kXIIdbT^5cik zKKs4YUcLMF%^&=)|IYMy{OZ5{7k~DvW3A={mKm^kI6-4dIdSh6nl@#$)xe`cS7I2( z38Q1X{QO74^ycedzrDM6l+0j)Ekaoch>Ab{{Mk@0Y;F6uH$8-5F~zIzf02}4zx-;A zKq)yDug$m@%{DjabD1*la;%G3q^{WY)3Y;_3Qm z>)8)~h)aI;tAF|K^?Yc|`0niEPcHC$|Ki_&?;rl1;l$tl=GWAl5knXt4_tNNHTm(z zjeO~OX$Py(F%-OP)8$28YaEW+*bxz=Kw-&HoxOJmNTqa1A5?c-a>=ElBQOP!CQM>W z9R_tq2?roijGzE0VJiSMM@Lpjd82`hm3Z*hA)@yvVwVkp_%b4V#$bUE_C~?zfzSXNAtF>j2Mol}$SL}ESa**K zK07}vpUZN6b2@fs!bWC5yw!%X*%pWfH@EBXa3j(+Cla}Pd#cSc5t1*B(n#I`*UCga zVlYdow7X6ekrQk5{c%}bv(9z>=;O`;U7KCC!DhWlDp<+}I0s<@@a9}j=4vDNI zgP7*px|34?0YEb+L%S?xg!xEDKY^lV2%hh1k7MS8~`N(0U^TTcr^2VJhgeQr<=oj+dqH#@OdHVj3^Qa9H;}@>dfE~t|J3D zI{(Q(`i}z;8(Wx6Q<$O|APEs<78+7(Rt15mcMPYbT5@57#RH5y!ovyH<7^vMOO$M& zoD+;<=R;PKEqkOi%nX9ojmxS^6E0Ls7Z$D;^RO3`1$|%7cJRO{+B;omcw8DU;q1`esfzKz6LN*I=gzNXXW(j+gD$|?2Db1ysk$MbdEvd{Nf6P`n&gczxndjm%j|Z zNsrGFGhy!cFJtfrzw-yX??1qp``ec@&4|*oo=RQm!&*uZJ+WO-Y9$W zalN@+j`wGew$qcxnm0Hfn=j+VMv|*>+}_SNU){dJ{mq;5RQ2j}d$+!L^)h;1m(%4L zfAqV5xV*o;d{Fbl-P8PYY0AOhg-0HxiQV)}KDRSO}K2 znUguy-bN%L;zVKC6$E`R;dF3b_f&;SAvL>Nl6wT z@Ka1SpA0a7J@TLsv6@SUT7wctkhOKBPAJnxIxFBv}fKrf}N_HlXk_H6~Ach5aJAS}C_u2)d_m;j9zliVN9IkH{Xf0*P0T&adq=|sV z2?(dNZV>A}7eV4EG9YqFf|$ZtvXdu&w zR02Q~ij!4N2@(;TPy{Pr#||z=OhDkhX{PxY2z{*>>kS)h1_I%cW0*D*S1qF!@U+1k zStme8JOf_rQw6;9B z{P>HX{K13W#h8*78aHFT+rNJI{&YCZ%^fjX5Ek{mJG=b;-~Kz})t1<9zWna(`+Z^> z$IbBc;e2=f;;UcZ-5yB?$>fdKx#g4}JbLi-d*9c-iVkmHzr4N1dUw2k_m+lY``bh` zKKyw4-HYYTmv8?4pTGFUi)BIZDBCiP7uMr&e+M|9J$j}r?#HA%TMj7?0@+)4fN~+@ zqf0#Yc33b0g8^$)YtO%RX*oYw+gttQL4No}n(fW|=cifr_wNtO*W2=GefRU}i_Zpq z`ugQ>Pt`;fp-rSd>U>j|+AZhx0|wD7my`sDz$X{He>(^CB<0u}wxf;5GuP`sp8JJUBV88fgnrf_{eD>h!_aEVM=TV^E^twhZ z4P!{8IYFO`w;q6g2;H)vQ^Tlci8;c-A$nW6BqlM_Fk-Ukrl1`gjPK{ZG*ZAwm(tQWFzmx)=TDl(la zEjKG~+x=lVc3(XY`RpP;{(KnE&xWl46Ket@h(MMwL!8{(|SdzkKn{*X^6v_owcysuoqj&6qX>|LCU2c=_AXw@Puz~}m}t8Cae6kCb^hq@{lWaz zpTB<>!(}OS`|H1W{_lSA+Nh8L5~T=LwH6rY?bsRwA%VBkvIOWb2F*`Defr?ZW&$Z`cioO14Bb)@P9x^D^qxn}LA7=@oH7w2vpeDpf)Q(V&Jdmyk!#(I$-~F< zY^O+t7y-MDP{9F#sR$wlC14UF*DM6_Ax0Sh)FS!;F@VS7JF9_8gdec^N({A`B7|Uc z0LL=WN-hmikq}!CnZg`{#TMkzw}}wR%{3!cpaN{bjFONU3X%auAbF%6`RV~oH3Y*~ zC?bI3b+kL(hZ)h{G{h5gJ6rlt09-0R_z=A!5d;00W?7chH2;AQ%`U5P%3G zNt#OAUIJb{F0qrF@7|vlZdNvqo=@{i=8@B8lgpSY!g@O|y_ZpKX=bKE{eJbZO`&CJ z$%8=eP75=1L~8W@c;9I^3<%5o#gDE&dU_FeFBzxi(3iDI!Ev(@<6K%j=G}lj0t;9- z6cE$Uh=pkIei9ynBN++=*j_VgBP#<@+OJ+X-X&vmDWQbFcn|S+#(tf zoMvBJcQ*r34FXW4UBX=!opKS^T(q2XG|C&MMw}Sj86GG=BY=P~fDpZ5Iuk;~ zK+4Wb3m$49%e8^@+#xJsqe8EX@Lh6*T9N6df24dv&I6VLdE!P6M(53V9F#D%WPP0t5sTgaHfI#f&-N zLlG-c)Ks*)B+|K_yl*oC14W~bhhwkS60xQU!C`5s@b2N@0SR=cg`*FfVTy_p78*zi z45Ng5^e&Dm2{Pk{abyAO&6w$N5$te-6;!C6n6-Zlnp=9DS;OK}DCjAtUAPh;+lM|u@AV6CIdU(PJ zgcCq^M(GV4C>9C=S^)^XF>|;hILn#G5)lAOa0)1?OZ+nYO=@h*+wmzRt2^IX*jyFqlV6^6d0oJ@PMO<*Tt!jO(VT%(^{(PT`vG%ipYAqk37Wftp1wgMA^N3i4$v;~ytM_X0J z961Qs0hSYj<%^BZ_rvzA_$g5%EzK+R)(z{)dw{OY!rP1Cvrlw$ah9J9T1M1N)Ic`~ zOTY-xQ5<>dpo9&hBM4H97(DI~0D}Sn+z7DsYKPn9`tJH&eeuou-HYqrzFdx*a{F#^ z=#DW?(=Nxw<*?f&@TNql-K|>Va3>5TLSv#;d#FfpBV_gfF&;)}=F9A@2PJ^OW&#z1 z(SZMpKmLy(z+#1toRT}rSpmvCIXa^v2Py@OBSuGQQ4Oa_VDY*z<~kqj2jBbL9-cq_e7DxO|MtKBd6Y51dQiQ+kDL9{%se_pG;f4HK!Mx? z$(H3qhJrcub;f8UXpP%(AIqWE!`kk~^I^Ce&$nqa+U7yoel(mt95+{i``fp_`SP1z zJYP|U@!^p3@puD0Dz+r4OpmYMeSLp@M@g^F#~=OPA3XYOo0M+8`t8ft$Hk8f1zE?@ zFFyX>)enErZ+~@E}rXUrv2 z0E6fAqT6YGyKe|YEMuk$R-1EAyX|^czx?j)b&KO^c>nIV&mIqFf8%fJlHR@g?cr`g zvLZ2T&vg0C?hpTnuHS$A+vo0elQ4qX>3DQ>vkKUjnSepjku&?_2jkM_`~AsG!kf(@ z%6**y5K``^CQOd(z|z1|=6TOd5)KHQil2Iq27`oIsvUcP^9O`IVHFuhhWXUiZP=#3_|bRDOz-oNC~~Nfg`ccjw9NU$RKTy z3}ay;5MU-4lnqfc_EV&@@BnZ?AYl)U-Z3Wz?5Y(u~)o1T3cuIj?}d%b~h5Mcs807=Cc7#^>AE=Q3C)R-mi|vULmRf_y^C% zN9TC+5=Cp|dR*o*6I7m&krF!+2v+~F9EO2~9Z1Nr%|QSJfr3b3 zANU*@iOD@N060eC+FVj&O|)RjgbizTWT1wDp&5M!1j=W~Enr}9jt)7qKn5SjB6iAy zlR(ugIbL_5#W^6wsr8@@)vF75@a$~!c$3d_8d#MAmBIpoksvD2gmJVFDmx+oqJVCl z5F;F|c5njqR{PrLqa9w~-M_9czkK)ldU<^(hx?OWTyn&@z*$LGXL^<-7gV$$Mk7C2 z060rdsW&5G*2DuRHYyq1Whj(Jsxx2z$cS1n6aVLb?>`A6jFpESaAis8 zO@)~Q!jK{;5ujTD5V8t+NJYyL2G$KxtW}`4n!Bv#VU|?NI7|gb^)0aP)9tJb!#iq*+R>)p`SM%LW?a#=tPATB|Xp*08ULF>KWc zHNpUdsWs*gCX}EKfEd9gEsX~$1g$d)Z8I!08OOz#M@A9eO@3J5fS{4vp-PH1=$t6; z25G=8faQF{9F(P#V|WM!0ip=9I3u;ngdky1z+;(jO&=EOV-b}CLac-hoS6(9%`r>e z8yLZeb}~*(9>kOcOadJdy-W}os=!FmfeAoJ(1DbPU?51u79YxwJ|J~q1j^WrnZPa3 zAPHGmoDdjg^MU@3sDKL!5Q1SNYaHmjU~Ge(f}Ik=LZA`h5yTCV(Q7aQC{tjJLD#xas5L4Z{V#zdg>U3T)QKuuWnuir%m9m%21%Z^&8gv|zPWDyNZ@ zVW3jibur&;<>p`s;O4d)Lq?l+=|?}j8ZNGIeuMg;`@F2B+Dei#(~1RJgJ2YlXda0? zId)X==4NPZH6~`jxh*3$1FgSn$oha*;N=_Wa%Icj}sjqFPyefb{rqjsyLkJX7w$eUbAqxW zu%XohLMfD%-iCr<-OUgHKAgjpwO|Pm`^HZ*Skec)!$M4@<>ktKHjanJrpkW=X>|oU)mfwMr`<(jT$eR4!q|MydZt6- zOl&9#$)z4n%-$`jAWu{D-j>q#f zc=sTu-4E-_U%r38sI8mrgX41l(I>F|;U8ZA>aXr@5A6sTOA}f~?G2Fvox9KGU|u%~ z&(AWpxLu>$2W)T^BNkvLR;@ zgAh?>r}K-lznxV98-X<<-dv{AeN$o-IGwyToacif>)cPxSlZdu20eU~0=C&soYGil zMCVRSk;pk`9zC2GF}fMidNbdx2hu4c4p6fcqaaoa0zzkzHls5FNH=B-ymyQs%n&OA5el#cCBgt}fPe@TNT}#eXh9gB zn7L3Hw+lWvcm62$@88|rNA%chPzLQ$ky7{^DWP}pRw0nMnIRIW0}_I| z7etEy2x%AIx4$DgIm
wJluA(~(jXMD79z-u$cTWT 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%0AvqLfzk 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 JPDHLkV1h`lH~0Vm literal 0 HcmV?d00001 diff --git a/webroot/img/lena.tif b/webroot/img/lena.tif new file mode 100644 index 0000000000000000000000000000000000000000..ffe5c835d01701e9732194115a0d90d18232a0d9 GIT binary patch literal 786572 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