PageRenderTime 53ms CodeModel.GetById 12ms app.highlight 26ms RepoModel.GetById 1ms app.codeStats 1ms

/includes/usercp_confirm.php

http://github.com/MightyGorgon/icy_phoenix
PHP | 779 lines | 612 code | 79 blank | 88 comment | 85 complexity | 8f8c76721c68ed135b92e248154b8578 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

  1<?php
  2/**
  3*
  4* @package Icy Phoenix
  5* @version $Id$
  6* @copyright (c) 2008 Icy Phoenix
  7* @license http://opensource.org/licenses/gpl-license.php GNU Public License
  8*
  9*/
 10
 11/**
 12*
 13* @Extra credits for this file
 14* AmigaLink
 15*
 16*/
 17
 18if (!defined('IN_ICYPHOENIX'))
 19{
 20	die('Hacking attempt');
 21	exit;
 22}
 23
 24// Do we have an id? No, then just exit
 25$confirm_id = request_get_var('confirm_id', '');
 26if (empty($confirm_id))
 27{
 28	exit;
 29}
 30
 31// Define available charset
 32$chars = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9');
 33if (!defined('CAPTCHA_FONTS_PATH'))
 34{
 35	define('CAPTCHA_FONTS_PATH', 'images/fonts/');
 36}
 37if (!defined('CAPTCHA_PICS_PATH'))
 38{
 39	define('CAPTCHA_PICS_PATH', 'images/pics/');
 40}
 41
 42//if (!preg_match('/^[A-Za-z0-9]+$/', $confirm_id))
 43if (!preg_match('/^[[:alnum:]]+$/', $confirm_id))
 44{
 45	$confirm_id = '';
 46}
 47
 48if ($confirm_id === 'Admin')
 49{
 50	if (!$user->data['session_logged_in'])
 51	{
 52		die('Hacking attempt');
 53		exit;
 54	}
 55	$code = 'SAMPLE';
 56	$font_debug = true;
 57}
 58else
 59{
 60	// Try and grab code for this id and session
 61	// Use this for User Confirm
 62	$sql = 'SELECT code
 63		FROM ' . CONFIRM_TABLE . "
 64		WHERE session_id = '" . $user->data['session_id'] . "'
 65			AND confirm_id = '" . $confirm_id . "'";
 66	$result = $db->sql_query($sql);
 67
 68	// Use this for CTracker
 69	/*
 70	$sql = 'SELECT code
 71		FROM ' . CTVISKEY . "
 72		WHERE session_id = '" . $user->data['session_id'] . "'
 73			AND confirm_id = '$confirm_id'";
 74	$result = $db->sql_query($sql);
 75	*/
 76
 77	// If we have a row then grab data else create a new id
 78	if ($row = $db->sql_fetchrow($result))
 79	{
 80		$db->sql_freeresult($result);
 81		$code = $row['code'];
 82	}
 83	else
 84	{
 85		exit;
 86	}
 87}
 88
 89if (!empty($config['use_captcha']))
 90{
 91	srand((double) microtime() * 1000000);
 92
 93	// For better compatibility with some servers which need absolute path to load TTFonts
 94	//$absolute_root_path = IP_ROOT_PATH; //Why this doesn't work???
 95	$absolute_root_path = str_replace('index.' . PHP_EXT, '', realpath(IP_ROOT_PATH . 'index.' . PHP_EXT));
 96
 97	// Prefs
 98	$total_width = $config['captcha_width'];
 99	$total_height = $config['captcha_height'];
100
101	$hex_bg_color = get_rgb($config['captcha_background_color']);
102	$bg_color = array();
103	$bg_color = explode(",", $hex_bg_color);
104
105	$jpeg = $config['captcha_jpeg'];
106	$img_quality = $config['captcha_jpeg_quality'];
107	// Max quality is 95
108
109	$pre_letters = $config['captcha_pre_letters'];
110	$pre_letter_great = $config['captcha_pre_letters_great'];
111	$rnd_font = $config['captcha_font'];
112	$chess = $config['captcha_chess'];
113	$ellipses = $config['captcha_ellipses'];
114	$arcs = $config['captcha_arcs'];
115	$lines = $config['captcha_lines'];
116	$image = $config['captcha_image'];
117
118	$gammacorrect = $config['captcha_gammacorrect'];
119
120	$foreground_lattice_y = $config['captcha_foreground_lattice_y'];
121	$foreground_lattice_x = $config['captcha_foreground_lattice_x'];
122	$hex_lattice_color = get_rgb($config['captcha_lattice_color']);
123	$rgb_lattice_color = array();
124	$rgb_lattice_color = explode(",", $hex_lattice_color);
125
126	// Fonts and images init
127	if ($image)
128	{
129		$bg_imgs = array();
130		if ($img_dir = @opendir(IP_ROOT_PATH . CAPTCHA_PICS_PATH))
131		{
132			while (true == ($file = @readdir($img_dir)))
133			{
134				if ((substr(strtolower($file), -3) == 'jpg') || (substr(strtolower($file), -3) == 'gif'))
135				{
136					$bg_imgs[] = $file;
137				}
138			}
139			@closedir($img_dir);
140		}
141		// Grab a random Background Image or set FALSE if none was found
142		$bg_img = ( sizeof($bg_imgs) ) ? rand(0, (sizeof($bg_imgs)-1)) : false;
143	}
144
145	$fonts = array();
146	if ($fonts_dir = @opendir(IP_ROOT_PATH . CAPTCHA_FONTS_PATH))
147	{
148		while (true == ($file = @readdir($fonts_dir)))
149		{
150			if ((substr(strtolower($file), -3) == 'ttf'))
151			{
152				$fonts[] = $file;
153			}
154		}
155		@closedir($fonts_dir);
156	}
157	$font = rand(0, (sizeof($fonts)-1));
158
159	// Generate
160	$image = (gdVersion() >= 2) ? imagecreatetruecolor($total_width, $total_height) : imagecreate($total_width, $total_height);
161	$background_color = imagecolorallocate($image, $bg_color[0], $bg_color[1], $bg_color[2]);
162	imagefill($image, 0, 0, $background_color);
163	#imagecolortransparent($image, $background_color);
164
165	// Generate backgrund
166	if (($chess == '1') || ($chess == '2') && rand(0, 1))
167	{
168		// Draw rectangles
169		for($i = 0; $i <= 8; $i++)
170		{
171			$rectanglecolor = imagecolorallocate($image, rand(100, 200), rand(100, 200), rand(100, 200));
172			imagefilledrectangle($image, 0, 0, round($total_width - ($total_width / 8 * $i)), round($total_height), $rectanglecolor);
173			$rectanglecolor = imagecolorallocate($image, rand(100, 200), rand(100,200), rand(100, 200));
174			imagefilledrectangle($image, 0, 0, round($total_width - ($total_width / 8 * $i)), round($total_height / 2), $rectanglecolor);
175		}
176	}
177	if ($ellipses == '1' || $ellipses == '2' && rand(0,1))
178	{
179		// Draw random ellipses
180		for ($i = 1; $i <= 60; $i++)
181		{
182			$ellipsecolor = imagecolorallocate($image, rand(100, 250),rand(100, 250),rand(100, 250));
183			imagefilledellipse($image, round(rand(0, $total_width)), round(rand(0, $total_height)), round(rand(0, $total_width / 8)), round(rand(0, $total_height / 4)), $ellipsecolor);
184		}
185	}
186	if (($arcs == '1') || ($arcs == '2') && rand(0, 1))
187	{
188		// Draw random partial ellipses
189		for ($i = 0; $i <= 30; $i++)
190		{
191			$linecolor = imagecolorallocate($image, rand(120, 255),rand(120, 255),rand(120, 255));
192			$cx = round(rand(1, $total_width));
193			$cy = round(rand(1, $total_height));
194			$int_w = round(rand(1, $total_width / 2));
195			$int_h = round(rand(1, $total_height));
196			imagearc($image, $cx, $cy, $int_w, $int_h, round(rand(0, 190)), round(rand(191, 360)), $linecolor);
197			imagearc($image, $cx-1, $cy-1, $int_w, $int_h, round(rand(0, 190)), round(rand(191, 360)), $linecolor);
198		}
199	}
200	if (($lines == '1') || ($lines == '2') && rand(0, 1))
201	{
202		// Draw random lines
203		for ($i = 0; $i <= 50; $i++)
204		{
205			$linecolor = imagecolorallocate($image, rand(120, 255),rand(120, 255),rand(120, 255));
206			imageline($image, round(rand(1, $total_width * 3)), round(rand(1, $total_height * 5)), round(rand(1, $total_width / 2)), round(rand(1, $total_height * 2)), $linecolor);
207		}
208	}
209	//
210
211	$text_color_array = array('255,51,0', '51,77,255', '204,51,102', '0,153,0', '255,166,2', '255,0,255', '255,0,0', '0,255,0', '0,0,255', '0,255,255');
212	shuffle($text_color_array);
213	$pre_text_color_array = array('255,71,20', '71,20,224', '224,71,122', '20,173,20', '255,186,22', '25,25,25');
214	shuffle($pre_text_color_array);
215	$white = imagecolorallocate($image, 255, 255, 255);
216	$gray = imagecolorallocate($image, 100, 100, 100);
217	$black = imagecolorallocate($image, 0, 0, 0);
218	$lattice_color = imagecolorallocate($image, $rgb_lattice_color[0], $rgb_lattice_color[1], $rgb_lattice_color[2]);
219
220	//$x_char_position = (round($total_width/6));
221	$x_char_position = (round(($total_width - 12) / strlen($code)) + mt_rand(-3, 5));
222
223	for ($i = 0; $i < strlen($code); $i++)
224	{
225		mt_srand((double) microtime() * 1000000);
226
227		$char = $code{$i};
228		//$size = mt_rand(18, ceil($total_height / 2.8));
229		$size = mt_rand(floor($total_height / 3.5), ceil($total_height / 2.8));
230		$font = ($rnd_font) ? rand(0, (sizeof($fonts)-1)) : $font;
231		$angle = mt_rand(-30, 30);
232
233		$char_pos = array();
234		$char_pos = imagettfbbox($size, $angle, $absolute_root_path . CAPTCHA_FONTS_PATH . $fonts[$font], $char);
235		$letter_width = abs($char_pos[0]) + abs($char_pos[4]);
236		$letter_height = abs($char_pos[1]) + abs($char_pos[5]);
237
238		$x_pos = ($x_char_position / 4) + ($i * $x_char_position);
239		($i == strlen($code)-1 && $x_pos >= ($total_width - ($letter_width + 5))) ? $x_pos = ($total_width - ($letter_width + 5)) : '';
240		$y_pos = mt_rand(($size * 1.4 ), $total_height - ($size * 0.4));
241
242	//	Pre letters
243		$size = ($pre_letter_great) ? $size + (2 * $pre_letters) : $size - (2 * $pre_letters);
244		for ($count = 1; $count <= $pre_letters; $count++)
245		{
246			$pre_angle = $angle + mt_rand(-20, 20);
247
248			$text_color = $pre_text_color_array[mt_rand(0,sizeof($pre_text_color_array)-1)];
249			$text_color = explode(",", $text_color);
250			$textcolor = imagecolorallocate($image, $text_color[0], $text_color[1], $text_color[2]);
251
252			imagettftext($image, $size, $pre_angle, $x_pos, $y_pos-2, $white, $absolute_root_path . CAPTCHA_FONTS_PATH . $fonts[$font], $char);
253			imagettftext($image, $size, $pre_angle, $x_pos+2, $y_pos, $black, $absolute_root_path . CAPTCHA_FONTS_PATH . $fonts[$font], $char);
254			imagettftext($image, $size, $pre_angle, $x_pos+1, $y_pos-1, $textcolor, $absolute_root_path . CAPTCHA_FONTS_PATH . $fonts[$font], $char);
255
256			$size = ($pre_letter_great) ? $size - 2 : $size + 2;
257		}
258
259	//	Final letters
260		$text_color = $text_color_array[mt_rand(0,sizeof($text_color_array)-1)];
261		$text_color = explode(",", $text_color);
262		$textcolor = imagecolorallocate($image, $text_color[0], $text_color[1], $text_color[2]);
263
264		imagettftext($image, $size, $angle, $x_pos, $y_pos-2, $white, $absolute_root_path . CAPTCHA_FONTS_PATH . $fonts[$font], $char);
265		imagettftext($image, $size, $angle, $x_pos+2, $y_pos, $black, $absolute_root_path . CAPTCHA_FONTS_PATH . $fonts[$font], $char);
266		imagettftext($image, $size, $angle, $x_pos+1, $y_pos-1, $textcolor, $absolute_root_path . CAPTCHA_FONTS_PATH . $fonts[$font], $char);
267	}
268
269
270	($gammacorrect) ? imagegammacorrect($image, 1.0, $gammacorrect) : '';
271
272	// Generate a white lattice in foreground
273	if ($foreground_lattice_y)
274	{
275		// x lines
276		$ih = round($total_height / $foreground_lattice_y);
277		for ($i = 0; $i <= $ih; $i++)
278		{
279			imageline($image, 0, $i*$foreground_lattice_y, $total_width, $i*$foreground_lattice_y, $lattice_color);
280		}
281	}
282	if ($foreground_lattice_x)
283	{
284		// y lines
285		$iw = round($total_width / $foreground_lattice_x);
286		for ($i = 0; $i <= $iw; $i++)
287		{
288			imageline($image, $i*$foreground_lattice_x, 0, $i*$foreground_lattice_x, $total_height, $lattice_color);
289		}
290	}
291
292	// Font debug
293	if (!empty($font_debug) && !$rnd_font)
294	{
295		imagestring($image, 5, 2, 0, $fonts[$font], $white);
296		imagestring($image, 5, 5, 0, $fonts[$font], $white);
297		imagestring($image, 5, 4, 2, $fonts[$font], $gray);
298		imagestring($image, 5, 3, 1, $fonts[$font], $black);
299	}
300
301	// Display
302	header("Last-Modified: " . gmdate("D, d M Y H:i:s") ." GMT");
303	header("Pragma: no-cache");
304	header("Cache-Control: no-store, no-cache, max-age=0, must-revalidate");
305	(!$jpeg) ? header("Content-Type: image/png") : header("Content-Type: image/jpeg");
306
307	(!$jpeg) ? imagepng($image) : imagejpeg($image, null, $img_quality);
308	imagedestroy($image);
309	exit;
310
311}
312else
313{
314	// We can we will generate a single filtered png
315	// Thanks to DavidMJ for emulating zlib within the code :)
316	$_png = define_filtered_pngs();
317
318	$total_width = 320;
319	$total_height = 50;
320	$img_height = 40;
321	$img_width = 0;
322	$l = 0;
323
324	list($usec, $sec) = explode(' ', microtime());
325	mt_srand($sec * $usec);
326
327	$char_widths = array();
328	for ($i = 0; $i < strlen($code); $i++)
329	{
330		$char = $code{$i};
331
332		$width = mt_rand(0, 4);
333		$char_widths[] = $width;
334		$img_width += $_png[$char]['width'] - $width;
335	}
336
337	$offset_x = mt_rand(0, $total_width - $img_width);
338	$offset_y = mt_rand(0, $total_height - $img_height);
339
340	$image = '';
341	$hold_chars = array();
342	for ($i = 0; $i < $total_height; $i++)
343	{
344		$image .= chr(0);
345
346		if ($i > $offset_y && $i < $offset_y + $img_height)
347		{
348			$j = 0;
349
350			for ($k = 0; $k < $offset_x; $k++)
351			{
352				$image .= chr(mt_rand(140, 255));
353			}
354
355			for ($k = 0; $k < strlen($code); $k++)
356			{
357				$char = $code{$k};
358
359				if (empty($hold_chars[$char]))
360				{
361					$hold_chars[$char] = explode("\n", chunk_split(base64_decode($_png[$char]['data']), $_png[$char]['width'] + 1, "\n"));
362				}
363				$image .= randomise(substr($hold_chars[$char][$l], 1), $char_widths[$j]);
364				$j++;
365			}
366
367			for ($k = $offset_x + $img_width; $k < $total_width; $k++)
368			{
369				$image .= chr(mt_rand(140, 255));
370			}
371
372			$l++;
373		}
374		else
375		{
376			for ($k = 0; $k < $total_width; $k++)
377			{
378				$image .= chr(mt_rand(140, 255));
379			}
380		}
381
382	}
383	unset($hold);
384
385	$image = create_png($image, $total_width, $total_height);
386
387	// Output image
388	header('Content-Type: image/png');
389	header('Cache-control: no-cache, no-store');
390	echo $image;
391
392	unset($image);
393	unset($_png);
394	exit;
395}
396
397// Function get_rgb by Frank Burian
398// http://www.phpfuncs.org/?content=show&id=46
399function get_rgb($hex)
400{
401	$hex_array = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A' => 10, 'B' => 11, 'C' => 12, 'D' => 13, 'E' => 14, 'F' => 15);
402	$hex = str_replace('#', '', strtoupper($hex));
403	if (($length = strlen($hex)) == 3)
404	{
405		$hex = $hex{0}.$hex{0}.$hex{1}.$hex{1}.$hex{2}.$hex{2};
406		$length = 6;
407	}
408	if ($length != 6 or strlen(str_replace(array_keys($hex_array), '', $hex)))
409	{
410		return NULL;
411	}
412	$rgb['r'] = $hex_array[$hex{0}] * 16 + $hex_array[$hex{1}];
413	$rgb['g'] = $hex_array[$hex{2}] * 16 + $hex_array[$hex{3}];
414	$rgb['b']= $hex_array[$hex{4}] * 16 + $hex_array[$hex{5}];
415	return $rgb['r'].','.$rgb['g'].','.$rgb['b'];
416}
417
418// Function  gdVersion by Hagan Fox
419// http://de3.php.net/manual/en/function.gd-info.php#52481
420function gdVersion($user_ver = 0)
421{
422	if (!extension_loaded('gd'))
423	{
424		return;
425	}
426	static $gd_ver = 0;
427	// Just accept the specified setting if it's 1.
428	if ($user_ver == 1)
429	{
430		$gd_ver = 1;
431		return 1;
432	}
433	// Use the static variable if function was called previously.
434	if ($user_ver !=2 && $gd_ver > 0 )
435	{
436		return $gd_ver;
437	}
438	// Use the gd_info() function if possible.
439	if (function_exists('gd_info'))
440	{
441		$ver_info = gd_info();
442		preg_match('/\d/', $ver_info['GD Version'], $match);
443		$gd_ver = $match[0];
444		return $match[0];
445	}
446	// If phpinfo() is disabled use a specified / fail-safe choice...
447	if (preg_match('/phpinfo/', ini_get('disable_functions')))
448	{
449		if ($user_ver == 2)
450		{
451			$gd_ver = 2;
452			return 2;
453		}
454		else
455		{
456			$gd_ver = 1;
457			return 1;
458		}
459	}
460	// ...otherwise use phpinfo().
461	ob_start();
462	phpinfo(8);
463	$info = ob_get_contents();
464	ob_end_clean();
465	$info = stristr($info, 'gd version');
466	preg_match('/\d/', $info, $match);
467	$gd_ver = $match[0];
468	return $match[0];
469} // End gdVersion()
470
471// This is designed to randomise the pixels of the image data within
472// certain limits so as to keep it readable. It also varies the image
473// width a little
474function randomise($scanline, $width)
475{
476	$new_line = '';
477	$start = floor($width/2);
478	$end = strlen($scanline) - ceil($width/2);
479
480	for ($i = $start; $i < $end; $i++)
481	{
482		$pixel = ord($scanline{$i});
483
484		if ($pixel < 190)
485		{
486			$new_line .= chr(mt_rand(0, 205));
487		}
488		else if ($pixel > 190)
489		{
490			$new_line .= chr(mt_rand(145, 255));
491		}
492		else
493		{
494			$new_line .= $scanline{$i};
495		}
496	}
497
498	return $new_line;
499}
500
501// This creates a chunk of the given type, with the given data
502// of the given length adding the relevant crc
503function png_chunk($length, $type, $data)
504{
505	$raw = $type;
506	$raw .= $data;
507	$crc = crc32($raw);
508	$raw .= pack('C4', $crc >> 24, $crc >> 16, $crc >> 8, $crc);
509
510	return pack('C4', $length >> 24, $length >> 16, $length >> 8, $length) . $raw;
511}
512
513// Creates greyscale 8bit png - The PNG spec can be found at
514// http://www.libpng.org/pub/png/spec/PNG-Contents.html we use
515// png because it's a fully recognised open standard and supported
516// by practically all modern browsers and OSs
517function create_png($raw_image, $width, $height)
518{
519	// SIG
520	$image = pack('C8', 137, 80, 78, 71, 13, 10, 26, 10);
521	// IHDR
522	$raw = pack('C4', $width >> 24, $width >> 16, $width >> 8, $width);
523	$raw .= pack('C4', $height >> 24, $height >> 16, $height >> 8, $height);
524	$raw .= pack('C5', 8, 0, 0, 0, 0);
525	$image .= png_chunk(13, 'IHDR', $raw);
526
527	if (@extension_loaded('zlib'))
528	{
529		$raw_image = gzcompress($raw_image);
530		$length = strlen($raw_image);
531	}
532	else
533	{
534		// The total length of this image, uncompressed, is just a calculation of pixels
535		$length = ($width + 1) * $height;
536
537		// Adler-32 hash generation
538		// Optimized Adler-32 loop ported from the GNU Classpath project
539		$temp_length = $length;
540		$s1 = 1;
541		$s2 = $index = 0;
542
543		while ($temp_length > 0)
544		{
545			// We can defer the modulo operation:
546			// s1 maximally grows from 65521 to 65521 + 255 * 3800
547			// s2 maximally grows by 3800 * median(s1) = 2090079800 < 2^31
548			$substract_value = ($temp_length < 3800) ? $temp_length : 3800;
549			$temp_length -= $substract_value;
550
551			while (--$substract_value >= 0)
552			{
553				$s1 += ord($raw_image[$index]);
554				$s2 += $s1;
555
556				$index++;
557			}
558
559			$s1 %= 65521;
560			$s2 %= 65521;
561		}
562		$adler_hash = pack('N', ($s2 << 16) | $s1);
563
564		// This is the same thing as gzcompress($raw_image, 0) but does not need zlib
565		$raw_image = pack('C3v2', 0x78, 0x01, 0x01, $length, ~$length) . $raw_image . $adler_hash;
566
567		// The Zlib header + Adler hash make us add on 11
568		$length += 11;
569	}
570
571	// IDAT
572	$image .= png_chunk($length, 'IDAT', $raw_image);
573	// IEND
574	$image .= png_chunk(0, 'IEND', '');
575
576	return $image;
577}
578
579// Each 'data' element is base64_encoded uncompressed IDAT
580// png image data
581function define_filtered_pngs()
582{
583	$_png = array(
584		'0' => array(
585			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A///////////////////olFAkBAAAGDyA4P///M31/////////////wD////////////////0dAgAAAAAAAAAAAAEcPipFGHn////////////AP//////////////6DAAAAAAAAAAAAAAAAAALSEAN+T///////////8A//////////////xAAAAAAAAAAAAAAAAAAAAAACPA/////////////wD/////////////oAAAAAAAAAAAAAAAAAAAAAAAev//////////////AP////////////8oAAAAAAAAPNj/zDAAAAAAAABD//////////////8A////////////1AAAAAAAABjw////5BAAAAAAAADo/////////////wD///////////+QAAAAAAAAbP//////QgAAAAAAAKj/////////////AP///////////1wAAAAAAACs/////8AXAAAAAAAAcP////////////8A////////////OAAAAAAAAND////dNwAAAAAAAABI/////////////wD///////////8gAAAAAAAA4P//7koACwAAAAAAACT/////////////AP///////////wgAAAAAAAD///VqAwaPAAAAAAAAEP////////////8A////////////AAAAAAAAAP/8kQYDavUAAAAAAAAA/////////////wD///////////8AAAAAAAAA/6kNAEru/wAAAAAAAAD/////////////AP///////////wAAAAAAAADAIwA33f//AAAAAAAAAP////////////8A////////////FAAAAAAAADYAI8D///8AAAAAAAAQ/////////////wD///////////8kAAAAAAAAAA2p////5AAAAAAAACD/////////////AP///////////0gAAAAAAAAFkfz////UAAAAAAAAQP////////////8A////////////cAAAAAAAAET1/////7AAAAAAAABo/////////////wD///////////+oAAAAAAAAXfX/////sAAAAAAAAGj/////////////AAAAALgAAAAAAAAwAAAAAAAAAAAAAAD////////////oAAAAAAAACOT////oEAAAAAAAAOD/////////////AP////////////8+AAAAAAAAKMz/zDQAAAAAAAA0//////////////8A////////////7jgAAAAAAAAAAAAAAAAAAAAAAKT//////////////wD///////////VqAwIAAAAAAAAAAAAAAAAAAAA8////////////////AP//////////rQcDaVEAAAAAAAAAAAAAAAAAKOj///////////////8A///////////nblnu/IAIAAAAAAAAAAAAAFzw/////////////////wD////////////79////+iITCAAAAAgSITg////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////w==',
586			'width' => 40
587		),
588		'1' => array(
589			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////8BAAAAAAAP//////////////////AP////////////////////////9sAAAAAAAA//////////////////8A////////////////////////pAAAAAAAAAD//////////////////wD//////////////////////6wEAAAAAAAAAP//////////////////AP////////////////////h4AAAAAAAAAAAA//////////////////8A//////////////////ygJAAAAAAAAAAAAAD//////////////////wD//////////////9x8HAAAAAAAAAAAAAAAAP//////////////////AP//////////////AAAAAAAAAAAAAAAAAAAA//////////////////8A//////////////8AAAAAAAAAAAAAAAAAAAD//////////////////wD//////////////wAAAAAAAAR4AAAAAAAAAP//////////////////AP//////////////AAAAAAA4zP8AAAAAAAAA//////////////////8A//////////////8AAAA4sP///wAAAAAAAAD//////////////////wD//////////////yR80P//////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=',
590			'width' => 40
591		),
592		'2' => array(
593			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP/////////////////okFAkCAAABCBIfNT///////////////////8A///////////////8hAgAAAAAAAAAAAAAAFTo/////////////////wD//////////////1QAAAAAAAAAAAAAAAAAACjo////////////////AP////////////+MAAAAAAAAAAAAAAAAAAAAADj///////////////8A////////////9BAAAAAAAAAAAAAAAAAAAAAAALD//////////////wD///////////+gAAAAAAAAAHjs+KwMAAAAAAAAVP//////////////AP///////////1gAAAAAAABM/////6QAAAAAAAAU//////////////8A////////////KAAAAAAAALj/////+AAAAAAAAAD//////////////wD///////////+MfGBMOCAI8P/////wAAAAAAAACP//////////////AP///////////////////////////5wAAAAAAAAw//////////////8A///////////////////////////oFAAAAAAAAHz//////////////wD/////////////////////////6CgAAAAAAAAE3P//////////////AP///////////////////////9ggAAAAAAAAAHT///////////////8A//////////////////////+0DAAAAAAAAAA8+P///////////////wD/////////////////////gAAAAAAAAAAAKOj/////////////////AP//////////////////9FAAAAAAAAAAADzw//////////////////8A/////////////////+g4AAAAAAAAAABk/P///////////////////wD////////////////oKAAAAAAAAAAMqP//////////////////////AP//////////////6CgAAAAAAAAAMNz///////////////////////8A//////////////g4AAAAAAAAAFT0/////////////////////////wD/////////////bAAAAAAAAABU/P//////////////////////////AP///////////8wAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A////////////SAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////9wAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////hAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////9AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////xAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP////////////////////////////////////////////////////8=',
594			'width' => 40
595		),
596		'3' => array(
597			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD////////////////8sGg0FAAAACA4cLz8////////////////////AP//////////////rBgAAAAAAAAAAAAAACTA//////////////////8A/////////////3QAAAAAAAAAAAAAAAAAAASs/////////////////wD///////////+YAAAAAAAAAAAAAAAAAAAAAAjc////////////////AP//////////6AwAAAAAAAAAAAAAAAAAAAAAAGT///////////////8A//////////94AAAAAAAABJDw/8g4AAAAAAAAHP///////////////wD//////////yAAAAAAAACE/////9gAAAAAAAAA////////////////AP///////////NSwiGQ4FOT//////AAAAAAAABD///////////////8A//////////////////////////+YAAAAAAAAVP///////////////wD//////////////////////P/ggAQAAAAAAATM////////////////AP////////////////////9gAAAAAAAAAAAElP////////////////8A/////////////////////0AAAAAAAAAAHLj//////////////////wD/////////////////////OAAAAAAAAAAwkPj/////////////////AP////////////////////8gAAAAAAAAAAAAINj///////////////8A/////////////////////xAAAAAAAAAAAAAAIPD//////////////wD/////////////////////uOz/4HgEAAAAAAAAhP//////////////AP///////////////////////////3wAAAAAAAAw//////////////8A////////////////////////////6AAAAAAAAAj//////////////wD/////////////////////////////AAAAAAAAAP//////////////AP//////////tJh8YEQoDNz//////+AAAAAAAAAY//////////////8A//////////88AAAAAAAAaP//////dAAAAAAAAEz//////////////wD//////////6QAAAAAAAAAdOD/5HQAAAAAAAAApP//////////////AP///////////CgAAAAAAAAAAAAAAAAAAAAAACD4//////////////8A////////////yAQAAAAAAAAAAAAAAAAAAAAEuP///////////////wD/////////////rAQAAAAAAAAAAAAAAAAABJD/////////////////AP//////////////zDQAAAAAAAAAAAAAACTA//////////////////8A/////////////////8BwOCAAAAAUNGi0/P///////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=',
598			'width' => 40
599		),
600		'4' => array(
601			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////////////////////nAAAAAAAAAD///////////////8A/////////////////////////8AEAAAAAAAAAP///////////////wD////////////////////////gGAAAAAAAAAAA////////////////AP//////////////////////9DAAAAAAAAAAAAD///////////////8A//////////////////////9UAAAAAAAAAAAAAP///////////////wD/////////////////////hAAAAAAAAAAAAAAA////////////////AP///////////////////7QAAAAAAAAAAAAAAAD///////////////8A///////////////////UDAAAAAAUAAAAAAAAAP///////////////wD/////////////////7CQAAAAABMAAAAAAAAAA////////////////AP////////////////xEAAAAAACU/wAAAAAAAAD///////////////8A////////////////cAAAAAAAZP//AAAAAAAAAP///////////////wD//////////////6AAAAAAADz8//8AAAAAAAAA////////////////AP/////////////IBAAAAAAc6P///wAAAAAAAAD///////////////8A////////////5BgAAAAADMz/////AAAAAAAAAP///////////////wD///////////g0AAAAAACk//////8AAAAAAAAA////////////////AP//////////XAAAAAAAfP///////wAAAAAAAAD///////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A////////////////////////////AAAAAAAAAP///////////////wD///////////////////////////8AAAAAAAAA////////////////AP///////////////////////////wAAAAAAAAD///////////////8A////////////////////////////AAAAAAAAAP///////////////wD///////////////////////////8AAAAAAAAA////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=',
602			'width' => 40
603		),
604		'5' => array(
605			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////////8AAAAAAAAAAAAAAAAAAAAAAA//////////////8A///////////////MAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////////6wAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////////iAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////////9kAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////////0QAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////////IAAAAAAAYP////////////////////////////8A//////////////wAAAAAAAB8/////////////////////////////wD/////////////3AAAAAAAAIj/////////////////////////////AP////////////+4AAAAAAAAoLRYHAAEKGTE//////////////////8A/////////////5QAAAAAAAAQAAAAAAAAAABY9P///////////////wD/////////////dAAAAAAAAAAAAAAAAAAAAAA89P//////////////AP////////////9QAAAAAAAAAAAAAAAAAAAAAABg//////////////8A/////////////zAAAAAAAAAAAAAAAAAAAAAAAADQ/////////////wD/////////////IAAAAAAAAGjY/+h4BAAAAAAAAGz/////////////AP//////////////9NS0lHSc//////90AAAAAAAALP////////////8A/////////////////////////////9QAAAAAAAAE/////////////wD//////////////////////////////wAAAAAAAAD/////////////AP/////////////////////////////8AAAAAAAAEP////////////8A////////////pIRwWEAgDOD//////8wAAAAAAAA8/////////////wD///////////9EAAAAAAAAaP//////ZAAAAAAAAHz/////////////AP///////////6QAAAAAAAAAaOD/4GQAAAAAAAAE4P////////////8A/////////////CQAAAAAAAAAAAAAAAAAAAAAAGD//////////////wD/////////////yAQAAAAAAAAAAAAAAAAAAAAc7P//////////////AP//////////////rAwAAAAAAAAAAAAAAAAAGNj///////////////8A////////////////0EAAAAAAAAAAAAAAAFTo/////////////////wD//////////////////8h4QCAAAAAcQHzU////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=',
606			'width' => 40
607		),
608		'6' => array(
609			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////////////+0ZCwMAAAUNGjI////////////////////AP/////////////////EMAAAAAAAAAAAAABM6P////////////////8A////////////////lAQAAAAAAAAAAAAAAAAo6P///////////////wD//////////////6wAAAAAAAAAAAAAAAAAAABI////////////////AP/////////////oEAAAAAAAAAAAAAAAAAAAAACw//////////////8A/////////////3AAAAAAAAAoxP/YPAAAAAAAAEj//////////////wD////////////4EAAAAAAACOD////YDCBAVGiAoP//////////////AP///////////7gAAAAAAABY//////////////////////////////8A////////////eAAAAAAAAJT//////////////////////////////wD///////////9MAAAAAAAAvP/IXBgABCx03P//////////////////AP///////////ygAAAAAAADcdAAAAAAAAAAEiP////////////////8A////////////FAAAAAAAAFAAAAAAAAAAAAAAcP///////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAlP//////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAQ8P////////////8A////////////AAAAAAAAAABAyP/kZAAAAAAAAACQ/////////////wD///////////8MAAAAAAAALPj/////WAAAAAAAAET/////////////AP///////////yQAAAAAAACY///////MAAAAAAAAFP////////////8A////////////SAAAAAAAAMD///////wAAAAAAAAA/////////////wD///////////9wAAAAAAAAvP///////wAAAAAAAAD/////////////AP///////////7QAAAAAAACI///////UAAAAAAAAJP////////////8A////////////+AwAAAAAACDw/////2wAAAAAAABY/////////////wD/////////////cAAAAAAAADC8/Ox4AAAAAAAAAKj/////////////AP/////////////oEAAAAAAAAAAAAAAAAAAAAAAk/P////////////8A//////////////+oAAAAAAAAAAAAAAAAAAAABLj//////////////wD///////////////+QAAAAAAAAAAAAAAAAAACQ////////////////AP////////////////+0JAAAAAAAAAAAAAAkuP////////////////8A///////////////////8sGg0FAAADCxgqPz//////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=',
610			'width' => 40
611		),
612		'7' => array(
613			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAABP////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAy4/////////////wD//////////////////////////+QUAAAAAAAEuP//////////////AP/////////////////////////8QAAAAAAAAKT///////////////8A/////////////////////////4wAAAAAAAB0/////////////////wD////////////////////////cCAAAAAAANPz/////////////////AP///////////////////////0QAAAAAAATY//////////////////8A//////////////////////+0AAAAAAAAeP///////////////////wD//////////////////////CQAAAAAABTw////////////////////AP////////////////////+gAAAAAAAAkP////////////////////8A/////////////////////ywAAAAAABDw/////////////////////wD///////////////////+4AAAAAAAAbP//////////////////////AP///////////////////1wAAAAAAADQ//////////////////////8A///////////////////4DAAAAAAAMP///////////////////////wD//////////////////7QAAAAAAAB8////////////////////////AP//////////////////aAAAAAAAAMj///////////////////////8A//////////////////8oAAAAAAAM/P///////////////////////wD/////////////////8AAAAAAAAET/////////////////////////AP////////////////+0AAAAAAAAcP////////////////////////8A/////////////////4wAAAAAAACY/////////////////////////wD/////////////////WAAAAAAAAMD/////////////////////////AP////////////////80AAAAAAAA4P////////////////////////8A/////////////////xAAAAAAAAD4/////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=',
614			'width' => 40
615		),
616		'8' => array(
617			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD////////////////////IdDQUAAAEIEiA1P//////////////////AP/////////////////gRAAAAAAAAAAAAAAAROD///////////////8A////////////////0BgAAAAAAAAAAAAAAAAAEMj//////////////wD///////////////AcAAAAAAAAAAAAAAAAAAAAHPD/////////////AP//////////////hAAAAAAAAAAAAAAAAAAAAAAAhP////////////8A//////////////8sAAAAAAAAKMz/zCgAAAAAAAAs/////////////wD//////////////wAAAAAAAADM////zAAAAAAAAAD/////////////AP//////////////BAAAAAAAAP//////AAAAAAAABP////////////8A//////////////8sAAAAAAAAzP///9QAAAAAAAAw/////////////wD//////////////3wAAAAAAAAoyP/YNAAAAAAAAIT/////////////AP//////////////7BgAAAAAAAAAAAAAAAAAAAAc8P////////////8A////////////////xBgAAAAAAAAAAAAAAAAAGNj//////////////wD/////////////////tAQAAAAAAAAAAAAAAACo////////////////AP///////////////HAAAAAAAAAAAAAAAAAAAAB8//////////////8A//////////////9gAAAAAAAAAAAAAAAAAAAAAAB8/////////////wD/////////////wAAAAAAAAABk4P/UWAAAAAAAAATQ////////////AP////////////9UAAAAAAAAaP//////XAAAAAAAAGT///////////8A/////////////xgAAAAAAADg///////cAAAAAAAAJP///////////wD/////////////AAAAAAAAAP////////8AAAAAAAAA////////////AP////////////8AAAAAAAAA4P//////3AAAAAAAAAT///////////8A/////////////ygAAAAAAABg//////9cAAAAAAAALP///////////wD/////////////ZAAAAAAAAABY1P/cXAAAAAAAAABw////////////AP/////////////QAAAAAAAAAAAAAAAAAAAAAAAABNz///////////8A//////////////9gAAAAAAAAAAAAAAAAAAAAAAB0/////////////wD///////////////Q8AAAAAAAAAAAAAAAAAAAAUPz/////////////AP////////////////x4CAAAAAAAAAAAAAAAEIT8//////////////8A///////////////////smFQwGAAAABg0ZKT0/////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=',
618			'width' => 40
619		),
620		'9' => array(
621			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////////////ysYCwMAAAUNGiw/P//////////////////AP////////////////+4JAAAAAAAAAAAAAAkuP////////////////8A////////////////lAQAAAAAAAAAAAAAAAAAkP///////////////wD//////////////8AEAAAAAAAAAAAAAAAAAAAAqP//////////////AP/////////////8JAAAAAAAAAAAAAAAAAAAAAAQ7P////////////8A/////////////6wAAAAAAAAAfOz8vCwAAAAAAABw/////////////wD/////////////WAAAAAAAAHD/////7BgAAAAAAAz4////////////AP////////////8kAAAAAAAA1P//////hAAAAAAAALT///////////8A/////////////wAAAAAAAAD///////+4AAAAAAAAcP///////////wD/////////////AAAAAAAAAPz//////8AAAAAAAABI////////////AP////////////8UAAAAAAAAzP//////lAAAAAAAACT///////////8A/////////////0QAAAAAAABY//////gsAAAAAAAADP///////////wD/////////////kAAAAAAAAABw5P/IPAAAAAAAAAAA////////////AP/////////////wEAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A//////////////+UAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD///////////////9wAAAAAAAAAAAAAFAAAAAAAAAU////////////AP////////////////+IBAAAAAAAAABw3AAAAAAAACj///////////8A///////////////////cdCwEABhcxP+8AAAAAAAATP///////////wD//////////////////////////////5AAAAAAAAB4////////////AP//////////////////////////////UAAAAAAAALj///////////8A//////////////+kgGxUQCAM2P///+AIAAAAAAAQ+P///////////wD//////////////0gAAAAAAAA42P/EKAAAAAAAAHD/////////////AP//////////////sAAAAAAAAAAAAAAAAAAAAAAQ6P////////////8A////////////////TAAAAAAAAAAAAAAAAAAAAKz//////////////wD////////////////oKAAAAAAAAAAAAAAAAASU////////////////AP/////////////////sUAAAAAAAAAAAAAAwxP////////////////8A////////////////////yHA0FAAADCxktP///////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=',
622			'width' => 40
623		),
624		'A' => array(
625			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD//////////////////+QAAAAAAAAAAAAAAOT/////////////////AP//////////////////kAAAAAAAAAAAAAAAkP////////////////8A//////////////////88AAAAAAAAAAAAAAA8/////////////////wD/////////////////5AAAAAAAAAAAAAAAAADk////////////////AP////////////////+QAAAAAAAAAAAAAAAAAJD///////////////8A/////////////////zwAAAAAAAAAAAAAAAAAPP///////////////wD////////////////kAAAAAAAAAAgAAAAAAAAA5P//////////////AP///////////////5AAAAAAAAAAgAAAAAAAAACQ//////////////8A////////////////PAAAAAAAAAz8HAAAAAAAADz//////////////wD//////////////+QAAAAAAAAAWP9kAAAAAAAAANz/////////////AP//////////////kAAAAAAAAACk/7wAAAAAAAAAhP////////////8A//////////////88AAAAAAAABOz//BQAAAAAAAAw/////////////wD/////////////4AAAAAAAAAA8////ZAAAAAAAAADc////////////AP////////////+EAAAAAAAAAIj///+8AAAAAAAAAIT///////////8A/////////////zAAAAAAAAAA2P////wQAAAAAAAAMP///////////wD////////////cAAAAAAAAACT//////1wAAAAAAAAA3P//////////AP///////////4QAAAAAAAAAAAAAAAAAAAAAAAAAAACE//////////8A////////////MAAAAAAAAAAAAAAAAAAAAAAAAAAAADD//////////wD//////////9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANz/////////AP//////////hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhP////////8A//////////8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/////////wD/////////3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc////////AP////////+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIT///////8A/////////zAAAAAAAAAAhP///////////2QAAAAAAAAAMP///////wD////////cAAAAAAAAAADM////////////vAAAAAAAAAAA3P//////AP///////4QAAAAAAAAAHP/////////////4DAAAAAAAAACE//////8A////////MAAAAAAAAABk//////////////9cAAAAAAAAADD//////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=',
626			'width' => 40
627		),
628		'B' => array(
629			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAEDh83P///////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAEhP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAeP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAxP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAABY////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAABT///////////8A//////////8AAAAAAAAAAP/////4zEwAAAAAAAAAAP///////////wD//////////wAAAAAAAAAA////////7AAAAAAAAAAQ////////////AP//////////AAAAAAAAAAD////////sAAAAAAAAAEj///////////8A//////////8AAAAAAAAAAP/////4zEQAAAAAAAAAtP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAFz/////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAiA/P////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAIjPj//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAGKz/////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJT///////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAABNz//////////wD//////////wAAAAAAAAAA///////sqCAAAAAAAAAAbP//////////AP//////////AAAAAAAAAAD/////////yAAAAAAAAAAs//////////8A//////////8AAAAAAAAAAP//////////AAAAAAAAAAT//////////wD//////////wAAAAAAAAAA/////////7wAAAAAAAAAAP//////////AP//////////AAAAAAAAAAD//////+ikGAAAAAAAAAAY//////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFT//////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsP//////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAADj///////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAc6P///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAATOj/////////////AP//////////AAAAAAAAAAAAAAAAAAAEIEBkkNj///////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=',
630			'width' => 40
631		),
632		'C' => array(
633			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////////////5JRULBAAAAgkTIDQ//////////////////8A////////////////1FAAAAAAAAAAAAAAAABAyP///////////////wD//////////////4gEAAAAAAAAAAAAAAAAAAAElP//////////////AP////////////9wAAAAAAAAAAAAAAAAAAAAAAAAlP////////////8A////////////kAAAAAAAAAAAAAAAAAAAAAAAAAAEyP///////////wD//////////9wIAAAAAAAAAAAAAAAAAAAAAAAAAAAw////////////AP//////////WAAAAAAAAAAAWMz/8JwQAAAAAAAAAACw//////////8A/////////+wEAAAAAAAAAID//////9QMAAAAAAAAAET//////////wD/////////nAAAAAAAAAAo/P///////3wAAAAABDBspP//////////AP////////9gAAAAAAAAAIz/////////3BxQjMT0//////////////8A/////////zQAAAAAAAAAzP///////////////////////////////wD/////////GAAAAAAAAADo////////////////////////////////AP////////8AAAAAAAAAAP////////////////////////////////8A/////////wAAAAAAAAAA/////////////////////////////////wD/////////AAAAAAAAAAD/////////////////////////////////AP////////8cAAAAAAAAAOj///////////////////////////////8A/////////zgAAAAAAAAA0P/////////kIGio7P///////////////wD/////////bAAAAAAAAACg/////////5wAAAAAMHS49P//////////AP////////+oAAAAAAAAAEz/////////PAAAAAAAAAAc//////////8A//////////QIAAAAAAAAALz//////6QAAAAAAAAAAGT//////////wD//////////3AAAAAAAAAADIzo/+SEBAAAAAAAAAAAyP//////////AP//////////7BAAAAAAAAAAAAAAAAAAAAAAAAAAAED///////////8A////////////rAAAAAAAAAAAAAAAAAAAAAAAAAAE0P///////////wD/////////////fAAAAAAAAAAAAAAAAAAAAAAAAJz/////////////AP//////////////iAQAAAAAAAAAAAAAAAAAAASY//////////////8A////////////////yEAAAAAAAAAAAAAAAAA8yP///////////////wD//////////////////9yIUCwQAAAAIEB4yP//////////////////AP////////////////////////////////////////////////////8=',
634			'width' => 40
635		),
636		'D' => array(
637			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////8AAAAAAAAAAAAAAAAADChQkOT/////////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAABGjw//////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAACDY/////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAABjk////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAED///////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKj//////////wD///////////8AAAAAAAAAAP///+isSAAAAAAAAAAANP//////////AP///////////wAAAAAAAAAA////////hAAAAAAAAAAA2P////////8A////////////AAAAAAAAAAD/////////MAAAAAAAAACQ/////////wD///////////8AAAAAAAAAAP////////+MAAAAAAAAAFj/////////AP///////////wAAAAAAAAAA/////////8gAAAAAAAAAMP////////8A////////////AAAAAAAAAAD/////////5AAAAAAAAAAY/////////wD///////////8AAAAAAAAAAP//////////AAAAAAAAAAD/////////AP///////////wAAAAAAAAAA//////////8AAAAAAAAAAP////////8A////////////AAAAAAAAAAD//////////wAAAAAAAAAA/////////wD///////////8AAAAAAAAAAP/////////wAAAAAAAAABD/////////AP///////////wAAAAAAAAAA/////////9QAAAAAAAAAJP////////8A////////////AAAAAAAAAAD/////////qAAAAAAAAABI/////////wD///////////8AAAAAAAAAAP////////9QAAAAAAAAAHj/////////AP///////////wAAAAAAAAAA////////uAAAAAAAAAAAvP////////8A////////////AAAAAAAAAAD////w0HwEAAAAAAAAACT8/////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAoP//////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAADz8//////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAY6P///////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAKNz/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAACHT0//////////////8A////////////AAAAAAAAAAAAAAAAABg4bKj0/////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=',
638			'width' => 40
639		),
640		'E' => array(
641			'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP//////////AAAAAAAAAAD///////////////////////////////8A//////////8AAAAAAAAAAP///////////////////////////////wD//////////wAAAAAAAAAA////////////////////////////////AP//////////AAAAAAAAAAD///////////////////////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////8AAAAAAAAAAP///////////////////////////////wD//////////wAAAAAAAAAA////////////////////////////////AP//////////AAAAAAAAAAD///////////////////////////////8A//…

Large files files are truncated, but you can click here to view the full file