Last active
December 16, 2015 21:29
-
-
Save KaeruCT/5500114 to your computer and use it in GitHub Desktop.
choose your own adventure (really tightly coupled to board software)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// By Kaeru~ | |
require('lib/common.php'); | |
$sql = new mysql; | |
if(!@$sql->connect($sqlhost,$sqluser,$sqlpass)) | |
{ | |
mysqlerror(); | |
} | |
if(!@$sql->selectdb('nwwebde1_myoa')) | |
{ | |
mysqlerror(); | |
} | |
/*if($_GET['lol']=='yes') | |
{ | |
$sql->query('TRUNCATE TABLE g_opts'); | |
$sql->query('TRUNCATE TABLE g_stages'); | |
$sql->query('TRUNCATE TABLE g_rep'); | |
$sql->query('INSERT INTO g_stages SET text = "You are standing in an open field west of a white house, with a boarded front door. | |
There is a small mailbox here. | |
What will you do?"'); | |
$sql->query('INSERT INTO g_opts SET stage = 1, text = "Enter house"'); | |
$sql->query('INSERT INTO g_opts SET stage = 1, text = "Open mailbox"'); | |
$sql->query('INSERT INTO g_opts SET stage = 1, text = "Walk away"'); | |
print 'queries done'; | |
}*/ | |
function branch($stage) | |
{ | |
global $sql; | |
$tree = array(); | |
$opts = $sql->query('SELECT * FROM g_opts WHERE stage = '.$stage); | |
$stage = $sql->fetchq('SELECT * FROM g_stages WHERE id = '.$stage); | |
$tree['text'] = $stage['text']; | |
$tree['opts'] = array(); | |
while($opt = $sql->fetch($opts)) | |
{ | |
$tree['opts'][$opt['id']] = array('opt' => $opt['text'], 'branch' => branch($opt['to'])); | |
} | |
return $tree; | |
} | |
function loosends($stage, &$num) | |
{ | |
global $sql, $visited; | |
if (!$visited) $visited = array(); | |
if (in_array($stage, $visited)) { | |
return ''; | |
} | |
$visited[] = $stage; | |
$out = ''; | |
$opts = $sql->query('SELECT * FROM g_opts WHERE stage = '.$stage); | |
while($opt = $sql->fetch($opts)) | |
{ | |
if(!$opt['to']) | |
{ | |
$num++; | |
$out .= '<li><a href="game.php?option='.$opt['id'].'">'.$opt['text'].'</a></li>'; | |
} | |
else | |
$out .= loosends($opt['to'], $num); | |
} | |
return $out; | |
} | |
function branchp($arr) | |
{ | |
$out = '<div class="tree" style="display: none;">'; | |
$out .= '<p>'.($arr['text']?nl2br(htmlval($arr['text'])):'This part of the story isn\'t done yet!').'</p>'; | |
foreach($arr['opts'] as $k => $v) | |
{ | |
if(is_array($v)) | |
{ | |
$out .= '<div class="tog" onclick="$(this).next().slideToggle();">'.$v['opt'].'</div>'; | |
$out .= branchp($v['branch']); | |
} | |
} | |
$out .= '</div>'; | |
return $out; | |
} | |
$links = '<a href="game.php?loose">Loose ends</a> | <a href="game.php">Beginning</a>'; | |
$option = isset($_GET['option'])?intval($_GET['option']):0; | |
$from = isset($_GET['from'])?intval($_GET['from']):0; | |
$action = isset($_POST['action'])?$_POST['action']:''; | |
$rep = isset($_GET['report'])?intval($_GET['report']):0; | |
$msg = $link = $title = ''; | |
if($rep) | |
{ | |
if($sql->resultq('SELECT COUNT(*) FROM g_stages WHERE id = "'.$rep.'"')>0) | |
{ | |
$option = $sql->resultq('SELECT id FROM g_opts WHERE `to` = "'.$rep.'"'); | |
if($sql->resultq('SELECT COUNT(*) FROM g_rep WHERE stage = "'.$rep.'" AND user = "'.$loguser['id'].'"')>0) | |
{ | |
$msg = 'You already reported this setting!'; | |
} | |
else | |
{ | |
$sql->query('REPLACE INTO g_rep SET stage = "'.$rep.'", user = "'.$loguser['id'].'"'); | |
$msg = 'This setting has been reported!'; | |
} | |
$msg .= '<br /><a href="game.php?option='.$option.'">Go back</a>'; | |
} | |
else | |
$msg = 'This setting doesn\'t even exist!<br /><a href="game.php">Go back</a>'; | |
} | |
elseif($option!=0) | |
{ | |
$option = $sql->fetchq('SELECT * FROM g_opts WHERE id = "'.$option.'"'); | |
$link = '<a href="game.php">Go back to start</a>'; | |
} | |
else | |
$option = array('id' => 0, 'to' => 1, 'stage' => 0, 'text' => 'The Beginning'); | |
if(isset($_GET['branch'])) | |
{ | |
$title = 'Branch'; | |
$tree = branch(1); | |
$msg = '<div class="tog" onclick="$(this).next().slideDown();">Start!</div>'.branchp($tree); | |
} | |
elseif(isset($_GET['loose'])) | |
{ | |
$num = 0; | |
$msg = '<ol>'.loosends(1, $num).'</ol>'; | |
$title = 'Loose ends ('.$num.')'; | |
} | |
elseif($action) | |
{ | |
switch($action) | |
{ | |
case 'newsetting': | |
$num = isset($_POST['numopts'])?intval($_POST['numopts']):2; | |
$optid = isset($_POST['optid'])?intval($_POST['optid']):0; | |
if($num>4) $num = 4; | |
if($num<1) $num = 1; | |
if($optid) | |
{ | |
$opt = $sql->fetchq('SELECT * FROM g_opts WHERE id = "'.$_POST['optid'].'"'); | |
$msg = ' | |
<form method="post" action="game.php"><input type="hidden" name="optid" value="'.$_POST['optid'].'"><input type="hidden" name="numopts" value="'.$num.'"><input type="hidden" name="action" value="submitsetting"><table> | |
<tr><th colspan="2">Setting for "'.$opt['text'].'" option</th></tr> | |
<tr><td width="150px"><label for="setting">Setting:</label></td><td><textarea id="setting" name="setting" cols="80" rows="5"></textarea></td></tr>'; | |
for($i=1;$i<=$num;$i++) | |
$msg.= '<tr><td><label for="opt'.$i.'">Option '.$i.':</label></td><td><input type="text" id="opt'.$i.'" name="opt'.$i.'"></td></tr> | |
'; | |
$msg .= '<tr><td> </td><td><input type="submit" value="Submit"></td></tr> | |
</table></form>'; | |
} | |
else | |
$msg = 'No option ID was specified.'; | |
break; | |
case 'submitsetting': | |
$num = isset($_POST['numopts'])?intval($_POST['numopts']):2; | |
if($num>=4) $num = 4; | |
if($num<1) $num = 1; | |
$text = isset($_POST['setting'])?trim($_POST['setting']):''; | |
$optid = isset($_POST['optid'])?intval($_POST['optid']):0; | |
$err = array(); | |
if(!$text) | |
{ | |
$err[] = 'You didn\'t fill the "setting" field.'; | |
} | |
if(!$optid) | |
{ | |
$err[] = 'No option ID was specified.'; | |
} | |
if($sql->resultq('SELECT COUNT(id) FROM g_opts WHERE id = "'.$optid.'"') == 0) | |
{ | |
$err[] = 'No option with that ID exists.'; | |
} | |
else | |
{ | |
$opt = $sql->fetchq('SELECT * FROM g_opts WHERE id = "'.$optid.'"'); | |
if($opt['to']!=0) | |
$err[] = 'Someone submitted the option before you did!'; | |
} | |
for($i=1;$i<=$num;$i++) | |
{ | |
if(!trim($_POST['opt'.$i])) | |
{ | |
$err[] = 'You didn\'t fill all the options.'; | |
break; | |
} | |
} | |
if(!$err[0]) | |
{ | |
$sql->query('INSERT INTO g_stages SET text = "'.$text.'", user = "'.$loguser['id'].'"'); | |
$stageid = mysql_insert_id(); | |
$sql->query('UPDATE g_opts SET `to` = "'.$stageid.'" WHERE id = "'.$optid.'"'); | |
for($i=1;$i<=$num;$i++) | |
$sql->query('INSERT INTO g_opts SET stage = '.$stageid.', text = "'.$_POST['opt'.$i].'"'); | |
sendirc('New option submitted by '.$loguser['name'].'! {boardurl}game.php?option='.$optid); | |
$msg = 'Option submitted succesfully!<br /><a href="game.php?option='.$optid.'">Go back where you ended!</a>'; | |
} | |
else | |
{ | |
$msg = 'The following error'.(sizeof($err)==1?'':'s').' occured:<ul><li>'.implode('</li><li>', $err).'</li></ul>'; | |
} | |
break; | |
case 'ending': | |
$text = isset($_POST['ending'])?trim($_POST['ending']):''; | |
$optid = isset($_POST['optid'])?intval($_POST['optid']):0; | |
if(!$text) | |
{ | |
$err[] = 'You didn\'t fill the "ending" field.'; | |
} | |
if(!$optid) | |
{ | |
$err[] = 'No option ID was specified.'; | |
} | |
if($sql->resultq('SELECT COUNT(id) FROM g_opts WHERE id = "'.$optid.'"') == 0) | |
{ | |
$err[] = 'No option with that ID exists.'; | |
} | |
if(!$err[0]) | |
{ | |
$sql->query('INSERT INTO g_stages SET text = "'.$text.'", user = "'.$loguser['id'].'"'); | |
$stageid = mysql_insert_id(); | |
$sql->query('UPDATE g_opts SET `to` = "'.$stageid.'" WHERE id = "'.$optid.'"'); | |
sendirc('An ending was submitted by '.$loguser['name'].'! {boardurl}game.php?option='.$optid); | |
$msg = 'Ending submitted succesfully!<br /><a href="game.php?option='.$optid.'">Go back where you ended!</a>'; | |
} | |
else | |
{ | |
$msg = 'The following error'.(sizeof($err)==1?'':'s').' occured:<ul><li>'.implode('</li><li>', $err).'</li></ul>'; | |
} | |
break; | |
case 'link': | |
$setid = isset($_POST['settingid'])?intval($_POST['settingid']):0; | |
$optid = isset($_POST['optid'])?intval($_POST['optid']):0; | |
if(!$setid) | |
{ | |
$err[] = 'You didn\'t fill the "setting ID" field.'; | |
} | |
if(!$optid) | |
{ | |
$err[] = 'No option ID was specified.'; | |
} | |
if($sql->resultq('SELECT COUNT(id) FROM g_opts WHERE id = "'.$optid.'"') == 0) | |
{ | |
$err[] = 'No option with that ID exists.'; | |
} | |
if($sql->resultq('SELECT COUNT(id) FROM g_stages WHERE id = "'.$setid.'"') == 0) | |
{ | |
$err[] = 'No setting with that ID exists.'; | |
} | |
if(!$err[0]) | |
{ | |
$sql->query('UPDATE g_opts SET `to` = "'.$setid.'" WHERE id = "'.$optid.'"'); | |
sendirc('New option submitted by '.$loguser['name'].'! {boardurl}game.php?option='.$optid); | |
$msg = 'Link to existing setting submitted succesfully!<br /><a href="game.php?option='.$optid.'">Go back where you ended!</a>'; | |
} | |
else | |
{ | |
$msg = 'The following error'.(sizeof($err)==1?'':'s').' occured:<ul><li>'.implode('</li><li>', $err).'</li></ul>'; | |
} | |
break; | |
} | |
} | |
elseif(!$msg) | |
{ | |
$settingid = ''; | |
if(!$option) | |
{ | |
$msg = 'This option doesn\'t even exist!'; | |
} | |
elseif(!$option['to']) | |
{ | |
$title = $option['text']; | |
$msg = '<p>This part of the story isn\'t done yet. You can either continue the story, or end it here.</p> | |
<div> | |
<a href="#" onclick="$(\'#end\').slideUp(); $(\'#link\').slideUp(); $(\'#continue\').slideDown(); return false;">Continue</a> | | |
<a href="#" onclick="$(\'#end\').slideUp(); $(\'#continue\').slideUp(); $(\'#link\').slideDown(); return false;">Link to an existing setting</a> | | |
<a href="#" onclick="$(\'#continue\').slideUp(); $(\'#link\').slideUp(); $(\'#end\').slideDown(); return false;">End</a></div> | |
<div id="continue" style="display: none;"><form method="post" action="game.php"><input type="hidden" name="optid" value="'.$option['id'].'"><input type="hidden" name="action" value="newsetting"><table> | |
<tr><th colspan="2">Continue the story</th></tr> | |
<tr><td width="150px"><label for="numopts">Number of options:<br>(max: 4)</label></td><td><input type="text" id="numopts" name="numopts" size="2" maxlength="1"></td></tr> | |
<tr><td> </td><td><input type="submit" value="Submit"></td></tr> | |
</table></form></div> | |
<div id="end" style="display: none;"><form method="post" action="game.php"><input type="hidden" name="optid" value="'.$option['id'].'"><input type="hidden" name="action" value="ending"><table> | |
<tr><th colspan="2">End it here</th></tr> | |
<tr><td width="150px"><label for="ending">Ending text:</label></td><td><textarea id="ending" name="ending" cols="80" rows="5"></textarea></td></tr> | |
<tr><td> </td><td><input type="submit" value="Submit"></td></tr> | |
</table></form></div> | |
<div id="link" style="display: none;"><form method="post" action="game.php"><input type="hidden" name="optid" value="'.$option['id'].'"><input type="hidden" name="action" value="link"><table> | |
<tr><th colspan="2">Link to an existing setting</th></tr> | |
<tr><td colspan="2">*The setting ID appears at the bottom of each setting.</td></tr> | |
<tr> | |
<td width="150px"><label for="settingid">Setting ID:</label></td> | |
<td><input type="text" name="settingid" id="settingid" size="4" maxlength="4"></td | |
</tr> | |
<tr><td> </td><td><input type="submit" value="Submit"></td></tr> | |
</table></form></div>'; | |
} | |
else | |
{ | |
$setting = $sql->fetchq('SELECT * FROM g_stages WHERE id = "'.$option['to'].'"'); | |
$opts = $sql->query('SELECT * FROM g_opts WHERE stage = "'.$option['to'].'"'); | |
$title = $option['text']; | |
$l = array(); | |
while($opt = $sql->fetch($opts)) | |
{ | |
$msg .= '<li><a href="game.php?option='.$opt['id'].'&from='.$setting['id'].'">'.htmlentities($opt['text']).'</a></li>'; | |
} | |
if(!$msg) | |
{ | |
$msg = '<h2>THE END</h2><a href="game.php">Go back to the beginning</a>.'; | |
} | |
else $msg = '<ul>'.$msg.'</ul>'; | |
} | |
if($setting['text'] != ''){ | |
$settingid = '<small>This setting\'s ID is: <b>'.$setting['id'].'</b></small>'; | |
} | |
$msg = '<div><div id="setting">'.nl2br(htmlval($setting['text'])).'</div><div id="opts">'.$msg.'</div>'.$settingid.'</div>'; | |
if($option['stage']) | |
{ | |
if(!$from) | |
{ | |
$option = $sql->resultq('SELECT id FROM g_opts WHERE `to` = "'.$option['stage'].'" ORDER BY id ASC LIMIT 1'); | |
}else{ | |
$option = $from; | |
} | |
$l[] = '<a href="game.php'.($option?'?option='.$option:'').'">Go back to previous setting</a>'; | |
} | |
if($setting['user']) | |
{ | |
$user = $sql->fetchq('SELECT name,sex,power,color,id FROM users WHERE id = '.$setting['user']); | |
} | |
/*if($log) | |
$l[] = '<a href="game.php?report='.$setting['id'].'">Report</a>';*/ | |
if($l[0]) | |
$links .= ' | '.implode(' | ', $l); | |
} | |
?> | |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
<html xmlns="http://www.w3.org/1999/xhtml"> | |
<head> | |
<title><?=$title?></title> | |
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> | |
<meta name="Author" content="Kaeru" /> | |
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> | |
<style type="text/css"> | |
body{color: #444; font-family: "Droid Sans", Tahoma, sans-serif; background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAAC/CAAAAABlQznkAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+dpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wOkNyZWF0ZURhdGU9IjIwMTItMDMtMDZUMTg6MTU6NTcrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDEyLTAzLTA2VDE3OjMyOjI1KzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDEyLTAzLTA2VDE3OjMyOjI1KzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBRTUwREE2RjVGRDYxMUUxODlEN0YzNUUyNUU4Nzk3QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBRTUwREE3MDVGRDYxMUUxODlEN0YzNUUyNUU4Nzk3QyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFFNTBEQTZENUZENjExRTE4OUQ3RjM1RTI1RTg3OTdDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFFNTBEQTZFNUZENjExRTE4OUQ3RjM1RTI1RTg3OTdDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+eiXhcQAAMq9JREFUGBkEwdGuZdd1GNGqufZpNilFtoEY8P//WfJuG5Elkt13r1kZwzeTpD++k3DPnQqEvi07Afe7hJB/fPCi7teHZcKveTBwfn5qanwPzXW26c/vK4AdIeGen3JPC/hJuLIMutAE0g77uSYs52vOYuLvh4ZM/2AymPs9SagBAODP4xRzu06NSzNgADgXG+4OZjHVJO6Pv15oiPl6wkD++zdC7/z9P9YwvH9+g1nly4dij++ns4TELGn4de4E1HeWqaHngWGBw509r27zTtl5p6Fgp47M3TNXhhX2uSzCdYScdbZnEZhP0gDOYRZmmV8/knz89QJs554ZcMAjcJrp0Na0DGuTDXPGBXyjjHKAVhwym5KLqFeOw4wzPNKd4yLXcfBW0jwMcLrMnglw0EqIZZMmoFDo5RRlNKOBzXCmvNE4TzjLZKzNbCAwppU0aIDrZnsn1VuN495a2ryUleC57QWQpGvKqkkrs0BHsmbYuRBk7pLjrhpnkSWi7g45YYdtR4IGpW4DLtAaDBtDCwxcve5IdwD3uuBqsBmjAgEdOeHhGrU5gOXs7BRsM/ks+AUILJ7J9ahc543WmKHBlhvodWIR4hZwgtnUmFCYYfIAu552mq7OxqRLgxCYTpU0LVzbcfccMI7t2BIIrZAQl+poqygl7tpdWMUJYkwFZ9zcBQPgOAtrrUkeMnCXUSkNT3BinZkIFIzkujeKbYIZHIruzlEW7MZZaqdBoE0IRQAuAJLr6Sw6OVoXaJNdDWUSrrvtUZliaIYOsjENe51KZnm4g2yLhrNGpznMUUBBd910BPbutBkzdEL25IqizGhzbXMq2oanK4eVWvY4ItTAroa3iZNgsISg3aXsUAxCMrjxOrgZzTB7BU8uk0sgt4hovYlJM2LqhjrLLRFiA15nYkAXqTvGjiE0txpXlWnYGYZlRKhUzOpYdwBrnjCb6AxJutlsOL0nynhHBgN3VpjrZZO5BsZqdlnTfH+5zmrDzuyK7JfjHnb++It9zTbvfKXN+i5dzb33+yt31teHiFmtSdmYoWmm/MI1gVdyFt7fbpjZ7990m+xTs8ZwQxf7+b9MAvzzw1yB+3EFbDOGYv/x142J7vnQLM2PA7LS+92RZdoHAKA7K5Px4wDi7ozV2O4Auu4zV9WrD9joHpnOys63h3GNndXhlCdtEHwNg7F5J3Q2mJi7wyw7HT9+2ifuZ2GwZ+cIsnI8l6dguSTBcXXv3MGDFTMCSsxMKw7PZMY+CDQ7DNjcdkWtyRmEsUoNMZbRZNaQ0YXRaHGStdkwztazwF5dZohSauUiStHI7AurtVU1g+wNhbZlbJPJEbq1DJFBLDhhujeXdoo0aQYXhuhAgzvcLgwhB9i5WLc54Co7aw4M2zhzpjnMkqTJTA5Jkw6OxG23eZhKAcIZG9p7EhkrW8HDDMt0wDPXcgliQBZQ3FwkmAWO3XB5RRtgxsKchp0GYpFgd7lfrgxw16a2dlCGjYYGGN1aMhkbvK0jckWjzohR1zWmarmZikXTUhP0Iqwu5U6HSrlHZogVQ5NsrkCgmbkGSnN20YDirDtKm7gYJtcSYREWPTZLM9WSVNRxlCubaaIanHAhuwJPC+dyGmHFcTRf5jVyytrKezMCC7cVekxzm0cSAjvNLRpjxOUKgwakL0psZ8RWUVdMXHIhDgjOUNfDOgCTGiXI2WgL2mvtOOHa8EKAwohD6LBznIKXSSLWBUi5zc647oy7pR86s51U1aU8cUcCBgbzikArzqwFbIHsMq8n21iATWuYxjk1suC01boeoRkZsNaxGxOCE8WmxToErlPjro7pqYy5IWS02tICz89w93ExMJgf3yDBkDsrCV2L2356EshJFJgfxFlwR3gS9uuE5OvvPduQ7/3ArPDHvyKn7FxqyrePNXSqMdxmf36Yr6n4OSuBfZ89eSoLySTvocV+fLZnwRTM2M/KTjj//R1cpn/8+6WmJjAm4Oe4A+vXbzULDCtJ8vXILNL8+bkHkh9/uQN5x398UwK7n6CJfWTPDvw8zzbZ8P9+ebbBeHgPVzoX5rpSM+OesOWsBC3uLE3fvi0T9g1gZAiyxTzOoLU1OZegyT2blHAP6VNnSYoF8dt5XoZkEOT4ylIVZ+saO8/DADLD2TvVnYYWHJpd0cztNoeZXnYQTQIYSjIMgAkRCAizOEl7djYhL8wWlXm8HJaZwlIClwG6a5BsVDhELI4CTXsMRmBJ9jJBVYw57FpOhtwNhQBk2pgBx6AlcWNGL+ulZGc5ss5AqIOH7gwLw0KcIIbGRebEvPNcXQCqEIcuchq9hYmrkg4JjNhKwMIGDR29JbARO3AXDJFj4LJbu0fS4MB0mQQRnJaFkphlgNiaiRFNFu7Zax3MgBO4KrTMgk6zrF1b2opxG3oECOYMTNl2zsZyEll1od2FuY3d4YxKOTvsrDG2tm3Ibseb02C7e4kBYZfKOY1KTqrNOoIL7FrkDFNLrM6nZobmUDbNhsRw9+Yy7SN3YmggDB+GcbJDMKGbo+kyRWUAguTaHnZnI2ecyYx1Am5rGQ7Wyg4taIE4sBOLiiMsw67QxLoVhhBqpx0vjrAsMYneoJa8zmpdpTUXXWwEcZAEDoh4cSbRuAlWeVw2l2kvjMLamTEPZ6k4Q7LUiQAclQIIAACZgGVyvAtMB+alEEPQnd25O8wSQFizVXc5izE3KwDV7spykcJUdqGBiMzlyqx33z0sV0x6fICEeWcHN95XAMTVq+vdWyxePj+YPXfWn82eHbjnzjTXTrvEl9zNaQjgrAy0byc6Lb8/YOSf309wYnete3Z1gR127rmnZPc9sazcz21pXPG/f7F0+fFvb+LOue+ZCNxO9FzYT7C6nq+nuUPtc42mff7xAZN+/uWEyTbrIuB7mjXmLrNn3fPzL+Ta1N9/DTjv+fErWMLuI7PkPScaahMjmZ8fERae79/WYADFPb2cc9Ho/Bx7bsP9xtWm4Y5fLlGzs9rsr05BOGvbWVmcpnTQkcXHhqcZN2Rb+Pbg4md2dvZszDLxnmzmZXbT+61NxpVlytxxlbgLyDWRO+YwDXnHMkDvWWqHTZYOCD7RiOPeWj+QulFQnW1XnJS0maQ4TobBuq6bgwOedWQxHcQVps33yE46A60Cs0tDa50wSgR2EK9tCo7oOmN3cWmzXcjBxgWXwA7NmEGVYJXL5ljdZhcMMHWpde/hPY4E2KTuzoCRK5fRw2WGnbNCB73A7mF3A2NPBLDCVkwAOjuegkRjGNZ1hQGDjXKEYIXGi8YKc1wcmmE1m/Cg23kvQFIVHHfBgA42y2VckqV0cSeSxtEgDM5IxjYg7q55p0IcW6ySZSUaCBU1dWDMs8zWgBBXbGklXGFsZQgWtAyI1gEVe5nGhrITOjRKDQgFYWB4Y0DmrMDOKM0NTNappBYaZUzFdKsA4oUldNpZbGU2HRu7trRLXHgckkZGJ57ucI2GYgYYcgGTiEPZyKlhiSWlIHhJMsw60AoDIijD0FJGdlodCAMRQRNZHLoyQDQiykwjvKYL6eqeivAygJ65rAHMWsiypXorxo46TYAiDKcOuYZAwy0M8igDaq2X4+3Ukq3UiYRcC9PjnG0dAYNl14VkYhjvTHRdpXHWcHt2CWbbaaC5+nOIeIeC20SbOrfhHXanWH8+Xoz95wdmrR//tpoQHHBA1iQXtuGns76f4ZC2ddll2vawu9M+E0Dn7QAwHXYgGt953bOX9ccTgfSfv0HTzj//46d7WIyTiYWl5e4z2Q4/nuMdkh/fgaZZfzycy9T5r9+uWP7413eQO/z8PqyW/Z9/gbnn7D/+Y5bArtJzwcvDanj+85fzDuXV2NPOn/9+pQl8ikzpr7+4Jhz0cM7u894J5p57rminiSudtcOKydkh1zuq11n0++dbsjPO55oHZktvdv79O2az31y3CT1ZorxxNovfPnwA/PkN17BfJNhzZVChvYg0YCtwl8mBvNwcpt2kxmVFGFyWkh1jiyATdBa7dCUqgW4QUkJI+wDKWCAwuHLlAhADQCNRcM6sNrWTgwrOyiIgEIyenUFi8ZBMKg0VYHTieUOVbMW1zSCkDuC9CGPcRYto8B5md3dUKpJCODvi8JWyvoEK7xY5wNJyWFYErwM7rlXmxl7ruEeMBLKhRrC6ylaZXC4yEk4w7J7w0XFXBgGSG5ct4JQMR6iBZ4YJaIe5kJMJTjt1h6rBVxQKD8nsPp1yhWBiLnOX1mrcZdEyEtEBGBvA2JINQGbnEkUG0MbEcQ5MMbvszbsC2F6Q0nF6QDvsYo0wZ2bUyLwtcgIjvTRgjUKjCw0Pg1t6MBS8UbsEN0PRSRhmJ2k7stnAbKgTU6uz4gKPNlNDmbQ07UZLE3VYldO0YzSp+USwwjKGFLhyPWs3YK67K854wymZHT2LiYzAKg0QTWyoozbJykrJDuySk4xXxhyjMWV1fVzK3YVw4V435iILG62zUIEk6ljS4c7uOFMTSrvinl25rVQwCC6BtZY4cMEZvaRrEIO2Az3jgg63ia7sjubcHNIFBc80qKkpzwHJk/9cmpr+8f2W0MSzh6J8pHzg67Qj+/75F18I44AdeXhtlhp+bOK1n7+dzkIdjkyy875kcr8+u+I6rw8cYl5cyYUvwRVumXL7+qY5zdU/rZFlPwoAe+60Yv34boDM3z9qy1wnAPn66wXBO78fmmh+/G1gRdoBJPzjaXag8z+DMfT1Nw1cN9nxPfPGihAykvDzVyGBr1Fvpj8dWPfpOZ1WDsNUpu8zZcIZmwXcXz4k2XgC1hl1IYfvz9U15JLrLO1UAqMct+mXDzUrz3QBC+HUww7uMNcw5gr88g6ktOfOQGfHYzoLg8xH4bKbMxXJSAdhr7bDRhU7ATu4yx4wIHeZpmywheZuAK3ReopdQwFAAoErBjZwCYpmxpbt6nYH22WuIdLCzNJ9a1CMu2IEHq8Fn9AA0PFM2SQOrUsVDdwDZjbkAFpJw2EDD0yzQlMKOZwIU0nKcerWiHOKPYHOQEA1MDuHVNZCwZQyV2KGPQk4sSz3pWVhp3WwGVn3aKtsuLWt0x5I4jIxrTlNxo6GtSgNbuairA1GAFCH1b22ZqIdcxZEBUpswIcIuLR4Z1tsIjCE2fjizIvc0uZuDQG7oisxdxA2RrmMRqskLZPDLLGB12Y0ERQaV3A98pw8HM4iXmEGcAPEELZ9oVwdHUyF8hlAcJzxaE+ihwTGpAGReXawuSDPuJsfMq7TVnDYYc0dVd6RKGgbBEI4ur3tQnNbWWJj4hTEUO6SM4CDybobJY1srVK7tXD3LcmlsNwYjwtlmysDFBK0jiYqXLxRzVbx7A7LwFihs+11GfYQtBdnOSHbxAIONOk4LWCWMvFAkBugrTJa0plWSxIBh9si07UZRtYJAYI2l8AYSAH2ETFaCSpih8YDsJ31YIOtAsw5D2Gu7HQ6sc4iytkldVTfWME4K9edfT9Tz+54f3xWd/z5nmHHK80y5so9sxOCqxFlc3XuVC533VYAevebGNzMHZLz9cgDM7HDC9y5/s8HkeXrmWj22ffH45ru/ZcrYbx+A++Avz8xd3Z+/1vgXLzfgB2gf36Yi+gf35bZIXVgXV2nucr7bdcE7y/Xxc6+HyXjnn9+i8N7As17ltye7me7vy0S0nM+a3Bsxpjw/JW5nsWd1mnueWFl4D7PExzX7zHbTtTiEpzPk4P13Me1oVmmHZ44MHuaPdOxnSYKccl3woRnMB/vdC48gsg0DFxCzrVpDaMgAmSn424JbtOs7NiWJE5QsOCSYqZBNKwucEYlkQGdJLRp6+4EdjQ3hkcNTg2FTLvjaYeYWQVZB7zlTDWoJ4RtRS0d2ctEO+AG5HJtz+IAuugije3gyJKptdzFZUO2hWTbJRiBcoM0ZMtp2cDYlOYyF1BZquNOSEzTFFakgzvgOZ3JHWTPueXoSHLSC6BE7BxY3mJpAc8diSsOK1s7jGSjykA6VnMWaLwL2NEJAHU80ordNdXhNVlo4DS6OILbTLN7t7vcc5jh0kpSMLMaCRXM4cLqrCNyx21aZBqD1Rl1M9h0CqmN2H0mZxtmjNvuQVys3lUDj1HsIJLaGLs1w6yrbruhI502tPc5yrs2xpQYwDHucBtiBJqzOwUkLMnQLjdB1YwBAEZhG5iIdE7NrcIEaRovi43OYhTLDDTJ+3JxFhQlAKO5m6eCM7FjdwAJ2ahlCqmCkhXpBEjWANhhTlk7gDVVy0StEtXOxDlibZJ72tMilGvTwLCzNSfP7EiguKAYC8m4rTc255IrBA3D4UxNkk1sALVx9fAygAcg6MW4sOziCj1dliwJKseuyDhhXA4MTc3OtQLk+dNoqniKgq3xniXT2Wn6vM+sbuwX647Mz18f9GE/8NAe+DBocHa+QvCdXWY1/fqRAO79bZE297MgwDodgO2n0JDvPERU+9yGLvfbcnag47qmNT8/lQCz6DbLP39dzPj9f0la7kcSgP/7r4Nr/Pm36wrM168SU+wZq1P8/GSz5CzKynumwWX6eQCA/vxwB/P9zQBx36MbpwJA42vQvPIscIewDdhzITq49pwBY97kLDlxO3e185e/hKs8n1ECHygJxyXZHYbJFZBZCA4727R5XMEdfmUI2wMRyMiSXDBdXHt2dDs61g4eo9jOzh5hbyYhxIZ0PCCc2yPnyrC22wrllHJIrByQ4t04xEUmPBNDErHIDBKyl91TmUhEKJwaFzI40Dg2OyDVyDBkZwWGYGTgQIMVVi7ceoWLiKExrRlSEpYtycc5t3HQpGXZDTmAw4ZKyzMY7Jr0sLhjLnNjNCUAu42MabJCFrFMMtR6nZh5QVqmSQEGEwWCJHT2zCWoYpc0t14g9BJTJrLt6AbUGhNXS1nreR2d7UERd5dajE0dd9kyDsysjNCCCUQ3tlMmvDa7eExbChMIn1o2PDt64JEhF0IvsihXxo4lK+OQUmquMzqzzDvrIvf1hsDIIJhEg+5I04vbxAJztJIZjmQr6Um4HrhB54Sgg9rLjmF7bt7xUo6DyB4uGpyySWUmtzsjaAv57rYx5AqrM3uoUogl1KWhHqo8AYvE+LLAQl0QRWoZLgUgbCKhtA64VQo1MGvtxQA7s6WAa9TMrlfOQpBOMCMSxmxTQ14TqvA4cBmf2WGnwWDxIRXccxypQwBZpOtxHIQ2mMuwlXcB1aqRghnaMYK4TRNJ0Z15Z9yJrJmG20yzSAqsNVwI8EBzYtn2WerRoVHdzJu834J5sfmfvxbszN//d89Cus3SAPzXuRPQH9+FU7KvITu9A7l4ukfn2rjsaBCjTsojVwzfUyVsI03QzPbscrbr6hdzLyyXDX8g3on7vYGQfU8YcqeVyUxI3Pa4dejrNzLN/vmL4JWv7000rLA2xPzzgy5nf/7aDiT8PDlF52vAgK+/Xud9fKffPwgr+xGMe/Z4Ne/sN9oJpudZ87MOu2vDhXFuz5ujQ5qz5zrbOIMPxeQWi5zjbIwx79U2QyJcn88KDt/Oezqvjd+Ahnx47s4UCjvvY/PtWD4RTdnMupKMbnBlrrOT7bZzDhfSaRtfjSYmcffSjoFaOEk1KizNYUQ8QIOLNHJg2R127OA9yXRUmKmYAnah8doqjSGNAK7g0UiVA5cdm4aZYdfDRivTys6wZuCZ1BXIzdgT4q2GoRsbC9cwAubc9gKMTV0SVlxrZRbcgws7485K45oboK0KZ5Mlsd2VmBiIkF3QRge76Rzv5NxZdvdg7lAz7jo7XGQsUkMQqKnGpYYRAVjB3YYB92Jg5XWOPEtG5/8TBG/JlmQJclzVbPuNiKwqNMDGB+Y/PQiFFDbyUXmPb1OuBXRp2rjSBFxQhoEEbniTqqFV0NvorTHOyaIVSEaarNR5zrLLwzJRBBMbLJFGG4jiCzYgtmgqLYQLIHE3NzSX3GjqcFLcdTxyiiGaGGofbFvZiEmj8WxgMCbqToAUt4F70xduYSVAssOeyDRCuqBkAjkkF6A4zNVESBIrZkkKGowJwzi4hChGKScExaQzKQ67JsZgmpweMVhCzrWwMSySaEfFWXly6aWjCSjOg1XPqraAlygliWwmkHUHbpIJ5iB2gZriAQ5hlq13mgL3MkxFu7pEl4C61WdGCIOQltCEhANVSDJ9jSB6ARuTXAOJGJgkHklZYpAAmppJ2IBVyHzPoAoReqGpCzbVAac76jPDy7nsPBzJcr4P8sr5/JJxsqY1CLZ44MDj4UET0hlldOc9rLk5Zglkg8SwGRZI3/ZN0Pz1EEP2+Rlq7tG3vVj0ucYB59xK8nWbB1tI8hdnNbevh1jZfix7FpYb0kX7fcgo9juJEP76z78jEY7tIsU/C5Xe+8us68596Dy4RBM9455YhX1FO8r++MnKyP2HYdTw1xdRC28EgPcrCpE+aUN4+PE+0Vhuft5wTNozPNjuOQ5DeBaKjpxIsC8TlPyW1XN99jWb4yHrzofR+7VI2FkxAtkk6uDhHEwjA7NxjJAipwIgJ2EmS09NCJjYEC03JQSdI2Dad6GtTcDNpDnFBKAQvTGyNA7AWE9zCyULRLgYlIaTVpsAFamANiykCIGKTRIKHQRKUY1kqIBd1C5jsycuxR0WNrjQ5aTL3sEgJCTJkQQtiWDS24yS6I5A8KQN8YoSMqyjNjA4WcWAGdgRBizAeFtIKkkAC01CF8sZQFtnTrag0YDFZbImGAzXKDoMNrkiEK9RIkvCDEt6x0QS010GrByZgOgkUeABVk0YMcTUoa1BADAuoORmmhi2ALZiAOMgpRgSSrM0W4EMDCoB2akCG+wGMjKbSk2CLIcYIpcDNGU+SQyUi2GdWMhIA8De1qCEBDohIyNRlmRRhgmxkE6mpmrRHJsEERSFEBNyoZgIRlN6yZvIwkbX3VwkFO9RVXIvaromIASRGNwkJC0xeIyZEkyJJEkzIZAQxQBJYhqYrRAuF7kQEgAS3iJUBnAkGqzFYkxtZm+TlJgZLoihYUsYmQgQIFQlh2jsBDJljaxleMTd2SYvBYIJi5PGWPFOwdiQkyQm4MGcmRRaEltIwwBPCDiWwGPNMjlJEsghkTSItxwokiijXHBFnr9/LB3m82NZGeTm7SDm0/M+b0j+foBgXDR6+Ou3V82Nz9VAJDfIS/38awZKeCur3e52yyu8B8Iur/2ELLwfTFj2+ZFxNOQTz9S3kTaCPr6N2vz+eAZhfZAs+TxdDGBqDMaAYWWVYGDfD8SYz3m0o2IJrPjHF+WGfP9jBCPvCRV6aTEG/fNZKub9LYawvhCEuId0MfLvHxEwn99eYkx8ziGJAQcAIzckt8sWPMv6aQxeWZF5/C5ZCPSmjgvmbYTreQ741BACEXJkkFUv1Bv69awZsVkWgyGmLhzrvDVpbzFZAWtdyoEGbSExxJZ5SyQrgugcGKNqXIWYSYiQR7G6ELyEMOaIA4gGSJCxjao5LgxIIDdyrSOFLFuBYKQmI8TM0rwnWkDAOBktEcFeZIE0zC4ICZYn6RkGSiYQwM5Li0BG4ixwZiRASozhpmcSQ9QU45vDErMgegAvHjZIIGLVnt4bJBJUELkCC4QAYF2BHQ1I0BtIOIKl3PRG5HCQFmK6hCQw0BgXl9gSLkKS2DJJcoTYJAI2BIGbUA0a9NBeiFobyKGnUZKUBTWDILkleQFGScjYGw1lSlltymVJZmJzQ+FSBGIko6ZbMTfGaAhEWLvC1EIATQoVVIlwMmkGhOHU4ZWCU2rSEiDUXOGpBi+oFU7Q9woa1gVKFNS6AqmOtsfaKGMWyA6xyA2pLmAIBJdKBgtDgBQsXoldQuiDh5JjMyJ4U9ClRgESkoEQTCjmmtpyDORcRENBwnYMczVnegXBlmaIMfRKzq4zXUYQtSEotUuOGG9gIVDXBMWbSPBqGo5JuVjikMSQhJvWmiC8BKuJXagKJmEmSUwXFgi5lcSjzQJCBJxpsWkbDgGF6snlwFjGBUoHxxhGn1v7SSpWyJnPpxZBH844s7kpoLcVonE7NxfCW5DFeNubF/TPX4ux3n8uWYSaOKwuL100l7wVeH8IntE1RE5Xazwg3zvw7vj9axkLmO/KCPjHr9hleX7v4rm9f/0vIIs1YOTc812IkmuAiKQFq5/fjDFLfv/NEPHlqTszKqys3//xFoM7//4BLJC/n0EifQury/3nJ+Og/DSwGm7GcanPs3Aw5OuL8/k54n8DA/QrEmoyIJ2X+6wALQlCB/fYhe7gIGqeNHeJz5t47uNybrsOQgeG9KusXeL5cTlvEj3GCrN9VlkY1muRcwdXuogiK3lLMhANjEax0hRMa6ia49AIJBwCxQRIaKj4QkgOZF0iRU0B2xKPd5cJkhducDkkgcweL8aIi5JNLvCcpjUk0RDjUMETA1kSSzSDbWv0pBFbdpKhwTHnYoALKySRADEAARJdJHQQ6UmyZDGjBKQYSeM4dXClEk8Mtl7WDiM2KKmQ2AMYFgMDI1DamJpJcMlHmsSwJk2tAqFgglEqK0uaiGpgL2eCN7ESm8O04RqRQWU7jQcJnLcHu9XkVrgs4IMaaKuCEhuj6QKmOj5TYDF6MiTcNIrBBEOvnkEg7OaMo1dIUnQ5ubAsgAFQOMxVYgMayLaYU+bc5ZiRmSIhzBoKL6JFwUa6wLIe5lKeBiUBCNy4lN7EXkyMLOFmiYk5yFlsAAiId1AsLGhYICt8iVQDEISTspuW0zI5F1gDKZwq1ZzAzb3JScS9JyGtF4EFx8EstO7pUkCcNt0oa4SAeIPiQgYCIxVyjuIIObYdkDUXRCIGSRBthkzC0SfJaSgrzqnBG094cAmaM8EtAbKY4AiMm2REL9GmbMJZYpYQa84wxJkjTRsuT8quRwIo1zUgpCTowrkkmjlmgExNvCY+RnIT8/swGHorIeOP32o8dpIuWBnPpUBvthj69u36JgvpFmW7ven38V3OJTuX02otIccHg19nBU/8dk2U0zNpB7qSG8xjMDteVLKQTzLY4f0J3MYwE8dzETCY/PsEYzQAAfcVlKN7AKTzAoaOn2bVwlsJ0fPXIVng/fVdqeH5/VBj8vv/ZMm67P/9H7eL5c9/gV01b2cQ9pN4rnVPB3CaDxNvXW8XyPV8CrXSnwAQAaIc38RUKGRdGHmw8rzPxWVVK7AI6yOc3o4nWE3yI0vW/uCT7Lj2UE7W+/ST3g7oc4nA2wufBE9lEHxxpBmHAgXqSaIXeQEDuEGSzAoAejyKaWqA9yACIwjloUABcrNAhkYKwbpD4nFdXJKwoykZjQCiACR2taUURhKZyEmCEVEhFVtzAmkTIG9ykwJpPllKg2ssndnByFIu3NhEVZsKCQlQIQxmTOJCKrs9N6YJ2U0uh54ak7WXrdRAE02k4WJOBAVajtDdZAS1kRo5uAGxMPAaCG+R5KaDKl2SWLAETcolA1iMp1gIkmCkiYtlW+FIYuaCHSZJu4vXQcMSSoUXcpCxsQR4atCIwiQkTRMvKGCRSIfBQMAkTXZvZiOpoBAzAyAbmQ70MMJImopUaWWaHSwN44UmSRHGLeUmxhguFaGK9C4qNpU17cmovSR6jpA0BNgZQSnu+m7nFHlDtiC0NsUbKJYZDsBrQ0Eupo3hOMQUQdckRytTgCPGEZRYE9MqIAvIDsxBlu2OLbbSXlPmdA2h6JELlLabI7EJRuMVDWfBkDQgoxiAYFs2IjPYeCMJvdOEmgNBb5KRjkp6UUKqKe1NTG9ICEWgEJZV7byNpB2VJCUUGJlPpYQZInmbjBAwmuGhAckBw6KbRElMA6SJahLjeV4JBr9/PQB0IUYAgYJh+07sLtysQHxPMljWHTtu4xt64/o+NXSct3mCz2XfJxXI56FLoPe79zg4/+e3eW40/vvXpVf8/sV75tlGR7xdgCXAG42R4O8/6kq9OWs0eTmwkPGDm4q8PyRozZ9PILd8/wixN7lNV9m5//UPAYiHZMlyvxoZYX/8NHbZ9/8AY8zbFbP4fH+BkX6+LjGM/f2L1cpf/9Qi1QdvgHi+DicX0nI0nJuw89xaPpWbW7hAzMvTetbIgfRa16q3Yn4+EQIIHGlWb0wwPx5iMjPW23vu6Dxmx7dBz/Y5mAxyfoQfbxK/CABrK2gJA1glgZZwKXy5UmhQqmaqq0KWUZJgMQEgdzGHRQZCMw6SCzDDCiAdYlbX0DKyNFkgFNma4i3jQW+SIp0NSc2MBCwGtArI0CxjLTPUw7FdQgPkMsgmMMORNLs9hq5JZnkJRksynyGKCUBmA8Njw9WYJdI261gHuSbZnKmsBOZsgJlEg/cmhDIKJnRrGq0MIToUS8HSkMYtPdthivSCzUg0JBfgmDSGRhEC40aHUgzBm2TXEIsCSAgmpSnaho4gufEEaG4ISwLLldV5140QTBJMYCF6g7oYzTULCWdCOkAN1BPXTecRboJGsCEUqy0RHjOeOIrtkLTQlFdTZBALIem4CHA8Q4+KBzRpawmAzEMRq4Oy0AhqsOHCEtywhBMYSwABFtcLB2K6aU2uTtAtIyYISs3uRLgmsyTMDbRsEhLJGLQLIcQjzoFzWJsbGZBENHRbSEnjGknGJKw4MJyl8wSaFE/qlmxpIeYQjEkDicYg0dACWQCPRWnbmCyhBJMCplugdAagEZ7SwIEWTpiGPFXSaNS5MwI0aaRLzjhwIzlL1ElUTyG1QOIAhBizFWENhiRdrAnIYwL2Ltu56RAv7nTXw2SM3Ky5gPcEjgkfq0X3Ob73+Mm+FhODf/2GUrgpYsz7pWwk45MM69Ysdd3Jjoby547z3P79G9nIwn25iebyABhuvkcEi+fcZMAzjxjzfZRo768byC3548EA8OW5kGxfI4vJ1vSl8v4CWFkXC4DLAmTn7yfJJfgag2db75O3+PlHDbnlnkLMTYxnden/86NddM9zClkkH5c1guPtPe5JCKGDvvFkJ19tbjoGNyOCRulkJ8tzbS+WXBzkJXVdk3USws09yBcL4JP3Ab5Wz7N6duBgeLvn89z07UX47etcgFDRhSTJiJJLgbpMqqLDWM0kLPjQWHKyp1SerPFReTnaZoybtJ54xw6hI0F5eLIGG0ahKHp7LVEQGMe855IxCRzWwMGSJpHMRJJ4lE5IUnM6A6O1JCDgi+nM3XnJgEOTYaOLu0apTCQ5ZDgBDXuLqCgnxhiknZlnJRGOJBgGoDhk4UpRtBkHAooxptRwzVYAUBAUIAQhOWcdwN5zIQmcBkKTowVxaABrchNCJRUKzFIiSaBNLlNChgVIQgsgGAlp0zHkKHQUB3IVBaPoTKW5NCFtQGG7ByAEHQnqB2qYS2Ysh9x4RMoBLEzPOkLZRI4KUQNImOoNGZyZQIosxm730IlQCUsSQ8QImEjaXPIaQLhOA0nYAIWd5i5mJxKTCTU1I4e+KUwiTICdBQKplBGoFiNEGipo5MIg2uRBqABpkJgRtyYRQIBAKjEugIQxmsA0FFJGhGSnIOa8BLsHMlRN4BSNiRYwciWMLSosM9dTwYtS0CSALs5BpaHLEBY58RwVoCVJEF2VNgYDJDkxTSRcxgVwaO5SktyaIFeXaEDnbgDxAIhYrKWRnjQUjltmaiWGIKSklxjH4VlHGMbP2cvZMi3h1hqCybWSVPP345IMH+Wo3bFheATjM5BAMs/NWUgiDSsg8SxG+JDeXEzdw2W5NyOGrY1h8XwfzRvBtyPcmI8Qs37eH3aN+/zDQEbO778MYt77GED++E9qNOHf5yijfJcsEE9GjH2/7DB4/vc/gSjvv7QjJqnZWfx8JVo5fhoM3WARySdfxJj8+5/DZGfZuektO89zDV35yvGM2EmHyT1PssLZ6SNA+oEh3ieeAc/Ij+CzROKRAysZ1HP5j59GYz4NNAsgxi7knjjPWA3Z5vF0Pt5fFgzwY1m9NXrDZcnbAVIQzkJIAIOGuRjGqiTHT4oDO5ckLBmRYULYYRuGJGZBSpLEEiEkBIKsnBnObEBuTAq3fe17gxEjEI5bBLBwSkoyTjgXOh0MqXA4ZCVdilnaK3mFwlXTSSVthpe8CQ1iKJcsWzrsHBnACkRiTMDGJCSUa3yWYjPDIQYzLiGDkau2GyzZuCgnKYSwFLlYgihouBEbHASIIbPigYSTgB5VsNor+jBbyCFkJIwwm6kYXcUR6BjE5JALEarFeGKTQktAYioBb5TKqAANDNMkWkkhEJJwyCiBYS9yepHYWxoX0oTq68kGDLRTQKocGsEwoJDIKWA6d2DAqEgmROEWEajDnCgxG9VAIkxwKhn4SjqeXbwAw6Y4KF6iO1g04aA5lqINLGowCkDIDSFkJQlwb1g07BKuiR5jDAthltJFw5aCkyomWQhMbAkGCIpNlrrmQgHhYqJRW5IoN9FtuMwhEBp2EpoUkjKJIktNZKQxWUpbKWC5wSR2aOKRhrYkJoeICZghGwKzo0DgxFLjcm+edGYxcbZY0E20dYdTkjMKJHlZWm5coDJoJqx2mGUnumK5y4gUAySsQAqGSx6ES3D/9YOzzvz1TzzAYC9EwnvIJcYlxuPD7iVL3IpTcxHWe27ewuWteS6IISI3yPz7Qhbe95QY1n3Cp9nN989jLuXsr2gk+ftfNyHxjMF5E8lrF8K+TywR9v/9ywbk8x83QRM+ySh4vxZGcp8Vyo38+dPVHf74nwAYs1XBPH/8EjrYuYVVP/+IAVi/a1gyfxAAsz9/GsT0/zxQhfdnMkju/YcBrXlgoDlPY8i657dfyHLPQbjJSOIBMHkux7MnwYjh6deIkR9OzgVCRkegGm/vodpCPSMXdpAkO1BvEELyUOxO7798XFilQswZibSLTRIIG5xksUS0HCTaJByCirEXZFpkSPKBCJoQzgqA6WzCWnpyxERBiQscEtSg8cGkuhEbDssaSx6BGElKBC+lslBYOHdSjCxBOLcYJTeEgwCBIpiQeS49WwMV7XVLYoCKMNlGy+AyjliATYKSjtegp5XE4oHjTdiYGMMNJLUwGs6yeuA9SYadKoH3XKD1JoAFcptIkrsE3EEgAwFMOLBQK9SkJLjbQnO4tZeQxAjI0uDKiyyZ8AZLTEgiYSkE1hTTxI4xkzlIOSQd0JHMcTqF28ARacqTDE9WtEhBkQGi4xLHRWgkF5KSDKtJzUipkCTxrVAXAblEMFSxVVSyu5reudRUUKK8IawY2lJMbuCYEQW4WtzJo6zAxaUEKYQY0zNIk9ObhyrcmxibNo6lGkkUodpDgiFSEY4lYUqlztB71lJYWQinEDKwpAzEoBBWEoMJ1bsy1kapJwGQQF2smAEw7/CyglWPVRUIq1BJSNaTezMIJIGBQ4SKC6MhxpRYqsBgCwtYVcs0a0w83IgOoxivTe/1gAXgPiVitMCWpKwCAgSsmhIBmrKoxJEcbukFIkaJQFkMJi4VEcNjpevSe9hxibv9+yzl7j338IlbblEvyRrmoWE8q/zJgiZ//GowHrwBBpaBMfi9KF3//fMsxXYmkAQjktxzCxgDf54QyL7/Wy5sZ7NiV2/+enIL73n+718uED7/GQPA65mJwYZ1hf3+kx138KYacv/+v5RzE/ivH0GC3//dFY3nrx/m/y8IjpJtOawqCFatPk+WBAERzH+EfDowyL6nd5HJfd799WdGIv/4LQPOscNT/u8xQ/r9zMx//cqbAe9j7PD++mXtFT8PDPrgf25Hix/eTLmeMGm84+L75B8DhJ7vAiV8H37k+Pyh0BrUiwTJ6OsdbyPkefYOuM8pyKS/Pe/WjTvfJ+ByzZM+P089Wf5txv1yLBo4SXSpCVBwMBNw+IwIYGdSQHfB3nc0OHGfHuKYV9xd7zEwFV3AooZ2TmPXOBY9PUGY16fHLX0GIBVMuh27wcGTVoccVRlwAtiNuxEH3K5TEgCINZKg9+UVXM2HTYyDDKJbJojCgMPbhx29CmQpe/GHIuvdG0QAHmzPjlO6NwJXMBgSwMQ8TjCHSGgiUzkmRAY47DXLSIIIeWKhHZFAR/fxhKfjcLt3RS7BJfI+3rOTUFV4gt25eWBeJLCdMgA0mqcHu/kCbUBBVTy8cD7kQXHyCqovONDneH3uvJhq3eOjvEBGMdojPEG84Slt77teRSngwfmOcadABQZxQ840OPfFoRfHM/NF4AgUX+B+4zg+zlg+YJHBi5DSu6UDUbyLBIBgdt3BpeLz2IKCRyzNyfGKOIteWRpEigGeAS28C7Jxb3G7GA7C9Zzn98ZDXuMsOD3t3hEJsmuA1DGkmQh5XHsG4xO13l5efIDiEF4uZnHwjOhDNF0MAJZEa+yM2REebu1JaWZ0ceuTvE/ctUSkleB20udWNq/uCMyznyylVLuD44UZ5mfwEoIdJ2a4u7v7/HaJu/HPd4H58/t6ZO/zM3UNjjCo95/PwLfH95Pt1sunT/I+yEnWy9PjDbhe/fLleCAQtmLdIArg/vXBwHgt7faPXy45rfbO7DXC7fK//9gJ8j//JWarn88Z4J1g8fzzjwSS77bbSd/3D265298/hDt//uMrBHz+/hjoe/9Oes9xd+4d9/i/v796j+/7x1mj/fzydfec359fz1ehn34DXwdIxu7z1wfJ7PNvv0YAf0IE1+d4vEx/CTe8X8+7Gjf01krxFY7bbx8sTZTX3fgTd0nfw3fPvbInPjb75e8vD05BEh7fcX13fZ771M5PSx7F7240PDIMGOpF+ByRPWGHjCH7dEfx5p0JRRLkXZ5fvbbQ49uI933tpWoQvslrwoXTH6bZDRAuiEb3dpzEpsK87DC6chsO9pHjAeTm6XUUgHm+vg33vadX8WKZAZWA+sVqwe7X+3TAyDM9aQeA4F6rHAdeABB2EKAKxO1utyyBdQlZQVE7JY/u7TQMXKTJYNV7u3uk0PxSk4lYhyfQg/DyJo7meBSagD0nvEYoiDDfQIAsM2EzBb/LK4xLioGAsDaQhs9HSJj0Ti8gF+Aub4Dc9VhkB/QoPA39GiAElyuBdaDk7UJkFQLhHiFIBpJcd4EI1z1aise5COPwnmU9RRxGeMmDHxiAuDLjhyeTeS6Xxip4jVoPr51D8yvk5XMHw26QDK1jyX2JxWSHQc4hUTfYC0oEDw3paYD7nnw1zoITpfIbN+iM+a5Pn96deFnrCL0z0hVX73DXEzvDzpckonlk3cEe7zia8M433pZBcITg42C4u8FTeHm8O/Ldh3OHrp2p7HY7pDsEOBWeI8Yo2eGAwIWcqvdUyjsQPODJgATIYlix7eHhaPXoTJxwsjmujut45+H7QDcmqLCg+4AvPfEUPT1HMCCO86BvaVdNRC/A0ZuwIkJIul3wBgS0TJqIoQdwXLU5CKPrToevd/wCmptvBjd7pEYB/w+N5XMcNYEbDAAAAABJRU5ErkJggg%3D%3D)} | |
#wrap {max-width: 800px; margin: 0 auto;} | |
div#main{background: #eee; box-shadow: #000 1px 1px 3px; border-radius: 2px; padding: 16px;} | |
div.t {background: #444; border: #666 1px solid; padding: 10px; color: #eee;} | |
div.t > div {padding: 10px;} | |
p.sm{font-size: .8em} | |
div.tree{padding: 4px; border: #aaa 1px solid; background: url('theme/fragment/tdbg3.png')} | |
div.tog{font-weight: bold; cursor: pointer; margin: 4px;} | |
a:link{color:#333; font-weight: bold; text-decoration: none;} | |
a:visited{color:#333; font-weight: bold; text-decoration: none;} | |
a:active{color:#222; text-decoration: none;} | |
a:hover{color:#111;text-decoration: underline;} | |
form{display: inline;} | |
table{width: 100%; margin: 20px 0;} | |
textarea,input[type=text] {border: #888 1px solid; padding: 4px;} | |
</style> | |
</head> | |
<body> | |
<div id="wrap"> | |
<h1><?=$title?></h1> | |
<p class="sm"><?=$links?></p> | |
<div id="main"> | |
<?=$msg?> | |
</div> | |
</div> | |
<!--<div><small>By Kaeru~<br /><?=pagestats();?></small></div>--> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment