Hacked By AnonymousFox
<?php
/** Adminer - Compact database management
* @link https://www.adminer.org/
* @author Jakub Vrana, https://www.vrana.cz/
* @copyright 2007 Jakub Vrana
* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
* @version 5.2.1
*/namespace
Adminer;const
VERSION="5.2.1";error_reporting(24575);set_error_handler(function($Cc,$Ec){return!!preg_match('~^Undefined (array key|offset|index)~',$Ec);},E_WARNING|E_NOTICE);$Zc=!preg_match('~^(unsafe_raw)?$~',ini_get("filter.default"));if($Zc||ini_get("filter.default_flags")){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$X){$cj=filter_input_array(constant("INPUT$X"),FILTER_UNSAFE_RAW);if($cj)$$X=$cj;}}if(function_exists("mb_internal_encoding"))mb_internal_encoding("8bit");function
connection($h=null){return($h?:Db::$he);}function
adminer(){return
Adminer::$he;}function
driver(){return
Driver::$he;}function
connect(){$Fb=adminer()->credentials();$J=Driver::connect($Fb[0],$Fb[1],$Fb[2]);return(is_object($J)?$J:null);}function
idf_unescape($v){if(!preg_match('~^[`\'"[]~',$v))return$v;$Ae=substr($v,-1);return
str_replace($Ae.$Ae,$Ae,substr($v,1,-1));}function
q($Q){return
connection()->quote($Q);}function
escape_string($X){return
substr(q($X),1,-1);}function
idx($xa,$y,$l=null){return($xa&&array_key_exists($y,$xa)?$xa[$y]:$l);}function
number($X){return
preg_replace('~[^0-9]+~','',$X);}function
number_type(){return'((?<!o)int(?!er)|numeric|real|float|double|decimal|money)';}function
remove_slashes(array$Kg,$Zc=false){if(function_exists("get_magic_quotes_gpc")&&get_magic_quotes_gpc()){while(list($y,$X)=each($Kg)){foreach($X
as$se=>$W){unset($Kg[$y][$se]);if(is_array($W)){$Kg[$y][stripslashes($se)]=$W;$Kg[]=&$Kg[$y][stripslashes($se)];}else$Kg[$y][stripslashes($se)]=($Zc?$W:stripslashes($W));}}}}function
bracket_escape($v,$Ea=false){static$Li=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return
strtr($v,($Ea?array_flip($Li):$Li));}function
min_version($tj,$Oe="",$h=null){$h=connection($h);$Eh=$h->server_info;if($Oe&&preg_match('~([\d.]+)-MariaDB~',$Eh,$B)){$Eh=$B[1];$tj=$Oe;}return$tj&&version_compare($Eh,$tj)>=0;}function
charset(Db$g){return(min_version("5.5.3",0,$g)?"utf8mb4":"utf8");}function
ini_bool($ce){$X=ini_get($ce);return(preg_match('~^(on|true|yes)$~i',$X)||(int)$X);}function
sid(){static$J;if($J===null)$J=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$J;}function
set_password($sj,$N,$V,$F){$_SESSION["pwds"][$sj][$N][$V]=($_COOKIE["adminer_key"]&&is_string($F)?array(encrypt_string($F,$_COOKIE["adminer_key"])):$F);}function
get_password(){$J=get_session("pwds");if(is_array($J))$J=($_COOKIE["adminer_key"]?decrypt_string($J[0],$_COOKIE["adminer_key"]):false);return$J;}function
get_val($H,$n=0,$tb=null){$tb=connection($tb);$I=$tb->query($H);if(!is_object($I))return
false;$K=$I->fetch_row();return($K?$K[$n]:false);}function
get_vals($H,$d=0){$J=array();$I=connection()->query($H);if(is_object($I)){while($K=$I->fetch_row())$J[]=$K[$d];}return$J;}function
get_key_vals($H,$h=null,$Hh=true){$h=connection($h);$J=array();$I=$h->query($H);if(is_object($I)){while($K=$I->fetch_row()){if($Hh)$J[$K[0]]=$K[1];else$J[]=$K[0];}}return$J;}function
get_rows($H,$h=null,$m="<p class='error'>"){$tb=connection($h);$J=array();$I=$tb->query($H);if(is_object($I)){while($K=$I->fetch_assoc())$J[]=$K;}elseif(!$I&&!$h&&$m&&(defined('Adminer\PAGE_HEADER')||$m=="-- "))echo$m.error()."\n";return$J;}function
unique_array($K,array$x){foreach($x
as$w){if(preg_match("~PRIMARY|UNIQUE~",$w["type"])){$J=array();foreach($w["columns"]as$y){if(!isset($K[$y]))continue
2;$J[$y]=$K[$y];}return$J;}}}function
escape_key($y){if(preg_match('(^([\w(]+)('.str_replace("_",".*",preg_quote(idf_escape("_"))).')([ \w)]+)$)',$y,$B))return$B[1].idf_escape(idf_unescape($B[2])).$B[3];return
idf_escape($y);}function
where(array$Z,array$o=array()){$J=array();foreach((array)$Z["where"]as$y=>$X){$y=bracket_escape($y,true);$d=escape_key($y);$n=idx($o,$y,array());$Xc=$n["type"];$J[]=$d.(JUSH=="sql"&&$Xc=="json"?" = CAST(".q($X)." AS JSON)":(JUSH=="sql"&&is_numeric($X)&&preg_match('~\.~',$X)?" LIKE ".q($X):(JUSH=="mssql"&&strpos($Xc,"datetime")===false?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$X)):" = ".unconvert_field($n,q($X)))));if(JUSH=="sql"&&preg_match('~char|text~',$Xc)&&preg_match("~[^ -@]~",$X))$J[]="$d = ".q($X)." COLLATE ".charset(connection())."_bin";}foreach((array)$Z["null"]as$y)$J[]=escape_key($y)." IS NULL";return
implode(" AND ",$J);}function
where_check($X,array$o=array()){parse_str($X,$Xa);remove_slashes(array(&$Xa));return
where($Xa,$o);}function
where_link($t,$d,$Y,$Lf="="){return"&where%5B$t%5D%5Bcol%5D=".urlencode($d)."&where%5B$t%5D%5Bop%5D=".urlencode(($Y!==null?$Lf:"IS NULL"))."&where%5B$t%5D%5Bval%5D=".urlencode($Y);}function
convert_fields(array$e,array$o,array$M=array()){$J="";foreach($e
as$y=>$X){if($M&&!in_array(idf_escape($y),$M))continue;$ya=convert_field($o[$y]);if($ya)$J
.=", $ya AS ".idf_escape($y);}return$J;}function
cookie($C,$Y,$He=2592000){header("Set-Cookie: $C=".urlencode($Y).($He?"; expires=".gmdate("D, d M Y H:i:s",time()+$He)." GMT":"")."; path=".preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]).(HTTPS?"; secure":"")."; HttpOnly; SameSite=lax",false);}function
get_settings($Bb){parse_str($_COOKIE[$Bb],$Ih);return$Ih;}function
get_setting($y,$Bb="adminer_settings"){$Ih=get_settings($Bb);return$Ih[$y];}function
save_settings(array$Ih,$Bb="adminer_settings"){$Y=http_build_query($Ih+get_settings($Bb));cookie($Bb,$Y);$_COOKIE[$Bb]=$Y;}function
restart_session(){if(!ini_bool("session.use_cookies")&&(!function_exists('session_status')||session_status()==1))session_start();}function
stop_session($hd=false){$kj=ini_bool("session.use_cookies");if(!$kj||$hd){session_write_close();if($kj&&@ini_set("session.use_cookies",'0')===false)session_start();}}function&get_session($y){return$_SESSION[$y][DRIVER][SERVER][$_GET["username"]];}function
set_session($y,$X){$_SESSION[$y][DRIVER][SERVER][$_GET["username"]]=$X;}function
auth_url($sj,$N,$V,$k=null){$gj=remove_from_uri(implode("|",array_keys(SqlDriver::$gc))."|username|ext|".($k!==null?"db|":"").($sj=='mssql'||$sj=='pgsql'?"":"ns|").session_name());preg_match('~([^?]*)\??(.*)~',$gj,$B);return"$B[1]?".(sid()?SID."&":"").($sj!="server"||$N!=""?urlencode($sj)."=".urlencode($N)."&":"").($_GET["ext"]?"ext=".urlencode($_GET["ext"])."&":"")."username=".urlencode($V).($k!=""?"&db=".urlencode($k):"").($B[2]?"&$B[2]":"");}function
is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
redirect($Ke,$bf=null){if($bf!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($Ke!==null?$Ke:$_SERVER["REQUEST_URI"]))][]=$bf;}if($Ke!==null){if($Ke=="")$Ke=".";header("Location: $Ke");exit;}}function
query_redirect($H,$Ke,$bf,$Tg=true,$Jc=true,$Sc=false,$zi=""){if($Jc){$Xh=microtime(true);$Sc=!connection()->query($H);$zi=format_time($Xh);}$Rh=($H?adminer()->messageQuery($H,$zi,$Sc):"");if($Sc){adminer()->error
.=error().$Rh.script("messagesPrint();")."<br>";return
false;}if($Tg)redirect($Ke,$bf.$Rh);return
true;}class
Queries{static$Og=array();static$Xh=0;}function
queries($H){if(!Queries::$Xh)Queries::$Xh=microtime(true);Queries::$Og[]=(preg_match('~;$~',$H)?"DELIMITER ;;\n$H;\nDELIMITER ":$H).";";return
connection()->query($H);}function
apply_queries($H,array$T,$Fc='Adminer\table'){foreach($T
as$R){if(!queries("$H ".$Fc($R)))return
false;}return
true;}function
queries_redirect($Ke,$bf,$Tg){$Og=implode("\n",Queries::$Og);$zi=format_time(Queries::$Xh);return
query_redirect($Og,$Ke,$bf,$Tg,false,!$Tg,$zi);}function
format_time($Xh){return
lang(0,max(0,microtime(true)-$Xh));}function
relative_uri(){return
str_replace(":","%3a",preg_replace('~^[^?]*/([^?]*)~','\1',$_SERVER["REQUEST_URI"]));}function
remove_from_uri($ig=""){return
substr(preg_replace("~(?<=[?&])($ig".(SID?"":"|".session_name()).")=[^&]*&~",'',relative_uri()."&"),0,-1);}function
get_file($y,$Rb=false,$Wb=""){$Yc=$_FILES[$y];if(!$Yc)return
null;foreach($Yc
as$y=>$X)$Yc[$y]=(array)$X;$J='';foreach($Yc["error"]as$y=>$m){if($m)return$m;$C=$Yc["name"][$y];$Gi=$Yc["tmp_name"][$y];$yb=file_get_contents($Rb&&preg_match('~\.gz$~',$C)?"compress.zlib://$Gi":$Gi);if($Rb){$Xh=substr($yb,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$Xh))$yb=iconv("utf-16","utf-8",$yb);elseif($Xh=="\xEF\xBB\xBF")$yb=substr($yb,3);}$J
.=$yb;if($Wb)$J
.=(preg_match("($Wb\\s*\$)",$yb)?"":$Wb)."\n\n";}return$J;}function
upload_error($m){$We=($m==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($m?lang(1).($We?" ".lang(2,$We):""):lang(3));}function
repeat_pattern($sg,$z){return
str_repeat("$sg{0,65535}",$z/65535)."$sg{0,".($z%65535)."}";}function
is_utf8($X){return(preg_match('~~u',$X)&&!preg_match('~[\0-\x8\xB\xC\xE-\x1F]~',$X));}function
format_number($X){return
strtr(number_format($X,0,".",lang(4)),preg_split('~~u',lang(5),-1,PREG_SPLIT_NO_EMPTY));}function
friendly_url($X){return
preg_replace('~\W~i','-',$X);}function
table_status1($R,$Tc=false){$J=table_status($R,$Tc);return($J?reset($J):array("Name"=>$R));}function
column_foreign_keys($R){$J=array();foreach(adminer()->foreignKeys($R)as$q){foreach($q["source"]as$X)$J[$X][]=$q;}return$J;}function
fields_from_edit(){$J=array();foreach((array)$_POST["field_keys"]as$y=>$X){if($X!=""){$X=bracket_escape($X);$_POST["function"][$X]=$_POST["field_funs"][$y];$_POST["fields"][$X]=$_POST["field_vals"][$y];}}foreach((array)$_POST["fields"]as$y=>$X){$C=bracket_escape($y,true);$J[$C]=array("field"=>$C,"privileges"=>array("insert"=>1,"update"=>1,"where"=>1,"order"=>1),"null"=>1,"auto_increment"=>($y==driver()->primary),);}return$J;}function
dump_headers($Pd,$lf=false){$J=adminer()->dumpHeaders($Pd,$lf);$eg=$_POST["output"];if($eg!="text")header("Content-Disposition: attachment; filename=".adminer()->dumpFilename($Pd).".$J".($eg!="file"&&preg_match('~^[0-9a-z]+$~',$eg)?".$eg":""));session_write_close();if(!ob_get_level())ob_start(null,4096);ob_flush();flush();return$J;}function
dump_csv(array$K){foreach($K
as$y=>$X){if(preg_match('~["\n,;\t]|^0|\.\d*0$~',$X)||$X==="")$K[$y]='"'.str_replace('"','""',$X).'"';}echo
implode(($_POST["format"]=="csv"?",":($_POST["format"]=="tsv"?"\t":";")),$K)."\r\n";}function
apply_sql_function($s,$d){return($s?($s=="unixepoch"?"DATETIME($d, '$s')":($s=="count distinct"?"COUNT(DISTINCT ":strtoupper("$s("))."$d)"):$d);}function
get_temp_dir(){$J=ini_get("upload_tmp_dir");if(!$J){if(function_exists('sys_get_temp_dir'))$J=sys_get_temp_dir();else{$p=@tempnam("","");if(!$p)return'';$J=dirname($p);unlink($p);}}return$J;}function
file_open_lock($p){if(is_link($p))return;$r=@fopen($p,"c+");if(!$r)return;chmod($p,0660);if(!flock($r,LOCK_EX)){fclose($r);return;}return$r;}function
file_write_unlock($r,$Lb){rewind($r);fwrite($r,$Lb);ftruncate($r,strlen($Lb));file_unlock($r);}function
file_unlock($r){flock($r,LOCK_UN);fclose($r);}function
first(array$xa){return
reset($xa);}function
password_file($i){$p=get_temp_dir()."/adminer.key";if(!$i&&!file_exists($p))return'';$r=file_open_lock($p);if(!$r)return'';$J=stream_get_contents($r);if(!$J){$J=rand_string();file_write_unlock($r,$J);}else
file_unlock($r);return$J;}function
rand_string(){return
md5(uniqid(strval(mt_rand()),true));}function
select_value($X,$A,array$n,$yi){if(is_array($X)){$J="";foreach($X
as$se=>$W)$J
.="<tr>".($X!=array_values($X)?"<th>".h($se):"")."<td>".select_value($W,$A,$n,$yi);return"<table>$J</table>";}if(!$A)$A=adminer()->selectLink($X,$n);if($A===null){if(is_mail($X))$A="mailto:$X";if(is_url($X))$A=$X;}$J=adminer()->editVal($X,$n);if($J!==null){if(!is_utf8($J))$J="\0";elseif($yi!=""&&is_shortable($n))$J=shorten_utf8($J,max(0,+$yi));else$J=h($J);}return
adminer()->selectVal($J,$A,$n,$X);}function
is_mail($tc){$za='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$fc='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$sg="$za+(\\.$za+)*@($fc?\\.)+$fc";return
is_string($tc)&&preg_match("(^$sg(,\\s*$sg)*\$)i",$tc);}function
is_url($Q){$fc='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return
preg_match("~^(https?)://($fc?\\.)+$fc(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$Q);}function
is_shortable(array$n){return
preg_match('~char|text|json|lob|geometry|point|linestring|polygon|string|bytea~',$n["type"]);}function
count_rows($R,array$Z,$me,array$vd){$H=" FROM ".table($R).($Z?" WHERE ".implode(" AND ",$Z):"");return($me&&(JUSH=="sql"||count($vd)==1)?"SELECT COUNT(DISTINCT ".implode(", ",$vd).")$H":"SELECT COUNT(*)".($me?" FROM (SELECT 1$H GROUP BY ".implode(", ",$vd).") x":$H));}function
slow_query($H){$k=adminer()->database();$_i=adminer()->queryTimeout();$Mh=driver()->slowQuery($H,$_i);$h=null;if(!$Mh&&support("kill")){$h=connect();if($h&&($k==""||$h->select_db($k))){$ve=get_val(connection_id(),0,$h);echo
script("const timeout = setTimeout(() => { ajax('".js_escape(ME)."script=kill', function () {}, 'kill=$ve&token=".get_token()."'); }, 1000 * $_i);");}}ob_flush();flush();$J=@get_key_vals(($Mh?:$H),$h,false);if($h){echo
script("clearTimeout(timeout);");ob_flush();flush();}return$J;}function
get_token(){$Rg=rand(1,1e6);return($Rg^$_SESSION["token"]).":$Rg";}function
verify_token(){list($Hi,$Rg)=explode(":",$_POST["token"]);return($Rg^$_SESSION["token"])==$Hi;}function
lzw_decompress($Ka){$bc=256;$La=8;$gb=array();$eh=0;$fh=0;for($t=0;$t<strlen($Ka);$t++){$eh=($eh<<8)+ord($Ka[$t]);$fh+=8;if($fh>=$La){$fh-=$La;$gb[]=$eh>>$fh;$eh&=(1<<$fh)-1;$bc++;if($bc>>$La)$La++;}}$ac=range("\0","\xFF");$J="";$Bj="";foreach($gb
as$t=>$fb){$sc=$ac[$fb];if(!isset($sc))$sc=$Bj.$Bj[0];$J
.=$sc;if($t)$ac[]=$Bj.$sc[0];$Bj=$sc;}return$J;}function
script($Oh,$Ki="\n"){return"<script".nonce().">$Oh</script>$Ki";}function
script_src($hj,$Tb=false){return"<script src='".h($hj)."'".nonce().($Tb?" defer":"")."></script>\n";}function
nonce(){return' nonce="'.get_nonce().'"';}function
input_hidden($C,$Y=""){return"<input type='hidden' name='".h($C)."' value='".h($Y)."'>\n";}function
input_token(){return
input_hidden("token",get_token());}function
target_blank(){return' target="_blank" rel="noreferrer noopener"';}function
h($Q){return
str_replace("\0","�",htmlspecialchars($Q,ENT_QUOTES,'utf-8'));}function
nl_br($Q){return
str_replace("\n","<br>",$Q);}function
checkbox($C,$Y,$ab,$xe="",$Kf="",$eb="",$ze=""){$J="<input type='checkbox' name='$C' value='".h($Y)."'".($ab?" checked":"").($ze?" aria-labelledby='$ze'":"").">".($Kf?script("qsl('input').onclick = function () { $Kf };",""):"");return($xe!=""||$eb?"<label".($eb?" class='$eb'":"").">$J".h($xe)."</label>":$J);}function
optionlist($Pf,$xh=null,$lj=false){$J="";foreach($Pf
as$se=>$W){$Qf=array($se=>$W);if(is_array($W)){$J
.='<optgroup label="'.h($se).'">';$Qf=$W;}foreach($Qf
as$y=>$X)$J
.='<option'.($lj||is_string($y)?' value="'.h($y).'"':'').($xh!==null&&($lj||is_string($y)?(string)$y:$X)===$xh?' selected':'').'>'.h($X);if(is_array($W))$J
.='</optgroup>';}return$J;}function
html_select($C,array$Pf,$Y="",$Jf="",$ze=""){static$xe=0;$ye="";if(!$ze&&substr($Pf[""],0,1)=="("){$xe++;$ze="label-$xe";$ye="<option value='' id='$ze'>".h($Pf[""]);unset($Pf[""]);}return"<select name='".h($C)."'".($ze?" aria-labelledby='$ze'":"").">".$ye.optionlist($Pf,$Y)."</select>".($Jf?script("qsl('select').onchange = function () { $Jf };",""):"");}function
html_radios($C,array$Pf,$Y="",$Ah=""){$J="";foreach($Pf
as$y=>$X)$J
.="<label><input type='radio' name='".h($C)."' value='".h($y)."'".($y==$Y?" checked":"").">".h($X)."</label>$Ah";return$J;}function
confirm($bf="",$yh="qsl('input')"){return
script("$yh.onclick = () => confirm('".($bf?js_escape($bf):lang(6))."');","");}function
print_fieldset($u,$Fe,$wj=false){echo"<fieldset><legend>","<a href='#fieldset-$u'>$Fe</a>",script("qsl('a').onclick = partial(toggle, 'fieldset-$u');",""),"</legend>","<div id='fieldset-$u'".($wj?"":" class='hidden'").">\n";}function
bold($Na,$eb=""){return($Na?" class='active $eb'":($eb?" class='$eb'":""));}function
js_escape($Q){return
addcslashes($Q,"\r\n'\\/");}function
pagination($E,$Ib){return" ".($E==$Ib?$E+1:'<a href="'.h(remove_from_uri("page").($E?"&page=$E".($_GET["next"]?"&next=".urlencode($_GET["next"]):""):"")).'">'.($E+1)."</a>");}function
hidden_fields(array$Kg,array$Sd=array(),$Dg=''){$J=false;foreach($Kg
as$y=>$X){if(!in_array($y,$Sd)){if(is_array($X))hidden_fields($X,array(),$y);else{$J=true;echo
input_hidden(($Dg?$Dg."[$y]":$y),$X);}}}return$J;}function
hidden_fields_get(){echo(sid()?input_hidden(session_name(),session_id()):''),(SERVER!==null?input_hidden(DRIVER,SERVER):""),input_hidden("username",$_GET["username"]);}function
enum_input($U,$_a,array$n,$Y,$wc=null){preg_match_all("~'((?:[^']|'')*)'~",$n["length"],$Re);$J=($wc!==null?"<label><input type='$U'$_a value='$wc'".((is_array($Y)?in_array($wc,$Y):$Y===$wc)?" checked":"")."><i>".lang(7)."</i></label>":"");foreach($Re[1]as$t=>$X){$X=stripcslashes(str_replace("''","'",$X));$ab=(is_array($Y)?in_array($X,$Y):$Y===$X);$J
.=" <label><input type='$U'$_a value='".h($X)."'".($ab?' checked':'').'>'.h(adminer()->editVal($X,$n)).'</label>';}return$J;}function
input(array$n,$Y,$s,$Da=false){$C=h(bracket_escape($n["field"]));echo"<td class='function'>";if(is_array($Y)&&!$s){$Y=json_encode($Y,128|64|256);$s="json";}$dh=(JUSH=="mssql"&&$n["auto_increment"]);if($dh&&!$_POST["save"])$s=null;$qd=(isset($_GET["select"])||$dh?array("orig"=>lang(8)):array())+adminer()->editFunctions($n);$cc=stripos($n["default"],"GENERATED ALWAYS AS ")===0?" disabled=''":"";$_a=" name='fields[$C]'$cc".($Da?" autofocus":"");$Bc=driver()->enumLength($n);if($Bc){$n["type"]="enum";$n["length"]=$Bc;}echo
driver()->unconvertFunction($n)." ";$R=$_GET["edit"]?:$_GET["select"];if($n["type"]=="enum")echo
h($qd[""])."<td>".adminer()->editInput($R,$n,$_a,$Y);else{$Cd=(in_array($s,$qd)||isset($qd[$s]));echo(count($qd)>1?"<select name='function[$C]'$cc>".optionlist($qd,$s===null||$Cd?$s:"")."</select>".on_help("event.target.value.replace(/^SQL\$/, '')",1).script("qsl('select').onchange = functionChange;",""):h(reset($qd))).'<td>';$ee=adminer()->editInput($R,$n,$_a,$Y);if($ee!="")echo$ee;elseif(preg_match('~bool~',$n["type"]))echo"<input type='hidden'$_a value='0'>"."<input type='checkbox'".(preg_match('~^(1|t|true|y|yes|on)$~i',$Y)?" checked='checked'":"")."$_a value='1'>";elseif($n["type"]=="set"){preg_match_all("~'((?:[^']|'')*)'~",$n["length"],$Re);foreach($Re[1]as$t=>$X){$X=stripcslashes(str_replace("''","'",$X));$ab=in_array($X,explode(",",$Y),true);echo" <label><input type='checkbox' name='fields[$C][$t]' value='".h($X)."'".($ab?' checked':'').">".h(adminer()->editVal($X,$n)).'</label>';}}elseif(preg_match('~blob|bytea|raw|file~',$n["type"])&&ini_bool("file_uploads"))echo"<input type='file' name='fields-$C'>";elseif($s=="json"||preg_match('~^jsonb?$~',$n["type"]))echo"<textarea$_a cols='50' rows='12' class='jush-js'>".h($Y).'</textarea>';elseif(($wi=preg_match('~text|lob|memo~i',$n["type"]))||preg_match("~\n~",$Y)){if($wi&&JUSH!="sqlite")$_a
.=" cols='50' rows='12'";else{$L=min(12,substr_count($Y,"\n")+1);$_a
.=" cols='30' rows='$L'";}echo"<textarea$_a>".h($Y).'</textarea>';}else{$Wi=driver()->types();$Ye=(!preg_match('~int~',$n["type"])&&preg_match('~^(\d+)(,(\d+))?$~',$n["length"],$B)?((preg_match("~binary~",$n["type"])?2:1)*$B[1]+($B[3]?1:0)+($B[2]&&!$n["unsigned"]?1:0)):($Wi[$n["type"]]?$Wi[$n["type"]]+($n["unsigned"]?0:1):0));if(JUSH=='sql'&&min_version(5.6)&&preg_match('~time~',$n["type"]))$Ye+=7;echo"<input".((!$Cd||$s==="")&&preg_match('~(?<!o)int(?!er)~',$n["type"])&&!preg_match('~\[\]~',$n["full_type"])?" type='number'":"")." value='".h($Y)."'".($Ye?" data-maxlength='$Ye'":"").(preg_match('~char|binary~',$n["type"])&&$Ye>20?" size='".($Ye>99?60:40)."'":"")."$_a>";}echo
adminer()->editHint($R,$n,$Y);$ad=0;foreach($qd
as$y=>$X){if($y===""||!$X)break;$ad++;}if($ad&&count($qd)>1)echo
script("qsl('td').oninput = partial(skipOriginal, $ad);");}}function
process_input(array$n){if(stripos($n["default"],"GENERATED ALWAYS AS ")===0)return;$v=bracket_escape($n["field"]);$s=idx($_POST["function"],$v);$Y=$_POST["fields"][$v];if($n["type"]=="enum"||driver()->enumLength($n)){if($Y==-1)return
false;if($Y=="")return"NULL";}if($n["auto_increment"]&&$Y=="")return
null;if($s=="orig")return(preg_match('~^CURRENT_TIMESTAMP~i',$n["on_update"])?idf_escape($n["field"]):false);if($s=="NULL")return"NULL";if($n["type"]=="set")$Y=implode(",",(array)$Y);if($s=="json"){$s="";$Y=json_decode($Y,true);if(!is_array($Y))return
false;return$Y;}if(preg_match('~blob|bytea|raw|file~',$n["type"])&&ini_bool("file_uploads")){$Yc=get_file("fields-$v");if(!is_string($Yc))return
false;return
driver()->quoteBinary($Yc);}return
adminer()->processInput($n,$Y,$s);}function
search_tables(){$_GET["where"][0]["val"]=$_POST["query"];$_h="<ul>\n";foreach(table_status('',true)as$R=>$S){$C=adminer()->tableName($S);if(isset($S["Engine"])&&$C!=""&&(!$_POST["tables"]||in_array($R,$_POST["tables"]))){$I=connection()->query("SELECT".limit("1 FROM ".table($R)," WHERE ".implode(" AND ",adminer()->selectSearchProcess(fields($R),array())),1));if(!$I||$I->fetch_row()){$Gg="<a href='".h(ME."select=".urlencode($R)."&where[0][op]=".urlencode($_GET["where"][0]["op"])."&where[0][val]=".urlencode($_GET["where"][0]["val"]))."'>$C</a>";echo"$_h<li>".($I?$Gg:"<p class='error'>$Gg: ".error())."\n";$_h="";}}}echo($_h?"<p class='message'>".lang(9):"</ul>")."\n";}function
on_help($mb,$Kh=0){return
script("mixin(qsl('select, input'), {onmouseover: function (event) { helpMouseover.call(this, event, $mb, $Kh) }, onmouseout: helpMouseout});","");}function
edit_form($R,array$o,$K,$fj,$m=''){$ji=adminer()->tableName(table_status1($R,true));page_header(($fj?lang(10):lang(11)),$m,array("select"=>array($R,$ji)),$ji);adminer()->editRowPrint($R,$o,$K,$fj);if($K===false){echo"<p class='error'>".lang(12)."\n";return;}echo"<form action='' method='post' enctype='multipart/form-data' id='form'>\n";if(!$o)echo"<p class='error'>".lang(13)."\n";else{echo"<table class='layout'>".script("qsl('table').onkeydown = editingKeydown;");$Da=!$_POST;foreach($o
as$C=>$n){echo"<tr><th>".adminer()->fieldName($n);$l=idx($_GET["set"],bracket_escape($C));if($l===null){$l=$n["default"];if($n["type"]=="bit"&&preg_match("~^b'([01]*)'\$~",$l,$ah))$l=$ah[1];if(JUSH=="sql"&&preg_match('~binary~',$n["type"]))$l=bin2hex($l);}$Y=($K!==null?($K[$C]!=""&&JUSH=="sql"&&preg_match("~enum|set~",$n["type"])&&is_array($K[$C])?implode(",",$K[$C]):(is_bool($K[$C])?+$K[$C]:$K[$C])):(!$fj&&$n["auto_increment"]?"":(isset($_GET["select"])?false:$l)));if(!$_POST["save"]&&is_string($Y))$Y=adminer()->editVal($Y,$n);$s=($_POST["save"]?idx($_POST["function"],$C,""):($fj&&preg_match('~^CURRENT_TIMESTAMP~i',$n["on_update"])?"now":($Y===false?null:($Y!==null?'':'NULL'))));if(!$_POST&&!$fj&&$Y==$n["default"]&&preg_match('~^[\w.]+\(~',$Y))$s="SQL";if(preg_match("~time~",$n["type"])&&preg_match('~^CURRENT_TIMESTAMP~i',$Y)){$Y="";$s="now";}if($n["type"]=="uuid"&&$Y=="uuid()"){$Y="";$s="uuid";}if($Da!==false)$Da=($n["auto_increment"]||$s=="now"||$s=="uuid"?null:true);input($n,$Y,$s,$Da);if($Da)$Da=false;echo"\n";}if(!support("table")&&!fields($R))echo"<tr>"."<th><input name='field_keys[]'>".script("qsl('input').oninput = fieldChange;")."<td class='function'>".html_select("field_funs[]",adminer()->editFunctions(array("null"=>isset($_GET["select"]))))."<td><input name='field_vals[]'>"."\n";echo"</table>\n";}echo"<p>\n";if($o){echo"<input type='submit' value='".lang(14)."'>\n";if(!isset($_GET["select"]))echo"<input type='submit' name='insert' value='".($fj?lang(15):lang(16))."' title='Ctrl+Shift+Enter'>\n",($fj?script("qsl('input').onclick = function () { return !ajaxForm(this.form, '".lang(17)."…', this); };"):"");}echo($fj?"<input type='submit' name='delete' value='".lang(18)."'>".confirm()."\n":"");if(isset($_GET["select"]))hidden_fields(array("check"=>(array)$_POST["check"],"clone"=>$_POST["clone"],"all"=>$_POST["all"]));echo
input_hidden("referer",(isset($_POST["referer"])?$_POST["referer"]:$_SERVER["HTTP_REFERER"])),input_hidden("save",1),input_token(),"</form>\n";}function
shorten_utf8($Q,$z=80,$di=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{10FFFF}]",$z).")($)?)u",$Q,$B))preg_match("(^(".repeat_pattern("[\t\r\n -~]",$z).")($)?)",$Q,$B);return
h($B[1]).$di.(isset($B[2])?"":"<i>…</i>");}function
icon($Od,$C,$Nd,$Bi){return"<button type='submit' name='$C' title='".h($Bi)."' class='icon icon-$Od'><span>$Nd</span></button>";}if(isset($_GET["file"])){if(substr(VERSION,-4)!='-dev'){if($_SERVER["HTTP_IF_MODIFIED_SINCE"]){header("HTTP/1.1 304 Not Modified");exit;}header("Expires: ".gmdate("D, d M Y H:i:s",time()+365*24*60*60)." GMT");header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");header("Cache-Control: immutable");}@ini_set("zlib.output_compression",'1');if($_GET["file"]=="default.css"){header("Content-Type: text/css; charset=utf-8");echo
lzw_decompress("h:Mhgб\"PimcCd<fa:;NBqR;1Lf9u7%d\\;3A`%E!e9&r4MAv2\r&:Φs0*3Má-;LC@i:dt3-8aI\$ãe #9lT!Ѻ>e\0ddC:6\\cArhM4kZ|O+f9X7h\"Si|+9ƣ-4W~T:zkHb{&єt:ܸ.Kv8#\",7!pp2\0\\ \$r7ތ#i\"aT(L2#:\0ΤxXFljd&jvڗ@dE!,9.+`JahbDP<|\"Cp>ˑ+b2 L{FQ|rKlɏ_t=bK|\r=R>0(kbJU,PUumI.tA-KX4z)MPk3e`N>D#9\\(YT@hL1]ȴͺNKն2\\73i/VlYҗBA/[JĘВ\r;'2^텪bۣ3T=0H8\r+6kfC]qW)²C2`A82!hmвGD2-CYc`<s629uyҝMgy=,CZO~^302<k0wM{d#`Zۀ6C%=Rq_+-K>\n'GA\$^j><gfhmb*/\$\$lشg)Aj w#ᣃTN]T%ZjJCf4zF'* xho&k\r,r:>s(LAs5Ctn6 ll\\9D\\!mv\0A{9`.סSlg6!.20PԠi\r\$7w;G\$0CI^J\nLPc'*Ehb;pB(x:DL.j9AC@I3jf5sI`X}Ҕ#7T`djhH49S\nqHJQ H`,FP0\\{m\r~@20u! \$PoQ4ǚ\nZLMBk)@dSLpvyЃB^o*R\"#rͥS;\r4&GIT r9=6QT\0\0f#=\$H6PY:G\$09:a3Hz;G\r!hJn7 oYWLvېi|%-d\$pDR2T\rpaUn5rj\$r%D)\$GڃBu:`(lSD)I 9*ꁗ\rt2 zIg[Xc,u\rvJ5?\":^.uJPo\$t\$18\nnKT%EZ,6DHVi&zxpdrx*}ʐR25+ѓf2wq0X12dXߢ̏WËV8f\"냐q(uEGqM#а#K3WAvYÞeK]t]Ej=SX@Ӈ\rӘ\$9ܬ0P7\"D.匎<;Nj=^mmڒG68 C%v'yk/^53@.ڛka*D:7C}```)7| 3 i騽4\0.:QLͨf'%ݩM Y3\0##tP6(Bdoy6|5IH7z?(Ŗ\$RWT谦:(`r϶is=D\\,kr1ٓ2`A9&n~Ҭ6;vp M#]ɴAiJ.tYsOPwĸmZAUʷJN?z3\$PqsU9,#5PnbuNѐ{N`饙iw\rb&E\\tgba1+mpw#vlU\0e.(wb@\\w()E;Z]/&|>Q\"c <F\r7ϵ\\'Sfe\rRVlo/.\nFo ehejנTsa422 `o\\A?]IoB[{7'Q%6s7\$Ó~%u)5i0#\rfMXN\\ɇ\0,TETo\0{oRr^C @Z.C,c'J-BL\rPCD\"b^.\"h\0\r\0\n` no \r\r0`0 \rp 0\n F@` V\0\n\r\0\nj\n@\0\r\n \n@@\r\0& \n@ @ zƂ*wq0g5aPxG \n\n\rp\rp\r 0\r`\r@@ ^\r \0\rd@3 1Q9AB<t1N?Sv-ap pP\n0\0@Ѱ\r^\"i@\n 6 \0 p\n\n` qޒQDBMd9TUq12 \n2rR#2+\r/#@\" Q\r\r@\nh\n〪\0` @!;CoUҋ2e Qk p !P3с!r%p ,`\n`\n@ff ` \n@ F#`p# o\\%Bl?M-jPr3/3*Qlp p\r`=\n\0_>1'#\0>\0\r \n@ f0'@Ā\0\rdFhI\$`,CȕPݔT>7\0]ẸʉDGAC\\BMDԈfmd(\rOGFiDNɜn24tΔwFtFHCԈu+\$K6蔓E.AKԏL*1JK>MH\"GNPjE> H&5HLM#EPcc8l,CNPt@V t\nݴI kGH )D(JPl1jnlԍJ~*&n\\HUfLkKrF<|HNx\\ NlNI\0rzMtU|ZĸԘ\rHCB\"@bcnAJ9OrtA4\r@hA^`^V0^!LjU.^\r\"kalpd }\0NIGPUYtyMPrYEԥx6``jg1SB܂X8V?Id[IQ.`i̲vԞU)Ԝ\n2PV~ \"\"&r]- p*\0f\"Kj`q\nJ\"qF.\"@r(`3q>\"f\r\$ح R1h&H`ZV u+Moʬ\n3J\r Đ2I D'!S0W0J?ypjZ.\n\r pw\"-+zr!`|v2\nlf(m<=F\rQ}~7\r#o3}x<~WiEã[8\nbjj\r: )v'{Vq\no{)C߂i\r%遀C(kk4ؐd jXLN(A}xe|wGxhXx\r%Koqx8s4exρn*4Fc8~hIp]{%( Ӓ<VCB{wOƣ}Q8[[{cT%&o:*bE`mIYWk8You)Y5o9ަى<8(?\0[s@*8}ߟ9g\rӟ\0\n'w±x)٩92Z1@[I+_57=Dqz!}KNd3\0q+CY_g8yډK4{S82ZzX\0ϨzSڱe \r>:Ǭ_ZÏe:u{UMaBzɈb2YSWJ(wOwӁwmتZNl˧C98BD6Zyx{;![m{})#4[(bɘՆu,O\"F7y?9nd}{ݍs{eʦ>\"ccdcs{vdCN[GMC瓭DE@");}elseif($_GET["file"]=="dark.css"){header("Content-Type: text/css; charset=utf-8");echo
lzw_decompress("h:Mhgh0LЁd91S! F!v}0fa G2Na'3IdK% m(\r&Xo;NBy>2S*^#Q1=JW^Loc!f6mal4&1Lf9u7VDc3n82IΆ,:5rP1m>5W/FcDh2L\rNWo&hke2ٌb12Ƽ~0 D}N\0f4MCn=pZشN~;-C %z99P\";\0f89p:m8@\nX:r3#C[Cx#I2\\\"p]#5Rr6#L7!H\$\$IRd'ˉ8] x+>C@-;b<2ÔN4,-Mr6IcX4a5KETh@1@RK9\r(9#8GCpwID52l\"_'UBU9c@G=C\nS0j7PU9J]<\nƲσz?B24\r/P\rM[XF_jHbnC&¡f%@cC^.28C}^swL/5OMڳ *X?b.Ig&aq݊>FN-`y4sj\\&:SaP;HXޯdkt?.,ZO@@8Z3c\"ß\n=AH1\\Z^/kLuC\\c)0OMlpr7\rqWRac@wmk/8*?̐45\\mk>d1nUQ#w憟Lo&hĪPrnR,5z\"\$3dYH(p\rALAC)pTPl!\"L8R&\0Z0P8J `e0 1 DJsH)k [Cypjx,\rAm!<h1");}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");echo
lzw_decompress("':̢i11 4Q6a&:OAIe:NFD|!Cym2\"r<̱/C#:DbqSeJ˦Cܺ\n\nDZS\rZH\$RAܞS+XKvtdg:6EvXŞjmҩej2MB&ʮLC3Q0L-x\nDyNaPn:s͐(cL/(5{Qy4g-i4ڃf(bUko7&ä*ACb`.\r\nCh<\r)`إ`7CʒZX<Q1X@0dp9EQfF\r!(h)\np'#ČH(i*r&<#7K~# A:N6l,\rJP3!@2>CrhN](a0M326UE2'!<#3R<XCH7#n+a\$!2P0.wdr:YE!]<j@\\pl_\rZғTͩZs3\"~9jP)QYbݕDYc`zcѨ'#tBOh*2<ŒOfg-Z#8a^+r2b\\~0Wnp!#`Z612@ky9\rB3pޅ6<!pG9no6s#F3bA69Z#6%?s\"|)bJc\rNsih8ݟ:;HތuI5@1APaH^\$Hv@ÛL~b9'S?P-0C\nRm4ȓ:Ը24h(k\njI6\"EY#Wr\rG8@tXԓBS\nc0kC I\rʰ<u`A!)2C\0= P1ӢK!!pIs,6di1+k<^ \n20Fԉ_\$)f\0C8E^/3W!א)u*&\$2Y\n]EkDV\$JxTse!RY R`=Lޫ\nl_.!V!\r\nHk\$א`{1 |i<jRrPTG|w4b\r4d,E6<h[Nq@Oi>'ѩ\r;]#}0ASIJdA/Q⸵@t\rUG_G<<y-Iz\"PB\0q`vAa̡JRʮ)JB.TLyCpp\0(7cYYaM1em4crS)opC!ISb0m(dEH߳X/PyX85\$+֖gdyϝJ lEur,dCX}em]2̽(-zZ;I\\) ,\n>)\rVS\njx*w`ⴷSFid,ZJFM}Њ \\ZP`zZE]dɟOcmԁ] %\"w4\n\$zVSQD:6GwMS0B-s)Zcǁ2δA;nWz/AZhG~cc%[D&lFR77|I3g0Lac0RJ2%F S L^ trtʩ;.喚Ł>[aN^(!g@1Nz<bݖO,CuDtjI;)݀\nncȂW<s \0hNP9{ueut뵕3=gJWQ0w9p- '5\nOe)M)_kz\0V;jl\nxPf-`C.@&]#\0ڶpy͖ƛtd b} G1mru*_xD3qBsQus%\n5sut{syN4,J{4@\0P^=l`e~F١h3o\"qR<iUT[QUM6T. 0'pe\\5pCe ٕ\"*M D?h2zU@7C4aiE!f\$B<9o*\$lH\$ @P\rNYn<\$ Q=F&*@]\0 W'd z\$jP[\$0#&_`+B)wv% LcJRSi`Ů FW \nBP\n\r\0} 瑩0Z/`j\$: 8ieφxa GnsgOU%VU@Nϐd+(oJ@XzM'F٣WhVI^٢1>@\" QR!\\`[.0fbF;Fpp/t`(VbȲ(Hlԯ1vH1T3q1Ѫf\nT\$Nq+`ލvǜ\rVmr'ϸg%\"Lm((CLz\"hXm=\\H\n0U f&M\$g\$U`a\rP>`#gh`R4H'GK;\"MۨThBEn\"b>\r#\0N:#_ QQ1{ f:BR&)JBr+K.\$Pq-rS%TIT&Q{#2o(*P5`1H' <Tds,N ^\r%3\r&4B/\0kLH\$4d>/ඵH*3JА<Hhp'O/&2I.x3V.s5e3ێZ(9Eg;R;JQ@vgz@'dZ&,UFb*DH! \r;%x'G#͠w#֠2;#BvXa\nb{4KG%GuE`\\\rB\r\0-mW\rM\"#EcFbFnz@4J[\$%2V%&TVd4hemN-;Eľ%EEr<\"@FPL ߭4Ez`u7N4\0F:hKh/:\"MZ\r+P4\r?SO;B0\$FCEpM\"%H4D|LNFtEg5=J\r\"54KP\rbZ\r\"pEQ'DwKW0g'l\"hQFC,CcIHPhF]5& fTiSTUS[4[uNe\$oKO b\" 5\0D)E%\"]/ЌJ6Ud`a)V-0DӔbM)`%ELt+6C7jd:V4ơ3 -R\rGIT#<4-CgCP{V\$'gR@'S=%Fk:k9e]aOG9;-68W*x\"UYlB \nplZm\05Oq̨bW1s@K-pESpw\nGWoQqG}vpw}qq\\7RZ@tt;pG}w׀/%\"LE\0th)\rJ\\W@ |D#SƃVRz2v }(\0y<X\rxq<Isk1S-Q4Yq8#vd.ֹS;q!,'(<.J7H\".u#Q\rerXv[h\${-YJBgiM8'\nƘtDZ~/b8\$DbROO`O5S>[Dꔸ_3X)'Jd\rXUDUX8x-旅PN` \nZ@Ra48:\0xN\\0%f\\>\"@^\0ZxZ\0ZaBr#X\r{˕flFb\0[ވ\0[6 =\nWB\$'kG(\$ye9(8& hRܔoȼ LJY47_d9'z\r vGO8MOh'XS0\0\0 9s?IMY8 9HO,4 xsP*Gc8QɠwB|z @ 9cKQGbFjXoS\$dFHĂP@ѧ<嶴,}mr\"'k`cxeCC::X T^dÆqhsLvҮ0\r,4\r_vLjjMb[ lsZ@;f`2Yce'MerF\$!\n *0\rANLPjٓ;ƣVQ|(3[p8|^\rBf/DҞ B_N5M \$\naZЦ~UlerŧrZaZգs8RGZwN_ƱYϣm];ƚLcŰIQ3O|y*` 54;&v8#R8+`XbV6ƫi3FEoc82M\"GWb\rOCVdӭw\\ͯ*cSiQүR`d7} )ϴ,+bd۹FN3L\\eRn\$&\\r+d]O5kq,&\"DCU6jp\\'@o~5N=|&!BwHyyz7(Ǎb5(3փ_\0`zbУr8 Zv8L˓)SM<*7\$\rRbB%ƴDszR>[Q&Q'\rppz/<}L#ΕZ\"t\n.4gPpDnʹNFd\0`^\rnȂ׳#_ w(2<7-X\0s,^hC,!:\rK.ӢŢ\\+vZ\0Q9eʛ˞Ew?>\$}D#c0MV3%Y\rtj57{ŝLz=<8IMGL\$2{(pe?u,Rd*X4\0\"@}<.@ N\$XUjs/<>\"* #\$&CPI t? O\\_Q5YH@bch뱖O0T'8wj+Hv_#06w֎Xd+ܓ\\\n\0 \\>sA PFd8m'@\nH\0cOwSY`RDna\"~?m|@6+GxV\0WӰnw.b9ÍE|E\rЈr\"x-\rN6n\$Ҭ-BH^)y&ךWǧbvR N\0n T`8XA\r:{O@\" !\$KqojY֪Jh}d<1IxdTT4NeeC0䥿:DF5L*::HjZFRMրnS\n>PO[\$V8;#K\\'BRدR_8j*Ej\\~vvp@TX\0002dE HVD\"Q'EDJB~AAIl*'\nY.+9pg/\"180IAFCȨV*aPdУ5H\"A6sY;訞/0v}y\rץ1u\"ˋm_0焄`\\B1^\nk\r]lh}]HBW`0rFf)W,ҧ]sm9'OxԽ,9J8?4\"҅۽<-SM;v6y|Z%a#8TC!p\nCZ(wa?9|0<BL\r\n]PB0&+tHօDx^,L}[Bx}ru\0\0005S@\"Uؔ@\0\$ސ\"Ҡ]l/ IB4.6
d7\r@=߬*G jf`:HnbĀ71)C<@AY#eoY!IDM\nlt/)\\43)2ɸ)f[ ppp1#Ðp\0œl^{ATH6\n\0PH.\r|TFD0Sy'1KdBC&)Ws Hee+@4 rۚ*Lp1<fNY'- XKVaL\"\"lq.YJHm HV/lC&H)o&\\2%z\n^Q(6D Jq\00a#6\0vr,M&A9%YdBh!W\0b\r{@1I22A)Ha@r0G7Dd.LM<2,k/Me}Ғ3=\0&B\nPd.\"F3XSd(*J6 F:)11?lQ&h<J͋fdEպ*x\n\0.\"B -#ΗtIΫ I8 8dh x~ L!K(BX-hc/rPIN2||\"M'K,\\He5*o]4FP 2<)To\nIڢ!(_8Xr;uNJ[rDC:@ͳl\0e\\*x@Aȡ&(5,#1x !TD(QDJ|D D:\0Aй baE?rnWkxX=i,\$3[r9BƱd\0H4<(z?sIbJg U\n(}J\"AB19~I#\$%d e\"`t'O=@\$O\nmTo+Z-PF?_IJX ģ2-V;?20*P3_T<EJ\\(2)IQ鬩RL&!ȯKiцtKHRlȬEsDxǴi!faBFe>V-QjI7\"%Rh gM-b58R*9ꊰ92Q0IR[ZN\020\\[@Q\0JxEC{\$lp1=\0Rо>E~:0%R+)\0 ƑQ@(\"_jTX\0\r1\0P9#\0H;B|LZ6/B\nB{|H, *;(`2@6> ?P\0/\0|\\eB`jqU/\rc҆6(N\0/\$\n8j*U\$y*=;\$f8XBCEr\"/kځ%\\9kB0F('UƮm@kT\0EsEhye\n))b7(W%,Jr2DrhE\n0Q3 U9TPO8j|}R<0Zl T*\$U\r\". Ts~~(3a@+l`:`:OiBX?ʄ7Lj|:nK:ز}\0UMc`P%nn\n,4Q'%+H.\"#G3`\n1fg\0М'kqxD<\",a|{~C<SiB\nkNG}k:g)JDhÛf\"kV~mM`HOkD^0/tjl\r!f<GTv#@ek@2w0ܭtį1uyvː%8?1lxtmpfK3ZJ=\0@^pۑ]Ҳ't١@Cb\r[V-o-ݠe}Y --mI\0+VD[B+(-4>qi>=/0-cLpJ b\nd)#Gs\"QN`.ȍyȐEtPqI]J8rWTIfaG.떄7ylA7'1 S-xImL:eΉAWζEIWz3W)*/)Cx*c]%}_IvͲ'\$US4k5WʏJC7*b%<WC@ c{3)X&&eLI,N 2k#p5f4Ǻz#\\NbUoyS4`q~1=8厉*OOJC'Dd,@kL\\j2ͩ<@_q2\0ձ)`sF\0\nF<*x*`-\r|@7H@wH]\0_wh0!s1ϏǬhW.=WR*A_EDԷ?1,Ub9=t4èW^;@(1<DÊHxT()0z`_;AL)\nK[fHWo@bBKiMd+>vI(z:.݀9uiѤDYO`]I\0RĆ,K,6L\"\"1g(|T.,9vb+\rk]u&|bSd[,gaJ(Ck\rF+ 9L))UABUhgc3x-n9x2qibrY7kyf,)٪J:N8Rcly\n2W;.>v6Q#A0{έi7~@VX^11-+v|]Vf.{ \r;1lp/uFd\$PЮ0=@kS0hɈ@/*(OV.G>(r!6Y=XZ@:'&06kE|'|H;Ng%W+4;̓'x|f9(Odw%9]f}Gs¾XM0gQ8̄+O}͝0}9Nh/mgDs\n74勳P~}O)Ug9j8Pݸ(%j7oABi)Ku }s1=odV[Ĵ\nzlMзr:F#{*#xܰ<Dsk/mw :^1ύD2z*n%iÙ *!8-tH'\rк48`\"i]ZZ>Z\0ަ9+䟂~\$ޭLP\\쇁XAizh\$SMT'1D 5E\0Ğ\$ttԮ:\rMƷSӖlsAfKk,NlD^zzdS/rtN>o%i\0JBpoR/֘٫x\ny+,e4q5Q'JD]B@mRSki~t0[ 1z &^\nOVGV@T*H9ωG0\0'`Ѱ\rbQKsLd*;\n.ĔUNp,L@TRebFyn> IKrG @?cIݓu%GO1Ch5TyI:\\0X>ʊ0QBEI/-LBT!b6k`jp\0K>kd/ISk.+*R|gRW\\wt.)^Zc8Z~FSǵSm̕;b>\0jz=T'>qy}:u&WDQc-6<[exؠ[L\0wmltz<S&dbxoigK\r`µ?D5u@bNO𤷤Y[{Nr鉞t\0tMscBW?*D.p'2Ge\rp*#eC\"QI\nhiQ@\rl _.t*^s9Whq~,YθdQs¦\rBjDǡ<<T)C\n&D{\rl-R\r@rkϢ+ZPu8Ȩsوo#gu\$F&\n-v\"Pjnnt1VAwbx߄D5-0a\0\r/!I|/hnGf-Mdna^(ea¨YZ,SEN\\=4~Mʹ\rFtŦu\"|`ERzD`{@k/KY3sJ䃿5XGͪ%9)Q Q1th!TRHQ\rCE0#wG2//=^ /ԺΐE\0{+t+qбIt|vqԈƌ&\r\\Vߠ=EbnOrnX({ɹuzK`=:\n\0[%:pq+RldY\"[Vu{H-H_8jV5\"\0\"N?E;+O~wN];L'SOF䁻D-!#sN< ¯muG8Tn]:zIMn O8z5o\\57<Ų#8?sNL }x&4?[z<*We}{HZ,(<ooxWt2#A*o\\R}xH>NP|Qɚ|x'- 2\0?ƾ2*\r|]tp\"ڲJuuXybD\nZ|H7_WGuXyH>T\rGQln!u'*C5>U2!b 9Pw4}yW|a\$gTU&~9(\\*!b_w7\\]=\\*@#N7ͪ5QN`@<\06!9l\$wI\$42\$&.RZYuyᤳp&SI@EJiLcV1F1Z\r\rhkHH˿K?x-0\ndN3KC59)ľ:B#dN5A1ƉOd[3ڠh[s~)9DNy>X'ȽϐH,)ڂ\"e0;\0qeo>=|2G+B@z@]}rQ k/|G:ѯW\0a4>^|goXE9pLrgA6pe1*7[>]#?jB~/}3:U\$?<Ga\n>0#!i>.{A}'hQLw~W_Th#dûdFQ*{\"\"P{}4Ni\r_e?l42?\nF qUĽ_`_j{_k_o~c*#(/!DnF`?@sB!?;E\0k *ND;+d\nZZdB `B5P\n8c#oukˊMݯw.FJ!|Ĉ2FcY).XHy[~#/&[Y@(|\r\0,O0YbβŬ\$0aˑ A\$0,@Ӱ>>9\\ti<\0q\0}@`\0fVjdߠ'( !_n0+ciig8a]'=-B!(8_xj)\rH5HYn ,fr}-d\$H2n鴆ܛ=-dFE-daN_z4@[n\$x!!i0Tu8ɸ\0PZ8Zc+ЊAAF(`mg*vS, džKcA۬ &9c0w+n=)\$Q~Aa\0004\0u{(\$y !B A<aAz ZA4\$ZY9.aX\rdALv|oOz|Z(eZĆ");}elseif($_GET["file"]=="jush.js"){header("Content-Type: text/javascript; charset=utf-8");echo
lzw_decompress("v0F==FS _6MƳr:ECIo:CXc\rJ(:=Ea28x?'iSANNxsNBVl0S Ul(D|҄P>E㩶yHch-3Eb bpEp9.~\n?Kbiw|`d.x8EN!23\rYy6GFmY8o7\n\r0<d4E'\n#\r.C!^t(bqH.s2Nq٤9#{c3nӸ2r:<+9CȨ\n<\r`/b\\!H2SڙF#8ЈI78K*ں!鎑+:+&2|:9:NpA/# 0D\\'12a@+J.c,1@^.Bь`OK=`BP6>(eK%! ^!ϬBHSs8^93O1.Xj+M #+F:7S\$0V(FQ\r!I*X/̊67=۪X3݆؇^gf#Wg8ߋh7Ek\rŹG)tWe4V؝&7\0RN!01WyCP!i|gn.\r09Aݸ۶^8vl\"b|yHY290߅.:y6:ؿn\0Q7bk<\0湸-B{;W&/nw2AA0yu)kLƹtk\0;d=%m.ŏc5f*@4 cƸ܆|\"맳h\\fPNqsf~PpHp\n~>T_QOQ\$VSpn1ʚ}=LJeucaA|;ȓN-Z@Rͳ .2`RE^iP1&ވ(\$CY5axh@=Ʋ+>`ע\r!br2p(=!esX4GHhc MS.|YjHzBSV0j\nf\rDo%\\1MI`(:!-3=0SgWe5z(hdrӫKi@Y.\$@sѱEI&DfSR}rڽ?x\"@ngPI\\U<5X\"E0t8Y=`=>Q4Bk+p`(8/NqSKriO*[JRJY&u7#>Xû?APCDD\$Y<X[dd:a\$ΠW/ɂ!+eYIw=9i;q\r\n1x0]Q<zI9~W9RDKI6LCz\"0NWWzH4xgתx&FaӃ\\x=^ԓKHxٓ0EÝ҂ɚXk,R~ ̛NySz6\0D ؏hs|.=Ix}/uN'Rn'|so8rta\05P֠dẘ̕q5(XHp|K2`]FU~!= |,up\\CoTe╙C}*f#shp5mZxfn~v)DH4evVbyT̥,<y,̫֞2z^K2xo 2 Iah~cej6)]5͍dGEt'N=Vɜ@b^p:k1StTԙFF``{{47pcPطV9ىLt M{Cln47sPL!9{l a!pG%)<2*<9rV\\]Wtn\r<ė0vJ栱Ii1Ys{uHհ?ۖUoAߒr`SCcv˳Jc=-H/q'Ew|N{\r};>xru5B*\0Ma\0{HUCW廳yB'<6[sy@{Q>?/<K@ B|aH\" R @>~@BhEL\$[Sa \"Ђ0Fe`b\0@\n`=n.*̔OϘn<jOlM\"mR/*&T肙T _E48|R0*oBo>S%\$ N<|ξy7\n,鯢쐬Pt\"l&ToE05norv֣Bpp\nP.-,q3\r/pPb%mP2?P@0(/gpz0`gυϑ\\嬳q>p@\\u@\$NeQ0(A(mcL'`Bh\r-!b`k``N0 ЯnN`D\0@~`K] \r|ʾA#iYxf\r4 ,v\0ދQɠNXo q'tr\$np6%%lyMbʕ(S)L')ޯLMIs {& KH@dlwf0x6~3Xh0\"D+A\$`b\$%2VL Q\"%RFVNy+F\n %fz+1ZMɾR%@ڝ6\"bN5.\0Wd4'l|9.#`e憀أj6Τvvڥ\rh\rs7\"@\\DŰi8cq8Ğ \0ֶbL. \rdTb@E \\2`P( B'0/|3&R.Ss+-cAi4K}:\0O9,B@CCA'B@N=;7S<3DIMW7ED\rŨv@DȺ9 l~\rd5z^r!}IsB\0eTK!KUH/2i%<=^ g8r7s%NE@vsl5\rp\$@P\r\$=%4nX\\Xdz٬~Ox:m\"&g5Qn(ൕ5&rs N\r9.IY63g6]Qsvb/O |@y^ur\"UvI{V-MVuODh`5t\0T, (qRG.l6[S0@%C}T785mY)8Cr;ئ)M+4 4|Ϊ1ZJ`5X,L\07T\rxHdR*JЦ\r52-Cm1SRT`Ne@'Ʀ**`>\0|I!E,ag.cupÝ9`Baap`m6R~\0g-cmO1\reINQNqo\rnqR6nSntwæ\r]a-a*\\5Wpv^ OV`AF3#82pH'J'nM('M=j9kZbBn<@< \0fe:\0K(Nv-!1ލH(Qgµy< d\\c\\s,u˃q0~i~eѶ*~Ƞ~Mm}Wؘ\r @\"i\$Bcg5b?6!w+xl1`` s .vCnhEd Qid\"6`\"&fx(\"2Qz\$[0%0lw u>w%ر%wZ\"-u%Yg>x\\-פ-v\\x^'M PYP)8%C@DF \r@\0\\0N.S\$YICI i>xP͒:ͷ=T,'LٞqQ2͌\rdΔ@ђ9F`OfOw\\h=}SjGGWALRJ\$JP+7Lv,ә(̵ZPg&z+j˘7ͷ-vAwh ^9TODZCm`ORyӒ!GvzsG\$IhY58xFY9iݍ8UC[eZquA1?و9!:ړb0{\rQh`Md7{2 ۲8H`%Ƹ{-lCXkHӞ|\0}X`ShխXց\rOyX :w7n鲌#/:4(M;cDz;Z3]砛?.\robO^`Ϻ|/X]|^!%Xٽ8\$;zTxK-~ 8X)<!yx9: ىFxz+UAE;'%cYߪw<{9V:`ʇ<GءY\0ZUZq\nmx)_}YǏ_zy\rY,ۚ3L٪Yٸϻ>M M )P\0u8 S!Z{Y9θfV3oOϼE`CЭXU}lw0}͙7Y3ӬӔ4GJ&äͭ(-AV=f|@E/%\0r}ޮnn\0Ly<+_|#A\"C[yEWrWf(\0Л>)_U,U\\#e*r`NY *=a\\&^g4müe#^|ނQXNI>\0rƉ4^YV#)k>ΙԚFW^%ݒ\$+ՍPkY*u~,MW͂hhGK\\C7HmZSZ_U%\rb)gg q@@΅t\rJ۔7sUK_1tj&SBi\0 &\r`:jF~=T̪g侑!^h^ו/[{B(/|gj/d\\ޖSɗ9G`u1M?3}Q\$qIm~G=oVz\0_p!tr{^Z& uX1@G{Ь NI\$=0Bu82S\"6Qpjov\r<ɶU\0.EM\n8VoQ\\`?L6=\rl\"B2pu&\05\rj0VA;v\0eH;ʇTJ6pH?/\\H@!ppC+5\\+a8;\r(*TƢ;O|^Ld&/NIT|#G`j%ǗDZġ4nii4]@t#5cľ ZRyR`@ँ\$I{z胇4| ܀@=hCEH, ,ZiKàP|,gz*E)AjknK\nC\"J79}4f*465Q\\cM\r{*1jlFm4M*`XGDA-qqab19RHbg8+l/ń (ʀL\" 80(Dc#ihc`8A1\\uK(4!d38шƮ4j;#Øs85,ucncFNpPa8G8rKύki˕4A 8TҨ26 ;*iX2%MBJG &C*1T\n4 -#.%'z#8A+@S.0׀II`UQUdd\$)*]TC9M* \$b+ѽΑydt\0-L8\$e\$<Aɍ!d\$p@]d&M+2Ey߈((_|MdvU9!eD (W=#_'bN;'\0O<LiA РT\0QJ# }Ba(/uGB%-)hu~\0IUPr+1%51ɒL`ܞE'(/QÔ%T)9OrT],?<a /|\$O@ZIXN|%,SK:]ha%)kP\0,'0J: &V0jهJM*xP)jKR \\\ru\r(ÐWF: k\0NJP!Q2 'H *\0gT|~g`D,Ͼ\0# ;(\0 Lf5'`'&t(LgA\0'ksi&dmP\"Ng`O& X@ %shg_sbf5M>s3@T77+nSdӧ5'6s\0\\\0O:NLS@ P{;9ͶpF@78_l9\n)Rg9@a:i\0vSDg\0S\0sM\0B\0+Oq`>4 T97=Mv=q'y;'LfFf)ϖwPTf>\0O|?0)O~|`#N\0>'Ϫ}ՠ>~e \0?*P3\\@͌5\r'CP OE\nMB#кT;=jPރ49Ez#NƉ٢FY\\\0CAQJTV7 \nv0@_QLRRc!V|z6KKюeS4\$aI|PA+.qKD-S EvbCO>H<\r#LPܘs⥺P֭20 =*WL2dt \0!< bq\\pa@Rd ofKMp \0}z\02Ձ3\" )@\\*grM#!<OXT\"`\n];SCΠ5BcPӲ[\$4p&\"iNPӠ'J\rE&8zp@>BRݛi\\uD*vzSć\$*TZ\nd6i+JD1I:=P\"q@|pvjoT@SSڦ*'8\n#֠+`ɋSC!:Qj|gXђϰd磬%aX^OuGe'p\0{V\0gQWxXZo>B'= 'L)v\07
1LkTBRtG, RMZRWLU K Wngl,TP\0:`*YtSW\\`\nS__Kkh&[5\\\0U \0^\rrC\\;5E?W%:\n!PZBwWW\0{7\$+[1hB\063.kw,l0f:5c2XF*j2ÐeeeL&}7,2߯y]D\\G.g28\nj][]M dc}{T锘+xGs,\":vQ\\nH7ڟyu~ X=B*dQEsMu?ZFHN,D_R\0Mh/~y|CV^5R2%ZVs*lo{,[vB1\0Ƭ>/ZRa\nE A*a2\0a@z\\70arǩʐvfX°g8Z^6g1No9%St\\OHH\r\nW^&A/4{2<v&Xi_ҬfZVз\\t&0\0gb;JI,ˠ\n).R\nT-yDKx¡_/x:HW5^UQ5sUZIUwfFRS}Dnz۶F\"\0\\1\nvW++g2рSRKCbL%&=7\n 6\0r )\n>g1ބ8)Xo\$U;PVzJ}H;r+ѝdx\r-%BA&\\;'om|za<np =^=|8'@`6teD)}q_d9\n A#}_0m`{\rrc>篁~d߰L?b%/}\r>;\0\\`ցP\"-!n!7ϯ71̼@MB*Ajn\"`jJҳ1E1m6/G_b s_z'~]L:\\cFa-8()G̩af,FpE?X)2\")pi41^pX5Px܋w ~@5w DZ&Jzjld `P\"/d{8XQd)8 qx3ņb{,1qM>D\\X3ggŤnIb6xx3bdnU^!&|k 9=YvLq\":D+wy#t.X|Dxn<qI|Hbĕr-n,Є:a^.ȞF[_̭/Oz8\0;lHWmO(W'@\$ȰǒCt >`tQBlm̉8JOm%`^Kp1Q2K\0=y)24P7#ȳċ-TQ>.%\rܥҨk6@f@y^;HK>h)\"R2E(̠-H0e.p\$-7%)vo\$/+.ce;^ʁdWyv@q47Fy;lY\nxJl=x&-]*d}WA@.OM;<ک\09HlD+\0\0&UR9œ&&`cCDla}ܩ=h(D@ЄGhPWf@oB'@&H\0;;EN-zhoC94mM}l z&4v\r{Ez4`?\rh{Fn@ӥB'қdf\0EB#xZav9=7`ٗ\0\rW>j\rIf!+S<e6ifTԦ?|jHYZ5S96KNG}+xBEn)Dh舋n[1gʙ_}vUIX\0:kSA@R+V?bBjB7AXp6j#GyX\0RXf6C@rPֹud&&@za&%|hYG/y(Ŭ@|,d5۟0leV@=}^[+ىWlRPN,ٶ\nKQ\0\\00C|i,0ͳ]|Og٩q'{тUD`eLIP!WtI_CbDŽKiixQ;jz)8 2b\0FO/%cvL!S^\0[T!ۚҍ֚=h`F\0D@y2E\0ڌA ՚IDFnfMtfiQbJ`O\nzWV&((PYGH嵮T ܡGXpI-\$懃@=,L\\o/THw!XMzH:wK-;<|{o\0uXd?\\fF{ˆIyܲI/qݯ3(S@\n̍w ) mjTij3X~!\$@G(8o)S!o`{~It<>8r7\nmÖ|<?E7\09WVk8%Qas}761IM]/0N#oN4a-#xnN^bmҶuEPkT\\/Ȍzw^Br_-xE3N\0+)xS{d,%쭲B%ìi_pWH,OzLoQQ7q<FPz/i/3vtpDlpsrikW p:pf}\r8gA+:\0lȮtS]垩ν\$/dtP-U،uD>ܶWTe\n'p:e.?2GrS?<v9{2RRӯX8%!lZt,MSfKw8_>jsl\\77g.݁:^ePpLK#@`\\GL5١%B@'zQmm\$3!\rV\n \$YT02w% ,S]s:udc\r3Tၻ7e(ؿvOr/he.&0ns#Y>#)c_Rшqx\nZRjp5rnQ?=i\0x*-{.6F?#1G|\0.x#*nc>`8k%`SSA\r07\nmڜ[F;F\$\0Tk__nv>82@hW쩜,mb*v\"0yvp [<#/!+{7v0O_7귻@\r5~\\F̰Ny`z} o/лUѻ8{#Zϣu턖xk7'{dey\\Gļ 1 d\$@9\$Mw6W_d@\\=)wgsP==s^tzgh}Cnjz'{Ywi_}4\r3٫\"g9؞!r:y %pCe3\nwd`pXR`]LejDjUtמw>_+X=^B\rKbߞSd46IP,^9áu,}0x\\D!:k뗅>`1`:P_\\To\$F&Ti0Ⱥ_nJ/[ ~{۷pC>n\0f@y[?DG\04Z\0ۍ=ށ,!SI\"ѲF]_%k߹_\r;1v?tT\"^8me^S7!@F xfБ^#'oqĚwՏE.OY(oqN؇yĤp[nw3:봌;Lہ\0;*P6)*ȎUд=\$\rV%\nRRA}\"fP=14=&:>\$^RMp\$IL\01𥀔}a Hz @1V=&L A @̔T<\r^jx.%p.\0Q9\n(. @`(J\0ʦ>\n!@2D֒\$iE\0f@v\n*`dWs\\|>H*@QjP;|<|!I0#@=)kX0W1ݐZ@U,D@ (P_@tp)A/c0-Amk P2BQ5T1A%{=\$PI=K(TV*@sAҢ7@Y̕\$\0`.9A\$Rp{PV<(O#\$ po*dPNA<` AG@TD\$IQBLNC=\0[<'A i%У\$BW6%S \nЙL&@}pA \\`#tǭ ,p&'z[C `5B\$`AtBS07ALx \$ bBA /BU,,0\0ޖt2@l\rRBi/L.r._X(\rC\n/B\nA!02C5<,ЇB.ж<x-t]PWoN ֲ@JF@.<\nC`れl\\\" !D;`3^\n@' C`((&\$\rL:ðAjC<<vQ0\0CXH\0002^;] ~ܰcD1(5(49FQ ME1@;?D\$kAD#DsDGDIfDJ#ıTKQ .CHĭ<Gq\0=!jCaq 5 LM=ˍ@O;\r@E\"iqgO49T+D5?02AMDF7đE7\\FRdRQ6DN1ZVrA+vE\r\\MDLV1YkOckYqXE|X@C2ciDlLQ^śY'QoEY,\\1fE\nh]Qd]WYEF)#hp<|*d2x7;G^\"\$h%Jv\0X/+w3Gb3qFq5D9Y\0.@69\nt+SE*4\0DqSx8\r|g@!_1\$4w~1nr\0*\0#E0? '\0d (HxF\$\0H`(xGDtH!\nɁ FJJ|6>?)PBQFq\$`\0>/jT\rZ\\s: (+ En!Fq^֬s1n2dD1x\0a/~F|xH>4Z\\6П_5z8yP?4 7\0\$y0Z>\0|Gΐs,^DS|s )X5q1(LG#['HLi[H&H ܁1 S[&yK #GfK![i\0#5i+\$N(-Jf&9.E\$TB3!p\$0r:e,[01Ϻ|E!\$,,K@; 0l\\~\0L1Qو\0%x@3 2G`L[ܯBb2dL\0In+r;\n:7H\ri\$lOI4Xd\r)D1r5)QWJ#H0Հ<%hrEQH\$s# ؙiWfgHa8!q̾D ^HTق9%̏\0H!Ѝ*JGi\"ߌ,M\$M Y\"IIX;ɟ)(@sP\0/a'PO\0!`2Ʊ,Orˀ-Ĝ::LD~-C_FR]HF x9TrHb*p[(2B\rT;-(GҎ,:|\0fjD<fp@)(Ói2(O[L2\0'H1Pg ĕP\nԕ\0ʵ%k]\0(b H(aHH# I@)ҙ\0)+CJ\rloN\0̩ ng,0n+H\"I7\$It\r <a0H@+)d!aTrDrՀ,p\rD`MGXN=5 ZƯ><P/^g`*+ui%m%Ӧe'L ԚҞ\nK.Q),˫.!]K.ԧgK\"4\"݈(\$y-ø )Wr{/MK/c/£R,E QA\0\0HQBL\"Ҥ2/\$%/3/02<L,s\r@ -y`;2\$N|Y.Æo0Ĝc%k˹+@fܲ^s/ŌBi%M\02\"W+A!\$)%L29/0ˠt,33?'̪y̸CfFħ\0T 6pȋ32'Q#H\nUL/۷\\X jCM\$wT\0)4U\nLkO{\"D!\n\0ۂh>!?G5[%t_(kQL>ȫIə\$,fiǸdڲǹ#sl\n\0IJK\rm%09ͳ*!E9ĭr*i̎2Sw\$|\0Jaj[+)ρdKT#F8(ad/I.,MtH1P!H)RN<coJԨ8j~ɡ,{Z@\n?8qi9ĎJ\$I8S\0)GC9b\0鲦Y%iv\r)00& TLG|\0-q2+do8KL-DD%<t^s\nk;ĭ&o\"^8:̊P\" ;s[3N5,95,cr_̀Yc-<1\0Fde-,⨨Z-eH-̇=_-̉_-r#<M-B͉>@\rΤd:5̚.@9ϭ\rE,`(81^ˊ P2\"+q-N&D&!9\n+4HT\r|4I#YZ;w.ĚMbKs;@(.Ja\n\0ILsb\$ɆN\nso _385-t/-pC;A)?S+\$14賑D\r]\0002\\\0L)\$2\\2M2(@G2ăw>dM1P8ms!W(kQQEHT\0\ny`pa'GB'sHHT|u-LCBK\$DvŸ3˰A=W.l;!,BP/bjL/?5T[Qpd[DMQt?^EQQ[D?T_QL)-:QEU!CF\\nJL̕ѐilQl\rG\$rETyFT{Q4gQCG(9xQF=G\\}QH`7mĬ-!\$ 8%TR,R\$lԍmCXdF%\$T̂ɋ g2VT!d4(kT=+4Z %~ɔT+R;80\rL^QZXQ68}I9\"dewK8;tF]-JOJaZ\$`~V\n-0AKap%X\0&)8Z;0A?I#\0GM3 FH\rM'HQH\rxV^3MM̃Do0\$0yR;0I?!(DRͰ( GO3\0\r+`RL`QITrQ\0#k@ O(aC` mjA\0>\0F%)]H\rƶ] B\r3f4&\rRTj\"R]/d?\n`Ïğx\n@ r?C@(\nT4\n@&\0@@ r\nx\nd?\n\0PzUO\0\\ (\n'`DHdbaRD)ap1ZF'\0\rO[KRPE@PTU@TT}Ag!@ C_vsjiF?X\"?*0&g!%Pm>O?.=,,Te b\0^(9qO}uJʪKԟSJJP/Ԩ JETTeKT7l\0Y'MTPU)\nZMԖB\0x WлAWkÕeP]U0-*W6ը3\\;F=VYN4=hVZ%V[`6U,A!M3)0^`9F(|WxYUWi<Wڜ5NH^aXaH\0?ebcZXCX3dUV+\rdT-gXyV\\dIVDizYXSHVdAWhgbڀ79+\0EZx}jc@VXiխ\0[XPZjZ5Z:3<VemX[O4Vh<UL[hM\0O&Hmu,j/cr+(\ru\\\raf6VZV@7\0[X,4\"?USZՃLV`\roUH\nM<r`G@/\r]K WlP%C75E&-\r<`+s[jW\0^krZ]%^<W^{.5f1W:WZ&9^wq:W^Ruׁ]75Wy_PY`Z5`0[Uo_Vilq`=V~@?+_*6X2BߌC=G@,V5^XX`ŅE\rBx!2Y/^=y6_64`my6Dhgiz)5C\nJ[bv\"ؤ֝_v.ح\\[C\nN!%50e}AM (gb2d &9a(\"QFc6\$X0e\njVVAI sCVE`>|kG5trdVLZvNY\"Ere3\r #XUTZ]e\$^\rsW}y?a`❖VąJrX^]ׅf%ewcxCRSX+fwVi5bU@2Xx6;Y]hvpي,Tfɝ]vlGj~ g\r^^]!jXf}~qY2\$\0 uٱg͛Km}|Yhyv\0(}\0007I+o,\00fU6, U6[h=Aj@=cqsc쮅5h\n5d`X5Bs5`kaTVQxiP֗aBڣhօ\$6m|Y&}j?J~ֿ73QZhX5eh\r>7-ymWаzѴ]0iYOgeW\0IDU4EZc(uk\0VųwD9W.k>\r.\0֢}`<dGZlu,m]Z Wm6EAd2.Zmŵ,Am[# 1d=Vsnt6=!3[nSVeUmeN^ֈkuvZn6ۍo`םóa-rL[couZ[ov\r@[x>q6 \n( МUgw+peYymݿ n\\U]\\\\ut%c5}fdUz9-p\r?g}J֏B\rN`܉r5%bVom3v)սd%r͵w*axZqV7)Ur\\eƢƴ^vj/a>Gsu_W8\\[h>\\qf[mb=w'X[!W1FV[9Wm]5r`rwmc/u=ϕs:]Gre4YViBAo҇7Z2AsK>>)\ni#&{Q`@%)rN >cV\"q\n]vڅn\ne@\$ޛhB\0集v% >鸧@ ]=3\0*R-JT?\n@#> (]r]vEew0hxx`)Qh)G+1vMJ ƀ;\\?0@\"ݴ+*>\0g(>-E@!vwv(u@^mx'vm]v ^?\"qWm^v`,7ސX&rJp^zޥx !3{Wޝvۗeݾ-W\0t-\$v\n DI^wPiWv\0(&\n@,x]^|wؕ7\0W׃^W}5w&(|`&]y]ׯ?AxUC{uw^/}E7xw\nE{yEWyu\0?]']{7e|j_?}\rwS֞Wn}7y\0_&-Q}k7c^1yIyW`{tmTSQXoF*_)Qg^p\\\0G8ڀ&?m_ꀘ `~?\nm'|ױ=bUH71.'U`\r!{'x&1=ETai̫\r!\0|]8FTU`|oޕy\0T?G]vס]\\&>뀥v8F!]DWGcP iOUD^|]Cj^(ݙ}zp^7\nx\$a?cDi\$?&\"މxmlE Wa}~a5Р?HCC?@@(aXjaޯv 8}{*8\n.\r)8mcbfaՈʀ}\$\n5r\0\02jɬ&z#=Cܭ@? *;_f*+Zn\0\$qQP5\"ݐ@0\\x@Mر.8b|{av\nb%/a~8i>/>8bՇn#WܦP⧅8=|zkjT*m e0uJx&]E)K\\_A~wc?*8ӏ(wTq63~6_`]xq`-I&6وczu帕cw&-݆ݤ?V3*@\nbɊ6v\0<Sx\0V\nc )ox6>j\rch\nx?z9\0.`#= bE}>+@rxw0e0a& C]يx_|,|\nbLEU>&o2b֝N)X \04|&kWbzX\nfvdIw^&ĝna\0!D&y2wX ҠEDu7у+\n.x-CP0]:s-|\"!`tX@'n?.R`&?grߏ}CcK\n ^SM뀯w\\Ï\"k`y8 /? 7Ia\n\"` *cBXc^Y@&{wx Ǿ?>_·ev[\\dƚ>S4\$]e^!eX&S_@(dF]堭:*}zikX_za2\0rCf#vᙘ91we1on5d4_f(^eYFcA0X5`Ҟ.Un`j<D%N⧥6#]Y \$Gbmbb}fCᅓ0UTx#`kzԧm);^m*_N ᳇( f-n#co\n)pǛg +U\0EpNq&5 T\ni {av.rJߓ,?FuXXzp(Rɖ?(y\"SygH\r?T#Sgs \0i)*\0qo\0Vz\"AjXe>(b?bw0 \0/w (br\$՜q)rc\r~A~ay5W(b\nɟf2hsϦzh`Ly禹0'/G`\"'Z*=]}9jY<5E@+L}?\05\0&Hyfoؠ6jI\0{Xg%~9xg\$hSz!P呀.X^zps'S~Nhz3GVD &'ڢ~t[㊮zc?-{b?&V&ɞH4OXS\$͌\\\n ɕ ~ IPYhqVixEP1\"N7hvVhdExj^֗;ϥC@)dZ-/`[auhz|^ 饃Py++eFf'F.&zRU;+Z#PYݺ5W|.UhUw1*Q*paCH)'pj@>eɚ#twg#jWՄ >6@\"@<ʝf`d9[!\0C\r@VO.(b\rl/! ;@ڃ-4ILBTT:o\"aj\r}&bT!RٚNRLG`3jdYj^hzr[J\0IS>z\0۫]\0j?&ψ `.li{C:R%\0003j W泺ʜk3@]3*ѥ<{VcMA[\0y@<?yC㚠\n`++O|bXc^ ~Ny) #F&zXC& k^QYJcI^N뵍N4`*}k}:kz%wk@H Ri]w+,C@Ø>HJ0>\0PUT v\0?\njFI.Hж{4ɨ]\"U#)!U)!d\0\"LTJ@\$K,Ӵ%Q5rMӺP#%R 01]+84F@`dؙ<S)C91lDr#\n+ 4kK8K!{\"*>\0번5{%\$kAƼA9TǾTr\0O\0asmhȕ/fO`m tCz><tD&\rشM@Rur(m )R.bQjZa)Ll/۫%WF;8m/}vGaB|~m+'vm-s'6P1Y\0IB˱l.8o[zR11r\$R@\$S̱\0N!FaXfRVh6s\\P;[G(Jc1j>!Ѷ\rnwV͓:\rLom黤\n˸:=b}V[ _`J{#!?3'ߡ{:`hrZ77vr8紽ATxnJth\nhaV{QW4́F,DC:i[h`Æݼee3σL;IHEl dP/M\$X3|!Us6aC# 6ҡs{\"ZVc!kr_U0Vm%<ez4 d%C?F[+<!,ur[baxg%!#oZX8!F\$M:2mlOX;O#`mwSS>lrNk0@3N3I>nFD`_Z&|C`ImgV6eu>վkjj=AGOsdpE,',t[Q@ _x%[ICc3\n36t!, mDXr53J}P\"[4CNL+q <\$ZX;@I܁.\0<ZVr#\r[ 4\n`F\0ɬql\\ k#|Z%K0K.\nIZ̠@܄L-Pd^1SDH.iZì}Z\rͦmھ\r:k,s\0GW\0001\0ȼuݬ_\\xqmZG6\r?'b2r?5G@o\"\\r\"o yqIG!_ǯ#k\0['StEγOK7%2c?n<4'\\urfA\\'H\nWL=/NuNmUwvNEy[GP&2^G?M*fM8)scYuvk[E:\0ǿH9xd`0,hCB){J|2[Җ,Ks {A1uar>+Vaz#͈Wʭ74`)5+00\$,sE8;\"ta W[͛p\nFd[`G0& s2\\ſ\\s \\͒t/5vaN\"V g`+bMpG<1(<Dsʟ=sϴ),vN\0@\\=ٹxav<O@u:oϗA f6s[>}J\\5\r9&G͜Ҋ=G˘W5y;\\Ū˧H<Ӿ7\0SGs-͟H&H!yj{\"B;lk5a8TWZL.5t`LWM\"tMIGMf7tŢu9c'\nW*6&گa\0/!˓\\> YCᆚ?O.l@O=*@Wj@`Ċ|\rp9bN4W9@MPQ|@QO>]RK+Wg[\\|sbHt\\Kr;yt`/^]N]t&gW\$f_qOP9W\\`]CA?FCApj v%BbӾ# q4Y5P4Cк1ToqtAG\\&/k2}<LA65\"Wg,#g Z]1¤IńGS\nHk\\]g=(=C/ւR]9کm24r\\ւ?kwtgPu2uH݉ ͓=?X2gkQl5֙ew8l_ܧnMrvw94Ows>a%D]IEe}lt({]__OcvHC9)muM}=\0@07B _S\\2BݽU e]nBM-v\rv\0pMɕ̤u!@wH&Ӳt֖nu\"_@)NڿoNWs\nQNlw\"|AjF/-w4q}eox\"9=z3_PK:fNhQs_XSjS5%vAFB;RpGG\00063@61{%+LS?+fIu7tat\r70iWi?3@nR@mflg!AF&v-^\$Yaj(_o?ەrKdC3wI̤5\0q۰;wj[a596#Lkvo]d~a\\'Vu4@`{G-_jeI:Qze{y,i:vz}`I%7']]y_gI;R vϡބx\rc@sk&+On%赵rr#t'϶4WVU=066]觥}kS9wzb9>Y\n zbMUzeY2\\;?x4MӅz?>.鏨>q\"U`Ӊܘ7;2*taa no%?QVzܧKΫ러>5Aq'*>>FơFKс\"m/?<k)ޞtZ|~ɬf~M%=\rt3<g\\yl|lQ`XY\\[m'x\$©\\sCㄺ8Dt\\\$ͯpwg^%aW/w>b7;`[^J }s{]o>G\\={\$v'A\\g{O`[KsWk5*ϯ{.\0je\0000\\mzp gAEٟ@VNSϿO,hD*Sz=w+v+|AP6*vgBfŰJWQg²{(Obu1J\$!^!gCT\\ Ԁʱ6x{Q<:~G?{7\rKuM X\\])w}+)}SI[;J稒?HԿ_IGBvGtM3|C\0pgOR-H @q;^OIPʉ\rfw3ﶟ{!Cℏ茜HuڐT8{VvOHb1Gk\nC8Kf'ߪp+R>XtL2mU!?K6O2~1ۣ))g2a%O\\wZeȿZei_u?ׂ\nW6}YYڲP_~=7\"+Fg\\'b&hZIϜ֯\nD_~ey;\0BEOU0\$Sz&*oUFMSrRt2r/2e,TMe1aeET&.P%&W%ɡuFSzRT.̚P6Q~g`PX\$9D%V\$jMTEYCYիBPWc W%'IU=?CG2f]63][jUy\0Zÿssl2M²XXt\0e9VDYfpF[\0=_ѓA@\\\0 'VF*([@\"Z]]Rcu|g-SELe &<h\nP\0ft0\"JQ?DWTSO@qkG2)?0)g\0`5*\0T_\0(L*G\npz;Jgh&Z\\,ʖB,4My3,M\\J\n\0Oio\0@0|\nUvyo%^Q)~~ ި҈C\ngEvYtdrjuF516ɵdEO@dE6`ch\n2,Wsky9`Ab2``iS\"8;`U\n`*̩\0E\0URp)b=ҧ ( Aa~!Z ,8 0hAT`ih(\"ظA#^:ʸ( ,]`aU%`U?&\0V͚FhlX_\05;l%^XerٓBcz1\0W6X)YASӥh KAtv0C`Abj0VoeLí%OGٯANEh.⠒4a,PV^/f*`dňH&cXs8x}<Y@aNZؔ1bā7Pi`*zY|X,j\\\0+)X-F؈1?374Hzb@q4QP`)bPt სM+4f1,^<Z 14c^FXSu\0A3--ih];Fd6@f-S'EE\rɱahђ\\e߲+0MV \rDɿev88,#ު#_3!6/kd\"8Cmp^=7M{b֕+RF0f48FPVa}Zjqf11V0j4gg6@z-EAT?0#AU m^L;%L<\nG\nRPGF%Sumd嵪=v,A9W CtGHst@~[5),F8csؼ\"m>Lj9qm#lrm#[|Ŷ6ˉMllf(7#ͣ6IpѵĭM;xH0v=ύl#}yAF+6a:\nU ɉ:Zl|\$iHlMK6~L72VKۇ0̤CղtPDQvq\"c5o&ᇆmJ1Ϋ83L\rG)11FHd0GOܤk+bCSП\r@;xg\n{TT%]ؠpJԖ(.)fwT\r 8Ggܛ7a2\\RCbD6O\\盲mrvp{60Ɠ9^-Bt7z+%;lHqCɭ8WF7=-54r3).G:܅9b9#A(%vhh4 \0gK5cgע=HoEmڣo 6t<!\0s\0vP86Xn[C\rэ(RYʴPmݠMRnZ?F[aj*}@-R\r~=?P\\)PD\\UtBEy1 ŕKhȅ&>¼B؆\")^TdlCjD/N;\nD+竆\n\"(!HYt1Dc\"+:`3EH\")O2#EKO΅ߙM|k7ni\nC~ec:oNTFD@:\$>D<Heq#PD@?8ce&Z15 bpi9\"PD97x*6\\@k88WJ\0j=t&TACa%ˑ/Έ\0\r\n@pmn{<9ꅩ &k&I)g0]L4R\"hgsxAț7ҢD*?'I\"ZRZ~&I7SyD,_'sJ֦-~2lNI/d@tKpBdDn]\"\0d%X53\r<QG1BUoAPآwɅqcȨ\"7.s:(R;J@yT`kʢ8#ȧ<\\]^\"Jxp.wtLH]_kMJ*`ȫ/eމ8\n-``=)UH KSyT\nM*CR0+Tz<QZKv+єZ6(wkd+4 cѿ0Sᘲl#jT')-YͽYXߗ>tn:᧪+_#15B,XȯbCG'X:ATqG`\nsnIl->]VnetpAk&Aa+ڧJL%l_!ڥV(=TMبn:NĘkIA\0bbؗoԪ:lF/ʽTCwx7ut\r^s-[A.mj=XTR\n0Y \"OAbLdABx?#SO!tSȅ4 `F_K~nx\0:yN\r%RgÉ&DyƱwGaeCD/Fah*\0rGe}f mAtIgR/FvZ\\PLH@~c:W-7ÿmK&8-,h f-?{I8r')rM2Jp\r`_zj8ԪTF{\r \$VA\n=?[\rJHmGL湝5~\r2sd2u7)s7s%-\"Ғ;h PNB\$1&bz|BxI+tLZs:z+{{n^\0h%ۯW~\nz@\"w7p\"g;3^sz-0,Y|oA3H.{#xF^mtN#ȗiݞʶYsn'{w=ƂŲ,mSH;(@=Wi=<{'ӑ\"x`|(1΄<0acȩ#uū[q{Pqxi;3H\r?\0[t>Qf^Mq텕pn6/kF.\\%zt\$6݇QU1lR^lju;*dpF 4B8 ^z}\n5({ǩ,2g\nګG}3Ӱ=\n4@R6>Ǭu̡V=(`zx8*Q)Oj# M%k:ZAD|1b+\\Uu\0\0q\rh(tV?C\\^I@e:0!k3.є[LJ8nS`Fm3FHac:{;n6\"!c)A*<|;\0a}Kx]Ō15(܃Oj Df!ЏvB%(>,\$B\0##] HTd&\nXM@2t\\E!^8ħѶ7#aS 07EXB.\0MHF/ZO`;ʝT?AGtv(r6ǚu8(Oj>5 r<ӂH@Qy\"FgyIO6nEa3\\k\\Zi#x<XwbC9p3#ʻ7'|b!wZҪ7Ik&/JU*gUb2ISZ`\0 .*i0C{,K?H4tIUC#EZ2^edk T#iUJ{7I!jCS'V<v?~⫡ڤŀGi0x%؇K`_hrgD!nH\$EW>IpP?ː@ LWBEUI5buZ(URO+%VO\$\"Haej¤4`a`s\0PW\$bP6I*S\\+&5tr0)#FA&[*mWy\$ےKaXQc&\"\$Y-d?CVBIdBRa䌈v}&Ki`_?gG#=DgWA*\0}I0'<ɉ6sbAql'R\0'11,z5UO.jVBa ԂOĚ;fJ`a`3hy&C씀5\0'\0ή_:}RoA^'Q~\\i<,hױ]RӔd@K4Fh:\n/Mx4Wׂ|};K싙Yg%2@)3fbP2FeEٿgIvK5Raμ3|h TQ&?1Jg=0gU#?|*xQ3mpfb4M>ւpWI4*CA0(,,/\$˔PFeX4b4M|l??cFsGm%WR*Kf'\$ׇiɉ\\ (W/ j !F\n+L1A(͡ц5vf`8z9Ä́YHyiӤJ\" Q!YTDr0@?tBvm= hST@36m,\r@l+8L##W\n8 [XxRAHl`JېV DR2+,:n!ףk'ۓPE9r%4EuL 47e\\Hu59{؉ֈtG{ٰ(IYHa98we:TZ3zStKr_-STWb{A;CI7711Dr >59cDwfFLHӃ <\$N8Ib l~V&YLcpHS3)@2A).R㊾yHgګ&\$\\[[N66>H!KNP3\r䟥>7Ad:&Z%7k(װM˚[trp.IQY(_&5#d))mH,r?dlH(r]X`!@B\$\\|Ke\0\0IhLkxh&91\0p\0Ur@8\0j\09{\07!\0fĽ \r@\0006\05/_@30IR /`}`K6\0 \0q/|\r\00000J^ L 0_\0i%\0g/_SaS\nT9&4\0I~\0,/&!L5\0b)\rL\0i~%p_1Fc4ifKޘ\0b)f\0000\0b\0c2&*0ً3\00050aP 2fL&\$1hI\00050~`4Y{\rQKo/c9S&F0_@`\r <\0c\0a\$ǓS-L|0e _Kޘ0~`)3fV}\0b\0cS&Kr2f_©|2Lu1`dٓ0L</_l~@Lcɐ`\rfhb\0jaYo\00043_ę3\r@4=0jbL5fJ\000436^@g&90ZaɹX5/h(is%@LŘ/g\\is\rf\$M(4Nd\\I\r&pQ\0`I\"fKޘU0hĿD\0004q0\"bҹ}s &\0002\0i/za)%&\nL3^jtaS&̙5*cT顓\r@4\0fɐSV5>\0jT :jL\0g4jfY&L?5a, 3!9L3faѠ3?K0_DTf2kܿI3A%K09| fLy0:j9:&L\0c3llig8M 5cy.̝2fgYS\"f{\03ht@7y͢0njT)rLLl(k \0\$q5f)%ͼ5X\\isS&M46b飳rf͆A1\"iй[f0L<IsX&0/kɉ~L͋10c82J`DYAJ\01iԿ3+fM%1n\\SfM+4j|iL5jbdISfnS50<YQ%W6i3vL8Jh)sGHN\00BiP'L(16mUbͅLq0j9@f5MQ2BdYstLHq5l< PKg0nri@&Zks\\ƔEJ3rƩRFr5pƩS\0%fw3cl9ӄ&kL=1a)t=NM3`ѩgΓ9\ndyA{0pLY(NQM7p9l\0ʛ2\"k3:&N:o4zv9374Mq%:Nhtۃ_\ń2JsI&M5\nl,9'BM;8Nw|y3&L2fs\\9-fk0a emW/nt3fN3l\\)s'/6/ryS .ο-7otg'8;5X)S5Β0eDӉsvg\n0Z`9gM 0j4)s*=N\rs2vwѓN%=;nj9527ud٭L=\"o9s&D=/cy:33fdݹӼO\n7{TiSIM#6`YƳ+O#9ȩ f&M\0kY{<MM%5jx,8ӁAd<dHO<z| 'M9mY3e&?O}3gS&3/o\$>dIke;+>ReqS \$N<FpY2OX`x,']\026kϋ>:p3fNƚ7irM2bf 3HhL/t|l̚:h\$Y=N\nC=>q&0La V!]3kSR(^2.n:sx@M1@>ltYsf̀6ɨ\"%L3vaULHG4pt &zMI@xYsrϩ1Bn4ɕg}Mٙ4.}٦QK=6z\$I3fGGkəfxMt0ցY[&\rϸ!0>mf-M\"2hS&Ι+9N{m92&OJ>鲓'RObE<jfNg<h4С7=s3J̒2ɱ9L'?rǩv@vg|+9sAfzl &Lj::Zөh\n@F ^Tk]ՑEPKٜeN#\n]@Y30cnM٢`h2)hf9=FI^XP?iĢ8N\rKxY3a(IQ3naQ7,B)+N&bBQ ȸ\r^ɞN#ORj-\n( jɚ\nwVQaDi8,'< +A3K貇_`KA%l(LN;'((v^R%F+Ū\0@#(w`)~Ul(K9ȁday_ukq2لI*M10FI_ ҧx0c}3_FĭL\r+Hѱ\0 BJpmMTTr!\0G&E[֠m!0Rq,PNH/DQ^x6EY\nԚ%V&Xp5ϔ#vBڙ\$\\\0P&C] #2G4\n9K;j,:@|YS`O|Pk@إ28\\4|^Q#e&\$20״>ʉ3.wx3\0P-JJHiv 65lZ4)C0&Y.!IBe9KFE(Q'IM-YQqѱ0}D\0\nFeY]cK3%i/Rq`F+\n129uNxL x?dݩ8d'&F=iCdQXhb\\dMd?t<p.L;jɖ5#dm/f6H5E(D)Fʐ0cAd(ΩF,VR,:7\n%5\nw\0ʚϝ}(lVVEDcgWƨqTpՏs(+Phѕ@̾K (j@tQfIN5!@^пfviwAV^E鴀h cК!> p^?ZbkiuANHmF@D_hÞ8fwi2Lx9ŗQY^Ʋ%\"B\0VMvVŘ!c` U3 ɪ`M2@SXbM9˺XZ/,\n4ZO{)+RaCH2tŚgHSƾ KkHb̫Re5ZOlhWƦ,}ul`xNM00^ilZLZsi4;aNO)S`N)}8fԲ?ӞK\n3x0Y 2kN1f+SsΘpԤ`1gLY76œfa8Do'Kɯ*{lUOE;z-i+J\n#}t)AhzOJc(4iScov1Z~Fv%c鐇\0%@f0S*)T75kL\re3s鞲tHb,eoj)fU=x6iOd^Ҡ}CJkL-bMfS\"k_5֚DF4)ODF[S_֛):nYOG!gӄOq,LűUU92ӔO^ӟN=ARuiS(R]BT)Tg)CHX)dP(]9@ieOU<:(j+AQ*UEz{SRM=,\\)B/D̹lԸ`YOt!ztThS3Ov!gZ4S.~M)Tτ9D\"L(C\0(/G^b@jcUi1AHMf+mTÞE24iA9LȮ\r3J=TF%&SB5=jp/dP>C*SV{Sij!T5 x 5jTKbT^}Lz@p@iTT]QZ\rEꈴG*5U-aQFq5*:0\nh=Q¨G&z9z&\" 8r,907sN^\rGR>AT1OPZEFtUNZAjPUEU\"-Jz*`Ԭb~eU:[=T}\0|aOzsR2i2f^zʬ`\0\\w\0&6|Z7/t漂R̭1VZ7jk*\0TFܻva;дբ-I;*)kjg{Q'\0|H\n4)/LoV抳 \0~QxS&:DjIR`n|A^jU(\$u]ʴyٳS\0V6)Bp`d;V7~jqMmTn鈳yX3\0sM'ZJf0q=e'fgXqW)Bi)t2_y=0 *jUȧbz}/d^Ncfu|I4(QXʍ-Mv+Q\0Xnudz!\0CFOO}jT&Px>~g+)\0Y5YF>²+*\0MYb8?(Vhh)Ք ~MְRUH3`%Lγ̴F@/\nJO5+EV0rI_ZM#9lkLVg'KK:ҴXѱ(EMZL)tѱPF3Blk\$V&oVkf\0nkZY6-Tu cGm\rlrlY3hTV0:QeK2mP!UB@#ʪR6U`7Y\0o'=[Q?+V,\n{G8VkQ+3>Y\0Wel*@\nH'} bu3yf'Y.C1Bę]\0+1K/G[)s`Э5Z^E`5YHU\n8Ak2\0[!, 6>}q=jKh@S#EQQ2KU֙b&V#p+\0³kLuڍ6+iz_`MD{//8Y8\n*т)C(U ^xlխkד^VlL\0T^vvMhߨ^q%\"*K\0\0We^S**L+wko^n`x+5i_[)I^ηֽf+Ixa=|@VK\0\\\$uVdUdC%Rn&L#\$'=RqbK2iFuI.ʀFyN5.҃c<I'R}4 &!0=Y@eI}vU+VKε*l )V`Vy3Su6NPVAAXϛ{G0?^|&7XDf;`y*5*]!\0Bi*KdZ*)_aUBgXd[,͡K\02т\0♒0?NI%\rՙX[>\nX!V4kY\0G baW&aՇ&Iujɳ2`xM6:֫?dNRSzbaΖ-*XvX`&e\r\$btZY,<صm \nSEfaZ+jJa5SdhK@\n\\)he_٪Tȕ01I*q pf80@3ʡGԒ̈DjQt;aI* S306%a\$b2I !n>ϘȘn[\"lVdP,[#}Y J\0t\$.,%4Œ#!\09ed~|M];:31!Yl80-K'\r,d&'QYQId8{)O1dp[&WY\\Ieny-FfYkec\r,V,d1k.BЬYBe{/\0!eNՔ0_jheV\r/3Y]+8̭{1vQ7dRh]dv`p4.U,PUebh]4vdY?djh]5`cwf՚ygB*{ecq,٫fŘ9aFfmkҲOep-9 ٺeNp-<PٚdRm:6z'\"Ygm>v{&Te_\r=vQ\0вhȵ;@6~gmVYBgR\$-\nFgrݡ;xyYhJ̵K,VZ&a3hU9-1hػEmYqh5F1ϴvtf=CZGohFH-(\0_hҬKH6(洸~tE6-\nZch--*ZK5:\"Ŧs--Uizӵ<fZ_i]Llhhr4Ms8ډiLQv=˲wjT+`Z_9j[)xNZWjrmKSmSڢ%kVڳ9jm;N6WSjVV>Ci*Յ;4vm''j%XbZXCi{R-kHn]W֓mok6Յ+\\'#kRk\\mwZ\0LӉt1-gZkiĽ;XLak^k{\\\r-Z\rl6d;b1[w;ذ9gQ#lrj5\\V[ jhuZV-xZKlůdzZ*{lr_d8Wkh^VG[8ikּ[cHa1]i6sMpmdivZlra]i֯5`mzڥɄ-[m v%tk^_eKl[t[mmy-ھ5lrbmn&\$ۈk_o-n\"*V@[#XYd.KYj[&NMyVmʁ\$b %smO=nzݵfۜuk=x\0n[nԕ9{ۚkrs-[oN5I[ڷ[kTӋvV[o]Kgv[So_mɂj^ޭi-o̽٠-[0*[t9lmvnmm`}Aڙm\"_\0\\n,[n3ZSp}I-[ᶙpMkj\r\0-1,u֮\\\nm~\r7mepdmwmoqaxm͡9mV-qVd8J%sS4-?7.ƲdFn\0,tf)ћrFn9,,:3qbͿy!n{mwjfyVnAɹ,eEܒrnޥS?.=\\r~`~f\\r٥/5\$g{Qڂ5^3hTA\n`pUT^Q'*U\0OªRBqL\"/5bUҨ+CZ4/wcQxEb4_sH-ERQfQQ\rSUmlQ⪍(OB9ժe{Z_Wi%Rd뚰*T^eՕGL=w]jjMJJ S~un\\07aLe8jkiIA_M.Ilo鑓йURRXUͺr8kߩM+9no*-ujM˜q)L\"\nS.x\ru;)PV.Pouj[>)vIˠ宁/tvWB+SB*OS)xTk]Q;M kѫIY@uDkZ\\SGRQ?&T=%UgR§s\r*wn ]atlZ&suU̫%\\ϨTr\r:mnUuuZOeD9.o]cwnf%7:[Ku}֢Tʜ_.SU25G[0pDR^;v>ݓ}R~NU'ATR~UAۻN\0 6(j(B\$-J&l(5teu̞l8e65|tk.өJ6))QW~lB7G\n=,l@\0RS\n+K\"3HnLQ.Ks[yr7[A֤]mK+ɻeQ\"%{E1wK`Ӂpr|!;V@;bN-:b7!ނ|Hl{Ω/C6eN0sg(PR!DUHWf^4 A<w\n#Hx-|ףC\r{(Ĩu=8AA;D^[xrټpqB=OA0`1]DZ_R7u6CaJrz(\\́Oت|̈:R^m@\0=5l!zQ| BW#dIh(\rGE+|@U71!;R9QC47Yz_#y`\"k7Ȕ;auݤҳ^jCsY]f6artْhضpy{ZATtfXY= )ۦȠ\r7yRc_[W, r]W@nˇ>_a#|y&ۡ_DI ?Λ\0*u6VH߀Vc:YL\rj.dh\nBU.oߙbY!ܘ}G0'w/Uſ,U}nK ttGȿ!~g@Ҏ/߱\\40K[<oDL+^/33+7nzfJ%ҿ\"[ s/rp,վeRqgB8*8Gfۇr8%K_\07o/^l]\0\$y1Mo7Rwz##iݍ[LcGzVla L@H \\HPdC\$cc.xhfɜ#9z4]5\0\0ŊidiQO0`Q.8y2gWg3ZͿ\rܶ\"kiZA.+'f<O7Dئ6O1X`Hon\"ڨߨ`S`(=\rv>VJ\0nOU(`λj\\hGJBJ=|ݰQ{ AJQ/~T&j^nE|zC6/Q6݉wp[߁@a\rGd6H\0000σޘ\$x8L`7kݨ!KU[\"g P=wrd@@\0GIQN7.,ba~~lK! E)MzJBXFAXZOA!B pxiFiQgJcT/+rUSFs\$ &=hVXXIޫ JՃ[p6T-q4;EPU\0Q\0P\" b{g )\niah4L\n1l+@9i\0NUȄNk\r`OKJg.c?hj \rRT__t,5 ֥Wob>UIw;5բsaƐ");}elseif($_GET["file"]=="logo.png"){header("Content-Type: image/png");echo"PNG\r\n\n\0\0\0\rIHDR\0\0\09\0\0\09\0\0\0~6\0\0\0000PLTE\0\0\0+NvYtssuIJ/.C\0\0\0tRNS\0@f\0\0\0 pHYs\0\0\0\0\0\0\0IDAT8ՔN@El϶p6G.\$=> w5r}z7>P#\$Kj7ݶ?4mt&~3!00^Af0\",*4oEX(*Y 6 PcOW܊mr0~/L\rXj#mjC]Gm\0}ߑuA9X\n8VY+D#iqnKQ8J1Q6Y0`PbQ\\h~>:pSɀGEQ=I{*327\neLB~/R(\$) HQni6J <-.wɪjVmm?SHvƩ\0^q)]U92,;Ǎ'p!X˃LD.tæ/wR wdr2Ƥ4[=E5S+c\0\0\0\0IENDB`";}exit;}if($_GET["script"]=="version"){$p=get_temp_dir()."/adminer.version";@unlink($p);$r=file_open_lock($p);if($r)file_write_unlock($r,serialize(array("signature"=>$_POST["signature"],"version"=>$_POST["version"])));exit;}if(!$_SERVER["REQUEST_URI"])$_SERVER["REQUEST_URI"]=$_SERVER["ORIG_PATH_INFO"];if(!strpos($_SERVER["REQUEST_URI"],'?')&&$_SERVER["QUERY_STRING"]!="")$_SERVER["REQUEST_URI"].="?$_SERVER[QUERY_STRING]";if($_SERVER["HTTP_X_FORWARDED_PREFIX"])$_SERVER["REQUEST_URI"]=$_SERVER["HTTP_X_FORWARDED_PREFIX"].$_SERVER["REQUEST_URI"];define('Adminer\HTTPS',($_SERVER["HTTPS"]&&strcasecmp($_SERVER["HTTPS"],"off"))||ini_bool("session.cookie_secure"));@ini_set("session.use_trans_sid",'0');if(!defined("SID")){session_cache_limiter("");session_name("adminer_sid");session_set_cookie_params(0,preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]),"",HTTPS,true);session_start();}remove_slashes(array(&$_GET,&$_POST,&$_COOKIE),$Zc);if(function_exists("get_magic_quotes_runtime")&&get_magic_quotes_runtime())set_magic_quotes_runtime(false);@set_time_limit(0);@ini_set("precision",'15');function
lang($v,$yf=null){if(is_string($v)){$zg=array_search($v,get_translations("en"));if($zg!==false)$v=$zg;}$wa=func_get_args();$wa[0]=Lang::$Ni[$v]?:$v;return
call_user_func_array('Adminer\lang_format',$wa);}function
lang_format($Mi,$yf=null){if(is_array($Mi)){$zg=($yf==1?0:(LANG=='cs'||LANG=='sk'?($yf&&$yf<5?1:2):(LANG=='fr'?(!$yf?0:1):(LANG=='pl'?($yf%10>1&&$yf%10<5&&$yf/10%10!=1?1:2):(LANG=='sl'?($yf%100==1?0:($yf%100==2?1:($yf%100==3||$yf%100==4?2:3))):(LANG=='lt'?($yf%10==1&&$yf%100!=11?0:($yf%10>1&&$yf/10%10!=1?1:2)):(LANG=='lv'?($yf%10==1&&$yf%100!=11?0:($yf?1:2)):(in_array(LANG,array('bs','ru','sr','uk'))?($yf%10==1&&$yf%100!=11?0:($yf%10>1&&$yf%10<5&&$yf/10%10!=1?1:2)):1))))))));$Mi=$Mi[$zg];}$Mi=str_replace("'",'’',$Mi);$wa=func_get_args();array_shift($wa);$ld=str_replace("%d","%s",$Mi);if($ld!=$Mi)$wa[0]=format_number($yf);return
vsprintf($ld,$wa);}function
langs(){return
array('en'=>'English','ar'=>'العربية','bg'=>'Български','bn'=>'বাংলা','bs'=>'Bosanski','ca'=>'Català','cs'=>'Čeština','da'=>'Dansk','de'=>'Deutsch','el'=>'Ελληνικά','es'=>'Español','et'=>'Eesti','fa'=>'فارسی','fi'=>'Suomi','fr'=>'Français','gl'=>'Galego','he'=>'עברית','hu'=>'Magyar','id'=>'Bahasa Indonesia','it'=>'Italiano','ja'=>'日本語','ka'=>'ქართული','ko'=>'한국어','lt'=>'Lietuvių','lv'=>'Latviešu','ms'=>'Bahasa Melayu','nl'=>'Nederlands','no'=>'Norsk','pl'=>'Polski','pt'=>'Português','pt-br'=>'Português (Brazil)','ro'=>'Limba Română','ru'=>'Русский','sk'=>'Slovenčina','sl'=>'Slovenski','sr'=>'Српски','sv'=>'Svenska','ta'=>'தமிழ்','th'=>'ภาษาไทย','tr'=>'Türkçe','uk'=>'Українська','uz'=>'Oʻzbekcha','vi'=>'Tiếng Việt','zh'=>'简体中文','zh-tw'=>'繁體中文',);}function
switch_lang(){echo"<form action='' method='post'>\n<div id='lang'>","<label>".lang(19).": ".html_select("lang",langs(),LANG,"this.form.submit();")."</label>"," <input type='submit' value='".lang(20)."' class='hidden'>\n",input_token(),"</div>\n</form>\n";}if(isset($_POST["lang"])&&verify_token()){cookie("adminer_lang",$_POST["lang"]);$_SESSION["lang"]=$_POST["lang"];redirect(remove_from_uri());}$ba="en";if(idx(langs(),$_COOKIE["adminer_lang"])){cookie("adminer_lang",$_COOKIE["adminer_lang"]);$ba=$_COOKIE["adminer_lang"];}elseif(idx(langs(),$_SESSION["lang"]))$ba=$_SESSION["lang"];else{$ja=array();preg_match_all('~([-a-z]+)(;q=([0-9.]+))?~',str_replace("_","-",strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"])),$Re,PREG_SET_ORDER);foreach($Re
as$B)$ja[$B[1]]=(isset($B[3])?$B[3]:1);arsort($ja);foreach($ja
as$y=>$Ng){if(idx(langs(),$y)){$ba=$y;break;}$y=preg_replace('~-.*~','',$y);if(!isset($ja[$y])&&idx(langs(),$y)){$ba=$y;break;}}}define('Adminer\LANG',$ba);class
Lang{static$Ni;}Lang::$Ni=$_SESSION["translations"];if($_SESSION["translations_version"]!=LANG.
3098912992){Lang::$Ni=array();$_SESSION["translations_version"]=LANG.
3098912992;}if(!Lang::$Ni){Lang::$Ni=get_translations(LANG);$_SESSION["translations"]=Lang::$Ni;}function
get_translations($_e){switch($_e){case"en":$f="%(n0Q :\r @a0p(a<MSl\\;bѨ\\zNb)̅#FCyfn7Y h5\rQ<ΰC\\~\n2NC(r40`(:Bag8i:&㙔yFY\r2 8Zӣ<'Ha2܌Ҟ0\nb豌n:ZΰUQŭwDmfpQqacqw7PX3to ZB9Nzs;̑҄/:|<4j'J:0rH1/+7(jDӊc栢0K(25B87\$B/h8'@,-BƎQEP#O7Ct\r`j[z0c|9h\$>\0\r\n҄=Û\0x\r\nC@:t\"~8_)9xDjΘ2(-xx!H㌣.-D;W+863@Ɍ^F+u\0ᠡ*,1,i8cxؒI¤fۣlZ*/cs.00~0YWB07U\":3xuc@#пC`2'3XIl*83ʮ߷ 553#\r9{5Uwxj0B͡.'(ǧh\$FJŋļC.!n(hڂ߉@N*㢺칈05=RtP5&ĻɓEĄ:ew%8beUz+q3dɓ*\r|7([Ӱzʲcw<]0|]G]MvXl̳?wG핷W:*1ngQW 2<1_OlT@PT%PwQG\"p/'!RD[ 9Ufi*<&xޫx{ApEh*P*\rBukI)G2zSj/i\rYuLOjPJF\nzS m!&hbd]IF\",C3DwIBܜlcgAlW\r!+Oz=G\0\n@QXj\n[16\":9\\5reH_qIy9s Kn4lL|L@FLQH7J12h匳uDX!0O)8kxDI\rF'F8d&e3[#-k^Y+e܋r 9ɠ*ٷ`+QD4ʾwbKL L*4\0*Vv10K1?R4s 50G]#4o\$DTHSfDe20fFhH)vbz7F\$p \n@\"@Up\"]J\\0PbJ1H&26J <Q樞LT2ЋSd_Nl/Ś !L2r_j#KB%I((+\" r*3g6yӐ3:p#sP\\#OѻƋkl\ruȋ&Aɶ\$`lYJ꛰JN%ͩj˚}/\\`E\n`,XxF\r2BZIHϋX%u3րYBan[@T-|9Y01ٕGB)ꎭy]W~37gӒ[ ƛ\$xN6\"@BHPaBf_\r~XSNdE`EwZPlDU\$Vy\"BAB\r\r3aF]MձҗK]+A]uSchg\nNImL\"`%<.cXM<A\\2-Ie IFʆYˑ;%+# f>YGگL%1dם0r%,&(F`fZdaAovM~lY4!S^.㌷[aA8Oe,Զqa^j[dJ605l^t^,BDˊH){qJ(q#Kk!g5\niЙ<|KeƭKR!{{\r|{Qm-ߝԓrJ|O|}l\\M`ӻAu%y'%Z`nxv\nYD~O49Fz1sbYi\0=/~+E0q\n.f\n7d!Bi=FWX.a,QHmۉDs߂Yxl(fI&X/(0Vf2nPll\"Lj./#;#8WciK/,5D*9.2\"|GcNo*c>#g)a2_Pd*Vlgv`d(2 LW+>D̏0UpԘpu\rka\0Ρ\nBNuX0,:\\f%Z\rp\n+P0Lh^\$c1(|HWgE103d\n/e\nyp6G31u bd c~E*]\nbމL\rb6!c,O5'eqb.\" qeP:.O\\4\rVmMNh3d`j/%\nZ&59L/\$LmϮ a#\"qmk蚏!Pʓ j/1(b(L!\"g X<L c:):`N\"Z*W,.rF!.V\0G+BK+/53,,/,r6\$U+\n+lLF\$@0a\r̠0L\$2.*\"a܃QG\nFrr#Wx:`6\0о@hl(Bʤ,E";break;case"ar":$f="%)l*C(Xl\"qd+aN.6d^\"(<elV&,lS\nA#RNd|X\nFC1l7`ӄ\$F`!2\rl'E<>!!%9J*\rrSUTe#}J*d*V́il(nTIdu'c(oFe3Nbp2NSӳ:LZ&\\b\\uZuJ+ωBHdNl#d2ޯR\n)&<:\\%7%aSpl|0~(7\rm87(9\r@\"7N9 4x6x;#\"~2ѰW,\nNlERv9j\nV:Οh\\pO*Xs')ir*&V3J;l1B+l>j\\z1,t*4܅NA/ډH%-=lLHBPG)\n\$R2Et,]4R25 k(3\r1C351A(4.00@9`@Y@2D49Ax^;܁pVT3(ã?x\rKJH\r#x|1mNR*))U8I\"TL\"8I[R3Qӌ>,j\$WB9\r\n0!VPH9CMyRSDBY({*QT:0E\$D)*0)0kZJJI16HRY.\nGKk\$#kch5 05+\$&-k[96]MTlZT=&gNĈX[1r/tّQ!oݏ#ۦRJBǕ{!LP!N}sYth9ki\\C`ā0|f\r!X =h(i_ @4(x7a_0\$xRPA:g343`ث)TJm\"ĘE`\n\n/A\0u]\0l\r5H!08&0RaI1cSrHΌ}-CD\rQ%_@pn@H1`4+]l\n\\@`\\jBPp:0`^9aF&#\nHx|2ȋ:S0*U>Hj7qx5Cp\r+]-5#[ˁq.@D]Av.t%\$kj>ΕM!}\rS.ʑFR.d#\r*,p=NrC4C5yD%XPgH s2u ѩ\nF⼈bDBhOA'`jC@p\0ZI#N A9;5Vra7Ue?a|N&hБٳY\$\r\r1w74Fη˿0Oa@!07\",GE*(qhĭIj %\$ʚ8Rb:F:`L6>g,AK-MZ3yI2K(I&}XzAt7k\0fA?͕a`P cHB4:lmhFT\"řj`.\"5>sZA3\"\$({Rd917\\YpD4W. (gn@).uX s2@kV`F\nA39Ƚ7#HqG%VrJXj_yLQpp \n@\"ra&\\ΞKe\$aK6{)¾\\NI\0T̶yjX\$~Ih.T LQ>ԼK[ʹ,#lTDi` r,=ؾzdu-3]O{0lcBցF/+-|c~\0D]Li'g{nD'>v uom^q,m裊8S\r!SUCH\n sRi t2Ѕx6W;K0\r߂3ZC(-́c|;H2;\\F:1K<=JeI.%F)\$PG<f\nt 1\nֿ)]p5w\0ѾcGtH^hU'-AFЄ]\\]y\"3 O?W_>-4κrP 0/7*B`X\r\"LR~<2^3Jl((\0\nneZ!>NzD*wNigD9.UɗFFrQņ{i'lHp z5imF٦/d#}wd|A\0 \$T(n8OV-,C(-OP\n#g%IdO*\"R0lMV\$\"`0k%dh)AV\"'c\$LwJ&Gt3\"\$!\\xM6DTB6fT!vNSRq@d`- c\n0(dO\n.{]wĕg\rS\rFb湥48-lKA\n'~\"dOltwzM\0:JE\rdpPMD,\rHNTޮ0XpTj-pv\rPG!*Q.%Bux\n/thت\rDc;qyyN!\nQ|7L符Dq\n+)F1y\r\"eEgQhHya\rD} ERR1<1v'!\"H#PPDՂ/P+&/e0p6ÎgMe(]& d12fnK?T.lRT:U%-A2Pю[%2'%R% Nlo)ЌTm튘b#vprM\nR\rў/#ciSr.~F\"1[2ws<s\$KCc-,n8øcSO5#\rS\r1Fn13s2?67s2-\"qb{#%0%Ŀ03A96qL\"h&3c8K\rr/:3.<\ndi<7S:==A>S HhO<4Ms/m@b-@N4\$.:@\n&NBCf%W&5B#EC*N\"@4FkC?jFu=ǕF8Sx):t>NpPb12siEEs\rRJO#@QPN(BhSzSA&v>Bm9hlC*Oi- 5ƷMEodg0VhOMFeobn;H\rV@CYkxȐY@|~KвH&\nZ6D=ǰO/\"/kktg!Pd; T5F&~v1CO.'r\0E>b2M[B-V͒\$&Z8.\$j=\"-,/n;LJGq2,0P1TI(Fa(f4CIBB\r\\{u.F)Nhm):lB\$bC2'rcfG҇Hy-M^W\nt\rB\$q81B\$gtI/``14Q\$\$6Hu`5cvNJ3+L&n&Dt?f\0 \0t @\n`";break;case"bg":$f="%)h-Z(6Q\rA| P\rAtX4P) EVLh.du\r4eܞ/-O!AH#8:ʥ4lcZ2͠.(\nY(\$\$1`(`1ƃQp9(g+8]*OqJ_\rGiTh~McN\\4P[1UkINq呺6}rZ״)\"Qr#Y]7O㬸2]f,D5(7'1|F'7QLs*ns0,{ ī(H4ʴ\0\np7\r7I00c(@2\r(D:Q;\">P!\$p9r낏02Pb&٩;BҫC2izꤨRF-\"-KAOłJ<\$i,ߚJ)(fl ĚhQ̴-r:Hz-;RƵ*4l\nԍK\$6h=?TavW)\n7(OƁ\"OLf\$hii̝;P;l# 4,gw\01qpTgEфd;#7H#\"Ɂ4C(C@:t,6@p_cJ|63ElX4px!\\&Nze7iCT.)>6N8:bztjJh4Sbʰ((B9\rׂ\nO4N%*M)뎕THhpңH1 )<SHd6t,m?\"h&I%.gх\"⊿ qYKo<\"Ups봷4IrA,4K-htz s;j)Ϋ;z%v|kչ(İh925=mdƢZwBgTuZk@T\nsV`Ԅw\$b\n9BA'4T<A;' <(~ BVP6z!8\n+`6P掘3*a!:Ԉxr!図gC>l3C,mɔ.ʊHsEEPtCŰ!]3*O#\r98RPcy%ɭBޡpaE;;@taHq(sRLD#ihʤSe}1}Ju*p\\U}]ʕ g-K<TlɘJc{2ynI,J5ʘ'-܉Xr]\"|L h(y\0\"uo\r!q0`@SaA1F,t91BѤё }LYn\$9QXI43
2>.B)HIIRdZ=>2\"A\\( al5&Xq2E#ntՕ &iQJ>=;'L*=LIU\\TA̰KT8#-]Nw!-DX\"Q@hFKP@`lKChen3Iê]:۠<~_/e l&fCd 2A'(\$+Vi[)hdJP B3ХSlzg[\"9: L #o Qo_#S=d\rTT@\rOYr7_ ?\$\$ɭh\r!4Eí2!0ˉ6)Ti%[WkhEY}T*dMTJ!tQYlHq9;\0j.ohG{8bkhI%cH+eyǥ\r(TL0NuΑJz'J,)S)iPNE9Մ'WFi+崲)CaqB֕-CVKER1t(eFÝ(o^3YW\$M\njڛgVyI)nJi*V\0/3>[h,X q m2}E;Rno/`QlL ŕ+sk88BP_2.u?ˁ)B!<FO7|G 7t&B[=iAJ:ʩBשFYA#q ﭛŊcZ;JuVfי\r_F>\$Xe6tU]>]?^dĠų Vb@A~㨿\"\n40&bҍ+dw<B/rx)Bt^p7B!O*ы!078`u5;dG<Uh C@-^UzhB\rz*y(`jhP 3W鲃(X\0を䀆@\rb\nfEdɀ'A.b0PZ3B\"VxHho[\\{\"(Lq+j4h~8\nȌ\nOhHƎ tR(~ \n`\0J\r\$l]F\$tI\"H2(jgɆ-TFA8n*O<u\0C\"w'֕`I\"( C1Q8cl(ETڙë(BK9f#1<Oj91 q oq\0qcqf0d 6'.#'A<\$p*\\P@q5H0JpEJ;'V-+VrLjL>GGA.#О(ubƇ\$\"\"\"n<Jr\0003eC|`{LhiGT`x\$n<B)mDK\0@BBI)\n)bόQg*2qiz6Bb.novю2Κ-p*Z*).lr-*w/2pbhFƉDbg>t+&!huc#N15_ĕ#\nK34XYPG<)(3͍1,'20+rpfDo\rؾRe:hdO).gSr/CLj3u<=\$+0;3s/28kԽSh-*UzP)T0h\$@ZM>.q%Bk#\0NviF\$k)9ye0TN@;E3EB+QuO\0s Yc\$C.4>JNN?@[J4'!T+0qOb<PtZcD^'\$pĘi79P,g Ī\r|Bh.3JK/18KRp9(pЄMsRODԻ/V;ԧ.QUWPY49L6ILP((j |A3CS*Z#ZJZՊN4YS\$kI]]1]w^%\"D|o#pxcxD5|\"naO3EԟBTt.tAE#H6'Xm/u1 5LXiBkp'fݣ&9eG7dY?~Q^vYHgcVIHP(Ф̃+'Xe9fwb}bՁA17|'03eM0!Υj,al\rwjVCc0D.fOk\n0hnֺ628-[M/X%ukdXeh5eTvgsPhk >r\rj>Fd\$g3}WE7JFyuMt0atvDo)6\\PqOqc+.\"CJ-7#jA@ux\0wWl,L7-pЌ76\0~!>^u}WҗZyko}3l`47[=w~,\\wqWMrK/394gIis)1gJNOcK-BQ'fXp8F,Kp'r맔'f,饇)8U,EFBbK>d'mFޗd,&NbN\0@\nZ,ugqo.\"YxFNlV: \ryҜJ\n\"g؈g]`o6hO('sp6@2o\0Ğ)o If\nÌ6:><>.S\$_c>Rz%d}pNxr\"բ,V\n/c7\nԁ1/m\rH!/qTMzӁ,nh>yݛyv1ٓ2)msrӟ3REWgV6g>e\\=e`SOjQ=+90+7+(4VCG'8QUZw浘\"6䁠q:kmFoL%'Rk4Df>O 5QD\n6J,7no3Yon_BXu%avʽIl;WQl";break;case"bn":$f="%)Ut<d sNb\nda\n 6#k:jKMŐD)RA%4}O&S+&e<Jаy#Fj4IjhjV\0B`ULcqؽ2`S4C- dOTSTLZ(JyBHWJhj_\rmyioCZNr,N%Dn৮еU8O2nŭr`(:NS7]|82ɼ 4NQ 8'cIg2Oy2#:\rK:#:E3nm ;KB+M Ь#G.S9h6ԫmTd\nQD\rIlj'@Ep{LDЦ\r#pΝ2*b+\nDNtɨÄ+H*[;\09Cx0o`7/h: AR9C7KOêx߫N%4譖}4k[Ư#mq8 CP{]G:\rQ-R(1T47AMc4 ҚDa*;6Bj(c֍etZ-QElLt}CEX'J]6\nY4]f'1OQa\nB*9z,ilKL6JvP;B6˳AEѯu 9T@0c9ˣ>LRK#4C(C@:t9sAC8^2},9^,A=A\r7^0SeCIxɵ|EY@ BYQM^\$Lp^2be쳕 EcxRCݥm4C.4ˌ'4B9\rJ\nMr>Ǵ-.ϊWk*/zN9]c_u/asIN*k/PDlA: lq/p-S*:r|E\0:*HNL'e喺d.\"mUK!C\\@>S2CCB|/&e,FAa\r()QG+Ck6!ABC2eb\\ %;g?]\$XDt.\\Q1\$Y0ˉcʔxPFy*\"A@q'xF'BC<FT.1 iU:5 לa44Ða.9 ɠCq4yf>,.εU ?:U< `srK-l0rG30f\r2r\"AyoAP7 :V( \r3r!3;^8\r\n\\<+(مF谦3tf\"A,2c8*~8rM!/mN\\t4FtCalm[{q\r97f\\- }^\\R^53Ad̿bf8v\$-[LIQu*Afjᡃrj@Uiִp\r-MֿZ#fm\r6nOv?'\0\$}kx|\\O q!©TGUbPYH`M;,prqB'\"Ɖ^` j!*#Y/d0kFi3|RP!\r9A(h<MTU7:.@\$,H<-^%_d=ؖ;VGr'nAۢ|O>0'agD\$zX fԳF̩8P)Woet\nEҜ_l{\"Hi)\0C\naH#]IiL\\-H>Fbfp8\\6)˕#BɎPHJ1z\"VZLRZY퀶%Z(ΫHy<~.?M82\rzܳڟC+Q8+3)c:%%JŐ@xS\no~FN8\$qѩ@MV,G5>++řw/.?#smŔ[qiar7FJѫ`\r75-Ѻ\"=j}gAQ%aQ3K>5]yFĬF b*0\\dO#Ɛ4JYtvRg`˃Ruf)<JGq+Gn˾Lea,\r'´=c2yg\$v|q!LIds>°+ȭR\n*{G/4Ӝگ۾s`L黎ظ]bNJ6vÄOM}b[\\Ub\\\"+ZN(*^8\0`Of! <̔BLxdHK\n`>̈ɄʤLR@\rɃL o\0\r'M\n2m;4blO(pL{#'GXuBZ%6C.|{H2VIwxNT \",L:84OoJ~l` l0\rpT얍ヿD*Q\r<uOŘ~-4p1J@}+iJv>bDfhbPF#/[Ne` xfj\n \0@ܰQ\"@E7͊Dx)|B{ ^Ee4{\$5c\rCvkNCÚtT\n^)@TŅoXaH(Sqg ~9_ \"R,1EvJ\"W1#ŘFʳ\"QJ>D<*0\$hFCQ_<Ejo&RJr-m(Y(*e1s)%I,Ңbs2,n#䮗f \nWG+,34#.WcB*J4\"]'&Ԫ2,rt\$)/G!02WY&YP./%,bC.zxDԂ/iE5*0bGPGVp2Bd8S0)#.9(#.^'TS8}e6O-ӹ-rE(RV<o/|D_1[ \"^皐=0Ea\n\\\$2^8s̳fbsA|)j05P3\"sX43t8/#B2IC4NG9qd%uN/IDSu(P cY;.Jnh)E6cp^(-J4.+\rFsF}3a{;\r9&sD4/E}D(Iā@ڟt( ~4E&\"KpiB%&tJ4N\rCMTZT3Q;E1YDtS:v0A5D5SI5IPPM=ai6.2OEt-_V)rL1XC2'EoJuX8{E^&RHAG`ȃLm%\r,c\"TSR1ձAU]TJuG\\Y/*Տ/N./V'k[UI&1\0}CW`[?vM\\1[vR//ţUJM~Lz+6IZ!cPNB6F/|N沯e\\-5%6dDs_MZRŴd./k]qYLFSgbt3ct1&hr68p\r02]8YZ!Lu/V*kTv3&pKBSLωcMS9XVrw.7cwl2Gqq4tMtcHY-uuuDrAvw3v3ul8&UF3e7YFwW?A<VY\"rhA_k72+w]LZLZBVԐsV)V%w8CTs'UV\r1~uϭG7`DWAA|.OVG}oEWo1p4)w= xu\\G</o/';g'Dv\$t\"σr 5srE[xu42X]xw`F[55؋4 wcxםҹ2y≅wP|C4RQX8W則Ӎ buXDEww;\0CQ\$=#ʋF9y\$(gL%eaUw[9c7%arYg74a&b}3+4UDxpQ\$<ia3ӎq\\xK.ŀ?_X\\9TCa@7I0)oی|Zr{U+s'^NY,5#?1V_^Y]/26'z;K{Ts178\r/͛qTA!5zAWszOic<%cg%_#`jb\rV ӑjDBjDt\nZ zK\$\\ee_㸕Zr\\::}anGbk~='o(oR|F:2 N]yM|iKi}CiR(c*a_U d|%YɉYdpl@[%1M<:tC̱G#р\r)y84O2㍰zmC[B((\\P[Ѳ4B;IUc:]\rWKOR\n?C=y#\ngr\\4LTg[ 40|Yg+\rhDIvJsP/qR32LՓE\"ƥ5gf+ \nƈ\rl3Iv;::3<EH'Bc|b!rфUN,sek-'?(Ϳ`\r@\\h1|VSz+%\"]W \0@ t\n`";break;case"bs":$f="%(l0FQt7aNg).&0M磱7JdKia20%9IH)7C@iCf4* A\"PCIrGn7+,lbdѶ.e)zCy\n,AJ -e3Nw|d\r]ŧ3cXݣw1@ay2Go7X搳\$eiMpVtbM Uk{Cn59.jc(4:\nX:4N@;c\"@&H\ro4n\r#8@@H;*\0ߨ\rò腱P.\"k\$b#{:Gshl5ϪҠϠ6J9>0Fî,&%iJ3*5'-I)#U.AЀ1mPS<P(@;C5IB#'\n\0xC@:tt4:p˘x BJ\0|6hbp3.cj4px!=/;=ʃC ɋ8?C;N2^w|6'2LQ9\nL ,MNC!>ãdvCH4r4# kkҿG(0d c pP:\rpb^p58ɤ&!\"V:5;#'֜M5T5HChӱfӠJHJnz]_^:=3w\"9|kwjĆF)A1<zsખO*X#\n/<]GkCMg\0@6PWg2WKhm۩93,gEmZqm1%|g#(\rԽ9dfC2fQ\r3BH{SP7լ~J)`K\0o9CM|o(TA@s\$*zI%PfXC:~\rZQDiLo4V\nZ+epW%`%L1>ef貵\$Yu\nj)# 5RQcn.rXdgʩVDbժW*^\0bnX?i\$^InƝGRDA㧕r :!rC,ĝ.4JKEF\rCARql*\0J?\"`̂=*/;4w^K*O 'r*2&`H\nԒPPI0䨦Hn)!3Xh4)jj;\"BLL;05lcS\r\r*UNsue2fldjB/aL)g\0\0;SGC*kf`u\$\r)k9FkRX6f*S% 4r&lޝ48I a؊Tqfՙ MR\r~dz9ͳhMM[2D`TNC\$)'XRvb\$1NS\\\0n{%\n4?0oWiP@ {Ғ'ۂMDث/Cg7)Ph =aLbiA 8PT2hQ s\$1B\n@U\"~=Jl\r z4ҒpvB%)Ҽمv!V!2u%s#]8 GeŎLdmtѹ3.slͼ#υ+;xU4v^ɩ'9\0ql\rW4.{aq/d#j>P`IfP\"~AWD3;\$0P0N^eQ\n7xvȿyAI^3DǦs2UDQc.et.}P2i \$bqKΆ_cp(!c~WXKۓ1-d݇'M^{H%\\F|Hx\n\nL_4nڹOƤ9+yQ^aP*\\H\"\0KB=%Tfb ^LP\0'0LTB`H\rkGyT\\FS!\0ЁDP.n騛 5 cth_zI,#&z\$\\Ɨ|Y71d3~q{^SeB3^=yNg S0A\0r\nA:EM',4\$`{`O\n96BNh1^Γn'ߔe(\\e@W2(Ckf =pvXi,g2Y_4@&.\nbTxxX260/ ͛G\0g؆/hl@f<\r\r~)|hG&+\0-PP0`.0n!fL\n\\`=mʣ\n`FdMH{L:~PP|Nxd@uBJ`Gɐ\00003 @tMto0PAP ba\0%n.ƢY\$^*.P\$',1\"'\"1&4bYQBc(22bmC&1-wNΑn?N.b:%c>!O6i8BdQ,\r'1SJN:RoqΕ麞l g\$\"!Q\rrMQ٧Ja^ODMщ!p)_qGj)m\"i8\"F%QurD26\"@\r%R^kE#l+rcOE#\$dc<`h\".q+rY*r&0A&\"+E+U&m-_2b!*-F\$\0\$Is/Wc&n,v2r1fCKҵļ+d'\0=\$dM3#!f#Vm4V0R.]46PMRffSp-S&8002Rjߓ&:P0%x76-73K*\r;=C:@ 0B*Tuj=`)`).#V脹!ZT'T*@\0004@lڠ]4&1F7(`AQ:¤t`hJh>.pa)P\ngMǒ\nZ\rȆ0\$\"/jATn|d蔷>x43kPxFxLgs0&=p >z/c6r!H3j;\0 =,N`PL)ed f;E,(ِ!T\n LnkKSEF?Q4]Uhӎ\r>\r?YN:\"iK]lC7GL\rZLR'\"p#DCKĜvu|x@\0g&\"hR2<n-2L|C35@,̺r01b]bL.\$\$'9`)O~p\\H\"";break;case"ca":$f="%(m8g3IeLa9t<NBQ0 6Lsk\r@x4d s#q2T\0Bc@n7Ʀ3xCf4(TPfS9?Qi3M`(Q4D9pEΦ\r\$0ֳX~`6#+yedya;D*i+p4(8\$\"M<kXXēYNT^y=E\n)joM|*u4r9]֡횠: 9@9Ȓ\nl`6=:*z2\n&4욊9*Zz\rI<H4H*̈;I!/HȈ+2\"*\r#&!<&:Oh\"D06r0.Pʯ<\".(r\"\n\$H4bfQM&P2%434C| 7<0c7>44Y8ʌD49Ax^;r%LAr3_!uJ0|6Ȃ3.ɓxBR j:`Nʣ:-̍ǣ5ꓵ7\nLc0]I+\rP @1*x9ڽRĴx/8+\"0З=22ш}\"2+A((3%Ei\$6-cގ\r`ߝ 0ܝ9aV474#KK]Pl,H 0l#*\nbZ%81Oj\"WxWӀзHϲo=+?Y`x2sr06dh!.C7vK7G,J2Q ʹ߃I\"/<ܷ:Ia7#k+[(ir/|'Q\$LCi\$ qPؕ@Q4`81&Ҹo*\$7*-zdU3+S(h2\n`sIO\"*CPBgx)u;!茫XKc,zY=h^KFwd\$嬅3NTiGetT\n#\0ISOU#+Q *Y]ȲVX%e\"G;P5]*}E`ƃ!o \"ȱ\$Hdq^DT%\$t #P U1hI6cA3HH\\#l\\n8&pʶ_&bC1`х0'JP A%AF%\roQ2Xpldw <D[oF]Nӵ Ĺ/3]h)SC \\rZA*GsA(/\nngkZ`FT@#'FAב4R IH@_Œ^LS!3f ; <ZƐmfꎙWHUM:ONu(lݭ L*E}\$AIW@\$ZW^a?^\".UZ\rqE/~5^UH>ٱ%TÌq@RLh#5PԒ4䅢BARd\nXm 8PT\"@-MsµL\\#(9ZeI)PŰîvNriI<&dy/TPR+T1]-bQfSCS5DSHŜPHHE`rW%qآP*Q-=قY[K>DI=4F[N\"fhT2ʼnO+sHi\nXNAaѕjJ 1e-\$4%35;k\nb5E\n .;-9S\"pY3;xa:sPXkoӶ \"FTCsa#S(8%M%pb ԑdy8eu(e7C \0sg(@cӱLȲ\0^yƄ24,iP.4DA26H\0Λ:2\$!8]rvJ5}[Lr\$̼2'y/<\" t9Vp.kzBu3\" i?!ݧ2*E)<)Ȓ0yD)@ %adJPFEe7#]֯H٫f\$|^FZPu?;\\0ŒVؐps-VJ7^Gc|C){]Y\$YW0|-^4sؼK:K\nL3=blO_VAmyK&_f1.\06lg*\0Pi\n1 \"PPL ´0#mhl\0N֢t2Hn>\nGƬ|ȧhOθJb8i]\ncsДg \n hV~ygJ6McOd\n&do/nZ@氯\rpv n`(PI\nأL%%O\nqB͎b2\$fJd0/\"0G4_QO(BPӫT=VCNv=(DeP8V(K3l&2ܐJFi~<J1YHjIm]D#\nGb`\n1@A\$\r褭0ޮi\n1ϗ Q5!\r{\r` LbMs2dΫ\"Pe PO%7+hq<t\neL1\\1rl2rx,J9TKg/\r#aQ&_h+S&+*&m|v2,(-r, \$x\"w'!/.RrRerre\rcN(I'\rB᠇0\"/2\$0B.#-r,p\"C 4P˽/,g5N\".7-e'JXb\".K5(M\r3b.H \n\\@*漖?@A'E\"SуT!ItlFPd\"\"./Sګd0A\ns((Md\rVUMh/T@ZlBHG\r`\nZU~|.]E@q_EFyn\$N!BpDžګx6jP!)~=c1M @# °/VHd[V\"C#eV(e%<DjRGn(puHt0.CfawO/BWOP3ԂPyQ1@1D(C53(>=R501lU\nNF'+Z)P\r^BKF쟋XsUfnHyD0F\r\"h<H̠L@C@RC2+N\",;\"uP/BȐ\$x&P.*+Pd N %fR \0t @\n`";break;case"cs":$f="%(e8̆*dl7qraNCyo9D m\r5hv7e6MflTLJs!Ht PeONY0cAn8d:VH+TتX\nbc7eHa1M̈dNA^/J{HLlPDܮZe2bclu:Do\rbʻP.7Dn[6j1F7761T7r{āE3iǓ^0b穦p@c4{2\"&\0cr!*\r(\$B%k:CP艨z= 1c((R99*^F!Ac~()LH=c(!\r)<iaRB874BB`5k<<n99ZBDFo\0B4B9*MCI l4HhL\rx[f!\02ÐLb~0z\r8a^\\04Bx9r9\0J8|;%A\"1^00n=EC{P#57CkH77L^wl:[\\d+0}P(S0bc*:.o :(\n\0% F P\"\"L>9Ŋz^d\rzW@:\\HWQCX&#H4!#A*CFMBbNȈ@WZt.z' LB&%̹[@V23:-{4;#Ӝ(^?6<\rЕ/-C;O0@6X<w/wJvbWr=\n8@6WZC x@o\\ 9pH:пDBƆпڧ#`6~xvPQĵ '\"1?\"D\"OE=)ZNNh˘ )?(L'~CVRA`Id &SaL+!ja4\"F'́!B '.%C\0{цdF)XtM1\"}\"!s(,0ߐ(nZi:\\²V\\+xXabp^yP\0|Hs=6g5% 6LF«%B}!tGd +PmA:4Rz%%UKtY%UH5jʻW_&*\\7Kܴɝ\"+z=!E\0It!E2e-x<Г{&RHvTխbn ]JHv1LX\"XRQ>KqTH{\0\n\04u\raRSH\n\0\0h((3hH5C=UgԨ74\$i/Ci\\ç\r\n1PʃcBA'DCBJNdM(~L5ĿfS\nA0N2~d9=Z&aE!8c8Jz&V:&wmO,?b1Гs\r\"_tF1\0\"%*O%92)aK|4'ͦÇ\0et3xS\n&t_LHH[1C|KMK8^\rz?\0N <Sl`؊r3Dho #Jo;8n0Y\$a\"a=Vp]TF:W4=CˑkP > :xN˄#m-ĘzufeHa#x0H:ɰT\$Ő|QxUT]=F943Ӫ4L1(n9(/rx_pt\nj/JQiGFFpQo'+u2Q4a *<3c :',)K 1\"Ŗ*b]N*/RDISPb%L\"jk#&lps^ dA8\\OyRZwaerwĸCP8gM9ÑulP\"c>l(#-^PzA-ʀmhy7\$fяX !P*\nu#I*/O9yVc8ec~Ć@b<< rO`j7b5-,E<<y7e\0<g>_/69DXǷeΠ3*iDo-dXHHs1c>.P彏_\n<z^u*Iimdo\"-̲#N^G\0\rhLL((R\rDB&PL^B\0g >ZZ`EDG-b_,?e]g4`X#bJf#\"0zq^f7:7운9`75J\"&'\"aG \"l7f\r6\n(T^cK\rp |:H03L`#LJH7fzgHƆ,P]07-@^4r`0h>LL!Q0hLN*\n\0dJFRS,*DdlHNfq8\rмv@<\0gP'`PynupPxD\r#Ky1쯑u:\",b=\rXL+\rO*|/t#Q< 0\rjG2h, & ql:Ȍ!R8#;\"4IP\$xg.4\r|> Ez%P|B`g`DKU*orzZdTd҆T|:bHZv̮BjRhBw%;&㲦<0##*Jd8jA 0RS\$neh\r1d\nͷ0.\" ,Cfg*#j94y2N3ed~Ed<ܦ<K10ޱe! s@9A;˯9F\rB7iÝ=_3} g5/T &?3q&ee?/>P\$EAS6T!@d>9[\$1T3%3R/S\rA=\\eSt婭9R泳%TfwFC;Ztj&&PR99%oH\$Q%3 HsHQG!<tvMT\$ZrS`M KqCTvMij0qL;q\r5_!^g2'K2=z8a- AHO#QcGPf5BD b Gol@g#PC#OT:#\0Q\r)Tr4Oi\"\"\"5ubvY#@]c'Fʼn\n&2<'eX^Ҫ{'AD1-bZKf%\np*,5WVZ5Zq]- 5WMW4 ,!\" yfxP`t B? d2 ZqT/ĺhBd*~C\$15Sn;\nіL<%AcPI\0'*lOUނEg\0̨hh2'`%ɱYj6\$3 ֡h3F<s\nkY&j?Ñ.2?\0a55\r'vR=>'6*B\nb'/03\nv~\$=EW.\"*6=edhM(.OL#Vj.6M,iCuHG\n@@";break;case"da":$f="%(u7I:\r f4is4N2l\"ц9Ü,r Nd(2e7Lo7C\0(`1ƃQp9gC9GCyo9Lq\n\$ )36Me#)76遹NXZQ6DL7+dtD 0\\AΗk6G2ٶCy@f0as܁[1Z7bm8rGS8(n5z߯47cNo2-\"p܈ә2#nӸ\0ص%0h&i'#z(!BrFOKB7L2B.C+02b5,h.ۀ:#<0-܃\r5c 2\n \$\r&6@>O#1)4\\H4\rD0O9`@PBd3t4\"B-8^xDjЅ\$x|(X+(\$V:cd3JH;Vmx<M\n&(J227=uXމ P אL7\0 Q\"1W\"0:uzSWPY#Ml7ځu;-ͦraCcPBbC?^Z64>h\$2c\$b\"k,5ڤ*'v24+V懲@PF&0ʏbk;`+ #k9%Ql>x!E;]I@A4eXp\\#q]#|u03c/6B<*ǨԭW\\ݏ2 PܐVlD8lB,-L760\n|I/!Ns͆9Q_0\n]2R-/ʔ:#bɣbSLxCI'\n0(TtR]L:U\0rTJ5jP>r:r6;L<x.@܁)Kd0đ:Q\\K.Qj5G(q3\\U wBV6%tѤB+#@h9/k!+3'!:uI88[\"1!a͞\nVgɛ4w?DYЃo{*PS\$(9a\r%\"\"JȳBȖ0g\0P @dJ@('@R3E2-1К *\$:R X0_HU\"I\"9>J9\rA(UN@w\r1Z5R):a4A) K!(0OSPD5pDI3ᘙXoI-6fa8A\$荄^)~] Iqb(\$3rI\0ģ.|sԶ`ɫ8|+Мzj\rk֓/I24X˄l7̛\"DR\\BZBN9J@PD12CIƱf%XT2MO *\0BEl\"Pn\nP^𠸥3}I<&Wv\$[Ș3Jl[20j&>NՀ4^P):d,5}{5l͠WoN\0]:&e.cNP:u+EBL)1LB438u<YPmDRfx)(TgF20k\$\r!:`\\8<*_Ol;~ʂi7eZNjh70\$X(dBD@0)o{KQ<zfAOT-8PٝyEe\0b-fhXhV()((0Ay>_P*R-\0b5\npEZ8j1b.Ѵi-ˡxKQ[Hr!,6;kR.u 'xG'F۱y] ہxA5fr\nO\"dU]Ee&l\r{jH%D!\\2\$\$lŁ.9r2K p~b|Y6T`CW/,ȿ<rVCi\n[B#KF/Y7Qa!N߮pDq7w܊F2֞^Ɂ:L*ȈQSA\\R\02\",W='R\$|yO7\nbj!i\"㚯]4sG4_Oƃ^d݀^\\N~O]Vw*\\KH__{3{uq-DZNBkO}:߫Yw3-I\\F3zi]RL(Zb`\r@`Ϯ돾φK\$c@͠ʆcj+)Ɛ@c#B_H3lL.gOq\r QCb,za\"&C3n(Bxp'kd/\"9\$&f\rl[Zo+/0o\0EaŤZRPBXmPPp濬!`͚pfٯoRC XlC.D/M0/; \0P?F4Ƕ<?L:/JXcoED+/obH@wpʛb1W\rB7nc/kQ_N^qcT1HmڢBkHMqc.na2()P̈́2'\n^8\rҋYO2/#1Z&фCrBD 1lIr;\$DY&RohFRM#n~nX \r.m(v`̐!)* )Ȧ@2[݅-q-OmE``@/Hh'Nn@0tVx\n\n@J%#mڍ)Bp.&12M\"+堿T\"\\/PB7ΪG5À/(0\"B/hCXON\nlB9&b *BK&4&S+34FK;.<Ӭπ4N\$\$@\$S2Fˮ<deBph | #fԌ\\\0>úl-0\0Dp\"ڼL/&DC,0<r4 (,lf[=\0ҼI9b\$i\0@-jpP!@";break;case"de":$f="%(o1\r! ;C i9 MQ4x4L&:Xg904@i9S\nI5eLn4NA\0(`1ƃQp9& >9M(e)V\n%⡄e6[`rbQfa\$Wn9ԇCіIg/* )jFQ`M94x 0·Y]rgxLSڸ@wŎBx(6nBh:KC%-|iz9#A:W7/X7=p@##kx䣩*P@ȳL9Cx䩰Rfʡk1Cˆ:)J\0ߨHЉ\$6(R[74ã!,l +8CX#x-.+ ƣ3,q=#(,6)p츰th@;Co&\r:PQF;O[ j9.^C-sH-3 cꁴ\$\rBhx0.\0CD8a^H\\SKz 5LcC\$4DGh|\r\":Ct:p:;K`%&K(2*=B?\r̘JC,a: BV`r1Losƃx[p\rn[C\nփG.(H҂lA}H\$kt4ԸΜ:+/n8ⱘ:1&ժK~,>76\n2ف#,/5N/33N-&^Y~ô\"4\\ QSXNϭ}\n\\-*T5-X\$\n߽(D}:- VF#k9ݶ:ȌcZ:EԒzC}\\)2ASJX,lb7M\r'9Kotzb,(4ުb\$1&0CLb\"4七`g\rp-\nΝ\\ȑ1>oὮHh?F&4hOq\rL\"~\0Q\na>CC\rҢRA@P!łBb`nn\04W8v%Xk'afbD|]ʯ\nXduTKEiȒ BLke8>bHgaU bGI\rƵF(L^ѡQGIrEk\$tnURF+Ž#c,\$.ZH2bL[OFLtiH0JB65Ht22Č@PLN1A{GqMIƃ\$s!4}b\\V\r=0x~*K\rU2:y\$/*l@HtI,ee*#S D(F:0!@PQI?(-9&`\"\rf v2\r/ݠ&+Й@Bb`L;20E~S\n\rTWq9/OAc&j5\nkeЀ@*jPZk'H@FP7c`B|u!ivfP *6ڐPBNJI]~UDAKgb\$p_#\\ k0a\\l.f>,&C\$tذ9h\$4C\0m(kBO!3F;'7p)ܞr)4bM|X^OP@al\nY^r`\rJ!rHђEX;wFf6x+06,H A\n2@.k;,Ɩ3(x&5<ۂf r\0Xͱ2a:+#S1hݹ w_4yjLuA\r%X0EOθtQAR @u[!-ر_{r7fB+6z\nl\rw 3\n|udLSS2Y'@6*ZhC7dϯEn*#k;\\Z;2us*҇6l\$CB:64hVdLC-otT=P4 :|մss}e!BƗ#*O*z4SzN=~ltOtAa!+Z*\\ԡU4-BV\$ <`Aݸ^UYbl4Ovd#PMoQH#% ~mwn~\\hȪC!86#Y+4 3+w [P-^ʃqUKW̑}ӏ3~Կs:ꉶUvzvCȉr[#9)6,b\$pBCDC @(lGDD-\0ZR:oF&9F'p'D|GDMPP:)؝&F0^!Dr*I}+F0PM\r^xh\"\$Lg\nmLH9I҈`Lrfv)|gj'z\rJ-Gm\nR=Jj+<㈂#fmZ\nTdn0'7 u\rpE_ |=j \nq10O 1\nDty S3NqUqOEV=\0\$vVp`(oeJ/NF1QsDh'ќ\\˂@Cb%EcDnbc/PH\n&0 ZI @HH!H\"\$C4.\\ 5y@B0\r\$fG\"e|9䍲)lnR0\r~\$]f_F2-,r*Fw.rR++] R(D&+*F=@шo^ -bIq0)TDhiM\nF\n\rg/#-2͉.\rd\r:4QDz\0{n\$d&m0U\$6R2?6sk7ҿw8s0a)7m5'+0S9'\"sDǻOHȠ;'8vD7=NvsvwR)}>d\r=`:s'=??=s,1 M3IA6B:Ӏ >-`0sA=\0\r\$T^tFC3SH( \rEhcFbfd*P\r;Bzv4YPF^`36Đ0SVZdG0z\0\np4G(UpH%,GinGjI/2A+\$nZcRk#\r(V4K5\":HK<\$#dV]1!bKJLb@:N(u4 \")@\rASN!(xFЌpN!TW#Ws=~ZCY`ЂSZu EJ|C=0ن2Sn'\r'D~dH|-N3/dvSM3C#E4%dݣRZ\"=\0X5\"RɄEC,ue^|keY.jqդ˽e8t:)@d\$#BA /b";break;case"el":$f="%)g-Vrg/x\"ZАzgcLK=[QeDXŢJr͜F1z#@Cf+Y.SD,ZO.DS\nlΜ/* D+9YXfad3\rFqck[)>Hj!uq*?#BWe<\$]b^2n>z< TM5'Q+^rJU)qs+4,er5-3J7g?g+1]_CFx|-UtLꢻ)9n?O+;)IjtP#0\nQ!s'\n|W+IHsH<?5RP9~%3ٞG(-4COT\np7\r7I00c(@2\r(K:9@;\"P#K[Dr())JNO1~+LR0=8*ªqt.:Mcδizbm\n:ĺQnIr\"MUqљĤ E>FH >!dhӷkAFv%PQwKjOzިOT:gE[4L]DӃhTAr,֍ z]jh2N)uw.Jb6#t5ͳ|9γ@0c9#>g5̓45H4\r0=ϡ`@i@2D49Ax^;pÓ2]0x7V9xDl5e#46̃H7x6+]|\"ᇬ1A^œEz/{&DTFͼ|/t^'< C[j3W(1;r|PH+#ݜ(C2>7Mإ\$^d=b\$}Vv5ʍæ)v6ޥ۔F̊\"\$ap\n'|he]y(AM):E\"32vfE'/hL0GM*2.\n78!\\,\\=J\$Ԓu`i[!°1(fP{L(\r~Kd@QuGϠgBȳ YՕXUGĆIA{RL#af5ZH%҅q(\"FqHr9#~Dx BzQwW9d:4S34Ca.i`Co4yhe>TTCf\rU&MZUPs8ob8lɄsg:&+\\Ϝňsu5:6PL%}*ȕ8c@)qr5*zӜїcI]jOQ1L.Q r.\" bhڋzȧ\$u}ƞzDE!VRJE-#bY!RJtWSo\"Cɂ&P4rLPriqڀ jMQ5`퉲WKklF>7yYĺ!,O)i\"I\0I\"W0zb!Ijq IiEVZ]k텱׆SlӂqY\$(jQǡ|1Q*=Lv5ET=\n5?fɓ^xν<a65Z2bB4&ie h!6<q\rs՛`C`o50@T`1:a\rg, D nkQR|*BWsY=e\0\0(,RQM^%P(.-ɴ\r̨1k;{IA;cINh'\0\"YŎ5\$b )H*]zN3Éu&6o k0њJzODcc;#)4P̹S<03\nd&,\$\$%km8.@TI vSp,1-gAp;l(Zr=ԚҬBAp8<kS0\0\\ƥV|))3z*\"GUC*sZ\0¦څJD!me!G3xb|FF).d>!gcVwБ䘨,0RxDG[=?U0&)LI\0F\n#=D'6P:^{ȍcTwߕ{+\0U|črZ9'\nNbF_p\$}Pδ1Lth(}<!\$<o_'rN2cp/|)ʑ^se5-t9}ݛ~Nt+ \$)<~bAXEؑ<>h*ܧ̐ML\$.Wg}qJKE 22B|P85 RˎCp9\"Dn\",\"6OLbx2utϠAzD*zL,q\$W Nh~OF\0܇'fPhbxdD9+0.=Vn^ w8`\r \ri@Ƞm`h耨Ԏ|mEʎ0Jrn8aHu;(a:ދheF\n\$p\\bq:)]P&\\HuG\$O>pYbD::ªl:` jdMMb8\\iÒQ5./f8f>,b\r&YNw8\"#ggea%9<0@&E,_О\$ \n`\0\r\$ffFbGOǤH-0X47g@Gb)!Xy'u\"&d&,Sé%5-4\nx%.,?(%D(|Q&B]()(ۇ?)*.&0s+.c'̾b+3,2,HT,&\0_g3\r--R+q)3)1\n&3*+)쪵\n]E\0H(,0^pb#>|-!krrQX=~*\"d6F\$\$OCb+ԥo@Cy4rY/o\$.X3X:@\\'o,\0\"Q*\"\"QD%Ǩ 2RNZC2ɤK\0i\rB6l*M\"INW,wdӼE2|wADT#WbE©E^~4bHҥeF9#&sn)>o#F0%2b1H:8<(G#Jeb8S!8DGBe擔jT9L\n2~ϠCKT~|-1LܯP\"HqRr^G'\"N*?ԱzXU,`\r\0\rseU\\/wөIYK%rU`+_B%.5hHƩSDX J{8cSE1PPReuzU!QR C5LAH2Q7Luz1̫(>'</)@#()y)w+r쫊c^H^^җ35uҫ_`#)/1ReD&Z!_E'x50\$1;NO<\"uSD\rYdէe&Y?fXmEvkXAϏ)1_D>UU96(BR>r\"f=]ʵv>αN|&A\nc?Vk 9m\"kvp6ua.ta5/e1Dcg]dEMT6H!Å*)on/tHt(<iXեWANs4dt\\YuXV\"4AvMu-26E5gf*Gt>s]t}tԯwvoy?\\Vu1U]Uz@p;\\\$)|>ui?B8nT/nQ<so;2GD?`^cvh\r\"a7YvNZ{{Pq\\d:w}K;gZbHCqK{s},],! %!XmE8`ł1C\$#-\$uAovwB\$)ud\$*..h83Wzm\"Vc|W\\uJ[Pxы!8gX8\"H^8!WSXs|7K~=dDž)9>QְDMtY1QՙWyF_,V&jqyGWO!]Xےk{E!h%zy)%Pq쵛ӜQvxREJ%Ӑd-y_8fy9\"{xhXBXt\\ \0.*5r8J4\ncрAY-*Tx8T>?\nb'BpMa'S\":R5YDF8JvN/A%I\r-ؓ*`MyGG,,_).y}br:\$1``\rcRNδ(:=3jδ|A8I@\nZlbP4LjabbH\"O4r9((LT!L,2'\rWH8xJ]XqnJC^yCP9%85RVQ2j/u}*9;߮:Ә3Ίd\nD\"_.\"q~h6f/&)3d50\0v-H&^ 'WN6\ri=VM/%vZ2UX\rJ:A9س|dzS,)ͼԸ1OH\n)tU\"<ՇfAb%n#\"\\_hT%\"aMC;ƅ\\mɜ{p^C{(\"-535Bvzuvrkn6^(\r?n3UUbDB*3u~p`]<m´O \rKgWU[NǨ3Ώxt/6v%]L4\$` ";break;case"es":$f="%(oNbi1gBMi;,la6XkA<M\$N;abS\nFE9͎Q 2NgC,@\nFC1l7AL%\0/LS~\n7M:8(r4FdJx#&̆1*rL+Z oX˕.ifS {4gCcpt:\r'*O{0dd}ɎE!(o7-[NNn2\\AjH}C2f5Hl\\S9㈧+/js1\r3OFF&5~:5L7Z8/Ø3ȷ\0s[ B'@+Z,F'e2P2k4-!)DOP\nL2(9el*\r(jK<9x'D,<QLnDr0 `\rΛzH@202\rTx!\\ی#ƅ##DN%\rD R),:5C3:xaM27Gr3_p(I|+SiN6\"Cx!F+F81:L,ڲë^H°Lެ#+J*s(K.\$/PJΌCʘuF,Hx:\\ےMBH14B\\PO\"6ht3 S)\$Γ\r&gF.&{|1ϽGJ`&=;-;Zgi3r >.)\"`ܮB1|sW:qW8xr|r*SB\$CJӬRz\n\$<uG.2;\"\$:Dsik1lDT\r}p~8i*I^}!l^#>\nPC҅\nIC1_.y<l>mz= 00a!IFYj/*F*dM1Hq#\nd)lR ab T\r7-A)u!+@@ʹWj_*SAeu{UPjr[ބPDHaC\rBa5WETg)!BE @JMe243J_,4S1g?3\$bz8&\\^X :GD#Jk7@m1RPd\n?#BK 3ҡCp`|ó|N n\$XB}ѩ)!l0]&gKt;TȌ0HXP @ I(P25!A!HHAri-Zʠ\$=2Ayj;bBQyN3!HAHZFƹ d?MBo\ro!0nļHpCcFH\$#p3LO£0pDc/&.}W[Esi?!sPadu ҧ*JTzj!bE:|Z+?\"/V)P L* e=': BjQ=TII+!Ş\n*@}H#-3E0*a/N\0&[E&ե0`?&AV{\$Fw->?(70wBC\nVB' mF1_@>(b^Sc9ɵ\0;1&,Ƙ^qp@M%=/-&:'YYo1БVe@r1&rFt ̂<rlnCK(Ve\rݎrDkS[3Ry/ ]7il3 8Pc(*;b\n͙oIB<u>K1AEcGIt˻5HF\\Nuuю1A^\0%q2RȥڿiX:XC\rδ0vf('9 ;@\r#~y)m/52SEV'%:Jґ >1!*L,0KF\\;jGv\$gAyOc.0gycc~CQjE8SL%rTg39iCS7hhm)a :*rrº kLeld B7>x [;yn]h9z.A/ [`F>Y;y@\$茄5p |DVY.= r@CjEf& b)`2} R@+sgȩ4(ѥd]뿹9#J7=N;mۦC\n\"A,Rf#\$Pj/t O\0Hgz\\6\r-Kh\"m\$c.LFm 1zq̲5O.oL5C(40V\"1,oqpps4PsZwP'\$@DRvN殎~nxa).萮0nU\$2H `Jc[\ni\0pDd\$L@B8:;%\n#e2bf4Cj w\nD(X(-JԚ\$8)VxƘP@F8(Z\rͮdONClͅMōd\\MϢP_nLN_ `r-O/-&GHp\"6):J2oG,=1B3Ѥm 0_ h(;#\$!\$Cdp:g\"t\0Ljl`V 'I'\"<#\"&zHQ(xb%rR\"19Gi8H``\rے\$R+'I#\"=,m1!O.É(ma/Ri#\"30 O0LVic1\r1sII*%S3-`\rf\"j 9!c2@\n/+k!aPV3AR7b4s\r\$N_8f]\r#0d\rVc`C9v#o!xgR@ZF鐼SCT&G]B'K6!,,*\rxr m2\"O#8\rޕGA!5iPs\rn]\"P0QJ&l6DI(w\0^\rzFx&D!Pp/q*f|b\nFN4xɾ0qTAd/FңIO[Rh|D9E2C9Ii8Ѽb CszƂFĐNnLLmp=@w*y2>,T dL6mF\"@MDT2s1|hSiOCQ\rҲ)&\$0J-P* \0t @\n`";break;case"et":$f="%(a4\r\"e9&!i7D|<@vabQ\\\n&Mg92 3B!G3u92 apIdCf4(aLA0d2ࣤ4iF<b&l&+\r\nBQ(ԉDa'89\rfupNI9du'hѸ&S<@@tϝNhgP9NI9;|)@jjC,@m\"ٳq|F=ZqF̶`*y㹸@e9Rr!eX\rl#8+/H:Zh,\$4k§C|7[־Hēè1-i5N;:*-\"#HKp9BB9\ra\0P<B87走\n0)xQ >\"xHH.1>H2:\n&\rjP¹*+2;@?[8@/1hX\rX\04p|4C(C@:t㽄\"-C8_\n#Wv\rR4P\r#x|țR'8j+|ܦZ-j2h\"죷͒
䚭`P5P!>8A@ˊ\n*41\rhB\"V뜣^*%L\0^IdՌzHBxL}jDk#,r\nH90ycH5J;nX64<9lc(h@Pvf-h(7-b\r3z\$^xm\08Zm=<5chabq#lB*Wݭ8@+\"LGH&'n;X6jOsP#p\\I=eivV\0}2b\r5O3}2\rhӟ'aeC#A3bF`!dRÀ\\SQ1fhe ?`a >Dv8eC\$R\$0Z2nI'\nN *@`,,jʻW`5V:Ya2VљnmT[9\n:@BBi^u0!BRNJMʒYY[UZ+epX;HFc k-X\0V=G\rpA`P[delGIXt( rolCU+3بM!M6BUL\r<riT5jXi\$iޔ2^BމI#DPQ\\\n (O(IID,ω28FiL{`'&BxwNԭZi[sD3@u^q@jFrA-jN4]\rm`@R8L4j@9Jb%j\nC\r!4s;V6?9Hy2MRU,al養8*\$mR}IS)TpTXS#\nMWjG[k`H<uL\"Vj,7Ʉ3\0 #`CWCwM\\\"A'H#jr(3Rem\0\0U\n @oD0\"\"!^\nNɺUIJ;bx!@5;{8ʶa.(1HLfLXVQ\$?TPI]O:Lnqh>M^8[[<#̊3')-tUNsի,g'fBQ\n\n2Bp.Z1 _+3^\"PSVTFU1sv0yjN+2tk.\$ƣ_G V3辰L4\$,5J貵>?gp=npa\0iCPf8mIPT\nA\$#pdCV4 ise\$a'52}BE P)w6a'th/BAa XJiUgHR)YdB&2`/@eM\$4b 5`I\$s`뜋K)\$t<I' i-ʏUEwU.Nr\nOQdDVDAwh/qa9'FAHzӖ&Ma0z4&l){M1hiW9 ^;Gww 'sڒnab VmlQgeղs,,\n?u>[|Y&M~%N+%cޛ5{rNIJ\nCQxD>A4dHp\0̦(/ւDCZ϶hjMl4VZ|\r0nn/hZOa#!VRLbsBOMD^'J!p6vz6tP}\nPai&кh,O-ʎ&.~/|t/pȐ\niض.ІzO#Zj%t3(鄘DIDFm)7jKX\r%aH8mHc%@4D|c'Y[q\r0Et\0b>e\\IE`\0S!\r_`1Q\"L5F0.R'N\nq952L5 xࢳ nxLr4' P\nZ Bt (VaV8\$*N!\n\n!pdȮ'A2{(ȩ(I&\0&G8\rɮ&C*ż)2\r徭n{DP(7ҡ R/s)N#(3/TKE`/*,/1-!, ٪2I/X*Rom30^.2Jo3?2D5~g%\$*JI20ʹ/!j7Sk.ҥ#3k7#8sf\0PMLdu\"\$<8\roNN-{/b)bO<D \"Ο\0P k`2as,\\o)u'>\\,.@@*`eR(>5bF(Gΐf@R6d\rV\rbJan,\"|R?觫\np~Ƞ\"\$TA!fDJhl\n% f\r )\r\0P0N1BrE9#ޠ҂)ZjRt4ɂ(q ;f+1/`4!A/o cx\r(\$ }\"LQ1Qp+ޚKQR53;4430=:d.HTs_3XjS>9T*uJn0R <DU^C&\nPYƪ\\e eJ:!D\$Bk],LNNcN(Rsz.e<aN\0-c[-ۃShLc1gLNv \0@ t\n`";break;case"fa":$f="%)l)\n@T6PD&چ,\"0@@c\$}\rl,\nB\\\n Nd(z m*[\nl=NCMK(~B% 2ID6MB\0Sm`ێ,k6Ѷmkvᶹ![vM@2ka>\nl+2H#0\n]SPU!uxd)cZ\"%zB1C2o\r*u\\o1g{-PsW㤵>--#JK<TsFT/\nS0&>l`Q\r{US!\\8(7\rcp;\09Cx䗈0C2 2a: 8AP c2)d\"rԢŒ>_%,r6N\"|%mT\$͊S%楨J>BM[&%ES<HPW;'ﲲZ%nS,+>'.r%!R@ȩbҥҡ',2Ϣ8N\$#F0ҒЪ@XO,P2\r\\\n7@0c09c=o\nЄ%\nH4\r80`@Y@2D49Ax^;܁pVU\\3(ր2d\rT(P\r#x})ǒCHIAhHS,sH3\$̻8~Ƒ #\0Q%<^\n7W(J2<nTSB?9+2KʨLZ)3TD%D2嶘HQ,O/,kJ,/EM\r/,.j\n+bMyjV.2E˭<8ڟy2oA*(p(*Ll3#u-'NXdK--'⭦0Н߇S1sa%3wY̐P!x7ǸZ &A\0:p{.dy`p3\0F# ЀlB ``2軕H\$B@PrDC \$4T`0q&4WQ&8@r(J5&yHEel&TTB{cɵ:g5* 2X yjDl8AVhW{ab14;)!ѐc(\n\n02C ~*Z:p4E^[in- w\\ˢP.p/B|:0`37Ib~KeУ%QQ&^2\"!3Vp|Z!IDHTXGRU-V\\ksZ]S/Y%5#;{LbtVB0x%HOaFELVόQdK .A\n+z\r\$(<\r s]`O`oQbp@Ф`1yLa\r'fdcjG\"*N+tQ\n (L>J@Fd\nd9QIYX S/!P9z{*oY44\"D(fMJ6eDK_hef4F8,2!40bܧR0-\naH#YֻQ<.βW;Y%!PPR\"u(IEԲ]F)&6828U5\r3!I adYKi\rcUCC;-}X@:s#\$6\rb=G%0ldR`=wfnE:t.Ck_ɢFhr\"M&HуA>)\$JfB\$li|NRަCKwѥBO^hE6!)[*I,qQ\0PO *\0BE:L\"Ptֆ|Q,VgWLUMɅ2\\E\"Ձ➥ɌdRSL7iţ{|5`DNi뫅%\rPSqG\$-#?GWWG/n;d1oTT l㘁QL< :*tyG;H>3iDf=::]dG~ռvQH3oMgokxvLִy_YXRvq:yI*Mk \rk)s/yKFEQےp!?jkP!ƶq\rIuB_^l0\\_Vkf\n!A8iC\nkh!rJM1\rg6>z\"36K;^xWOs飤SLF>8D\"paMLsO#\$#\08>%O6O?D#lJ!<hϰ0Ox .f:pLSDxN'/{.Iem-90xePD2IL\0Ϭ~2Rԏ|<P1fH~c87w0ꭎ\njs.#\$EI|pǐkbBkA H~Le2CMi mFeb+0\r x\"tCe+\"颢qH^dMޏj7\r3pj\rSX?p\n%<:gt}CnT5Qu\nq,j(B>g~ަ,O+ C&qg1)j.5.f&/&z-\\c\\wN' r|NoK.B*2jsG'FP#jBLРlF_!1Q/J)ƚH\\hN\r0\nq'ğHȑ)%=qq)(wGs*{<ݯ>ejdF1x>RdN+j?A\nN)[#Q8r})**'2xn뒢\n8!0+rIyO`:n32r.59+sO26&*e65Csthҭ818\0֕\$\$kQ88(C*|\nĩt9lVO9\reo75=G}s}\n6P>cD>DْJO34e@/3\nQ \$LKdy6z-JnTCtgؾ6&,zR1+(³E\rԃcϖQTA&Ou+\rVŋ8ࣰGp3#\nZ ,#QMG*\\Gf\$%M#@eXꇺ\"\r5@(iP&hQξJP?\"IC,Sl*!AT\$գBYL\"7S\n0NChQBc\nȉD(2MWNLװngYWkQJeYF)Xu#\$7XC_GWç'Pe5da\"LD*0quqQ3u\"dr5l+3E[mJ6MMVG sKROcD:a\"Y4ʍ=_i!?cY\n]bR0j8a5o<KODg Czc6";break;case"fi":$f="%(i2\r3 2Dcy6bHyl;MlegSnGgC@tB\\ 72 aR,#!j6 |=NFt<\rL5 *>k:+dnbQéj0IYa\r';eHmjIIN_}\"F=\0k2f۩4Ʃ&ånap0i݈*mMqzaC^m6>㞄;n7F,px(Ea\\\"F\n%:iPn:lنhA7*bn%#\rCz8\nZ#Sl:c٨&0p*R'(BJm@0@L7E^ԥ+G #zJ:%#`#N K`!\nBKJI ҕ#\$;<`2PI<c\\53D C93I\rM'&Hز&, !`@~M\0G4C(CBh8a^\\Q˘\\7C8^J; ^(aض\r`x!R+#;#l@'λ@S!r52^ر\r&\\[O:x:8fMU*2II++-æ`\nH p7hiX =j3LY=ݬ3?B#P\nN9+Mb*q?`Ұvidd5XT(j{!s#cm%2Nl=ݼ6İ;?s1{>Sܠ\" * [ÁNfqV#\rZ`c<vSYZ3\r#:Z2#\nRu=[!r׳w5[d<,<˻E;\03L(Z@3B/[4=\nZ7h:E7(EMNB%šELOM@D7`ĔsyBCdI!\0\$\r S_,<5\0{ <\"&vX<Pl!4PcfCa\$AH`u\r(!{z(ŊKb\"Ԃhº_,rX%e^B6kP\rq-DTj\$x\$\$œOn?H/_6ػ\$H|C-TIDD\"mq\"hպWj_lyk)fP|Cr(+MjDhHx`%DSjŵV\0v^hjJIb#L![!CRsaFk3 T2<Ɇ@]!Q`eO( &/Oa&qb9)/@\n=fxqHţH\nM!z+IAC*FW\r2% (,\\&T'B LЦ%DLɩ[iU\":E'\$*e3g2!mM@rZE;j#\rճNc&) ZyEH\0[죌?IHnAݒIw\$ůdk3|aƄHvW-!ρ,½G,ぇH/e)Z\rhGM=bP4%H(jJPͱ\\=`l}!<x3S(x #(8Ԗ+R`cﬤ`00T2.A,Ix\"HH[.l.l8@BD!P\"P@(LfA9sqjEdf@e-\\rm \"va\ry8 Q<Tܚ`ۊhk37ZΪ%SmptL̠tM+dž+%[49CrʴÈq#4phy34H5C\r3\n.4\"];\$YSJtdf+{\0)6a7&\n_\$<탪dMkrCݷI!]^hgx+S\ro4D\${!RgAL\r()D^WH@K 6M;@CnIF^IZP<Mg~?Fāx al4Ȇ#.hiνxbGb_\n_L=:,N]ꀃsۀo7dwǰ\r)bKӞk?<憺+=9jH7Nvgcn=a*~LXXle`78I|f-̤K]<e'EZO}2ddGދf\n\nquWNwˠaWK\n 'Gw8479j9/YI͟0 ES'iR&(WhXo*cb\"A\0F,v!\\XB(aL,,B\$J+aP6g`D0\$E\"ڭNc cgt/ڙ Jjk@LODpSpKVƾ f\0ͯЏ,\0>n\04IN,O\r)F\$4.+\$.S.pMähP\0',jN]`dID!d'@ԃ&JbQ\"3\$\n,q\$.zBj\$@۰lFKTׯ%8T=f3g!D\"bbbϖ1)\0f5P^1d\nq64/q q`1+Џp_842,(`\n&\n D%Bhc#\"1p R\0^\0@hfÔe(s\"&2'b'ǂ2P6\nf\$)`Pg*\0*L&0+CNet:r-,ҾMf0cB%P\nr\"PoR1ҋptH \0Epr!\"R sF3.s\0\r\rrS\"IP\r1mM04\n%<Kq&R#a5c/\0F=cU.P\r- 2LĠ2ׂ\$]'\$~Ry+h\" <\$4#J;A(&dhG)13Nf\$od2?/d\rV6xK#o#hJd\np'G.RD1\ndR(&&f^T|#0:]Go\$& G\$0(/cX4 |+6ѸcE8%KO.\$LԅVD/,H['\"-Clp4LCLMTM^|`7ҫ5EʩJ'\n Q}@@KljM' N<#\"pmRX ̆@#(qP*68\06UDl\$7uF5B0;-<H8iir-@F6O,-\n>d\" ";break;case"fr":$f="%(m8g3IeAt2c4c\"Q0 :M&xcC);fSF %9ȄzA\"Oqo:0,X\nFC1l7AL4T`-;T&8̦(2DQ4E&zdA:Φ脦\$&̆fn9',vnG3RtBpv262S'I\$6N\r@ 5T#VMKxrrB@c7iXȃ%:{=_SL\n|Tns\r<36΄3P\"Ln7;N15h#s\$88!(V֣p7FP2Z\$\r;C(2 (\n)`Ep6L\n\"(ê(c@a\"\n!/L\nL0PI쒜B8CVʲ).qT7326l9ϴKdXPT2C0\n˴J\r@-Z20hʿj \"ҵ\$A`B9}42OH\"N420z\r\r9Ax^;܁pXn,3(C,2`\"cp̋%@|/pŔTa;^ılj51Hؓx'*#(#c\$Pv6h @7h 6C5|<K~hKbL9A6}B8\"e-Dh?Q!:3;4Ϭ)M*)y\\ΣlH!vnj&\"^&;02D|/)vlUƨN8~eT)\"bN>vI#p-dS8A2h' E]]a\nR>\"8ֹM^!V6ۚ\0ھ^Q#0\n !0bI\0>iK!6)dC6~7,\0n}wPϙfFx%w\rX L0BTBGDvT&0<oqP5 lU#\0`J'u\\U5FEC\$^H0-)ꗃpk&\nnQhF [m-żI5ֻWzoKTxO\$N)\$2Z!Eb\rdv:EZ3EiNX:fMպ\\ksLb]%C2k+._rh]<f2حVgaFBhDV1! JS<<DjXxukA2Ml4JMk7&r!ɜTj28\\H\n\n\\u\n\nr4(Ň2i\$*jɵ|D6i9JWmpZ&Ѷ(1HYxyk`SX[\"C%-HՌuJkX\r4ՃoD͝}պUBo\rk02*HD^IdVe*TE:(y\$Nq2KHYhh(uTae64++i)JQC|63x9-BeIhii6\n<)BQwY?*\\5NZ}Kz*\rn\\KIۛ'=XӲG`HBhͱF7wf\n&@A\0F\nBb˃W't]H\"KT2uDRShgPic4A<'\0 A\n%ЈB`El'n\\qR*\r%s'qDu6՞ԼS\0T+nk^mY>BN?)GM&EաǶl4&d*FaSRͶ7'R!D5SD\"E\$4\njEʟv\$SC1`ʣS;(JJm;d=`(ANuԸLlmlS66\n)OPI>_7?al;fY7\r`&Ii:̋T-Xb)u?\"ؗ*1S幫9Q3z]o)&k1ԲmPEuK9*tn]U*(!AFwucƺ(t|P7h*@B qG Ί sx4N(/\0)Pa#>ɉ4[bRc8\"v:Pd4xyE\$o\n輗x,mU^:z#Eޱ%y9I}ѓyohoy?9Eeo|TFNO~[!r#VlrEn\$`s%\0@\nONB\$3J_2AC1+;3kF \"l^ϣ\$jON:f&fR!R(prF\$}ͫbKv)fAҚJu~bW\$а#p~ЖfPu\ng2ORL%^YlBPqm0.#ց'Cf\"N5p`Mw1; Oz/i,_HiE\r lOĜ\r-2{9p\rYqXijQ`xJQTX0&%fkxyGzP~O1D\\\nk\06-B0)q֏qM/gj.q p̄_ꨝR 0b6:Ő'e0x^̊RCr%bVCCN\rz.FGl>iB VJO8k\0⎞YrV5\rd:d\"\n2p..Z>@0dR5 1\$d-\"-p#S\rb\r_.2Nѥ\0K07-{/S031\r 0S>72fjB\\PfUeKƢ2t#Fj@! pa.[0\r3ts.pVr/3'V_;4ղ+O9E3=:DDT\n800{-;8-S&* %<O;S?AS?.0k81X21Δjz4\"\$)4D BC\"mCk(&MA5NwDCTa<;KX鮊50yA,莞{1&4uHfA;An~tqwH,I.O,n1L t0ArєLdQHHODM#s ?qUjoҲoC1} (3Gd\"!hnx;#hkRP-QPaMOQƊmE5). )l\r0\\5C9/AclGO-F\$8␥X2\\1J\np/sӎJM7YR[Q'!B\$.='m~N?'KdU:Mh#\nO^NqA㮡!WK|4rY1{5V3k'q2pM63>8~UӲvHmd\\q 6F_d،\"emU𦓔eug©d\$C1 (<%d3fí-B\noo5M?lŎՇ1lW~A>c\$֑ Ҍ*D\\X/&E1R;ІN?渵eb4lqciIp1Ȃv\ns=\"@\"T,a\0NkJ4qp#";break;case"gl":$f="%(o7js4Q9'!@f4SI.iXjZ<dH\$RI44r6N\$z 2U:c@59\0(`1ƃQp9k38!uF#N\n73Sue7[ƃfb7eS%\n6\n\$s-]BNFS z;bsX|670·[VpL>&PG1\n9llhE]PӒq^k0&uQT*uC&&9JӐ: @9c2%#&:¸M22CIYJP#\n*4*\r?hҬ\r!)!:C*p(V҇4@7(j6#ç#B`%*~ԨJ0\\6<Z(Co9+dNJ [@i@1@#\"@M:64L0ȠG8As\n43c0z\r8a^] i\\{\0UlJX|6.3/)jx%ʉcүn ڏz8J#d=hƧMRW\rB=<,\"q?B7.0((J28+T6jJv='#7O\rU'j\nˬ&)(G<ws!x\r\\\$#;631lzqjRzp9.~R2BdbxDN\\8\"y`lNOC☢&U\"7j\r78!OYu \$#4l۪9صto-Rn(5\rT_(6Lj#. u/c'b\r YZLf9!/\rB9<ͻoP aL*[T 먒)~\\>\"DOXgqnF(jҐ0h4p鈃Q4uғQ{JVQnE\n0))6fHD >@A`\$zM I\"\r`S'Q#z!\$-vHa[q*\"C@dW*^:d,)}[qS% \0002/(KlH\rd*JC7dQS/ӝûU0:b\nWJ_,#Y-o~>R:Z~m-t(S>(\ri;tD1B5n b5F9H \\S)3fSFP0bqגaμUlj8ap6?\nxD4aOe`\r\0PRI`E!^DH{!\n VG\"a%7ԸoSx7tɀ\\QdĜJ/@\"FNv&a.Oα)D赃U5Њ`i劑@6D50F}(PB(nB=H#ӈ'IoM#ipM jPlBDrC!b8YcDˆFj 7DLzإW%Y|Hu̾q`BO\naQ\"qky\$nGŔDZ8fvq)/F_P\nBM}(BJ<#&9ki -%zP(veZGrM=@_7x>y(ɽ@)i 0BL !h *,p \n@\"pA%A' q>)&\\_<oY<_A\0P#d(fuIa<8]^Z;G*z.{^ELǹC<:f,uə&;\n*Xbjy\rɹTй@#sjM)\ryXjQ\$L9<(T@qIDzH[\$c6pX=|%\r`7a(T\$1*nhJ+֑SsjH4Y:<G<MKK+?ט6 ?H\0P<4Sߊy\n<{^N]0Hk x(05LGj;fmP9t)]AIU\$R\np;F?T[L\nS@K#r14Fii{Lų<FSNX }>6.\n U\$¬j6A(P]wxIPZSuKƾB6J^^WhxV3Յgx*娪\nOFwe^ 'ogU2eg-zJ1sFT\n~- .J8S`ĉwλKUx<n#*lΈ7rWiR\"KuƖ%cP2,Jo\0\0O'\0`F \0Er\"C|\$vxDe.pEOg\$\nRI@ʜ(\nLL.OB\rMŪ 3~'\"ZCSɬJ\nd@dB\nL\0ml0XI\"F9\rM\rwbѧ\0pE\ruN8}3LM.08-5NΎ1*Z4ʤn/\$\"/QbC\r.<Bdqvi\r//.Gf>+y8ZW`LCBȆD\$^Gk\0\0@V\rw{\nc\r)dp<qM\rwL1ȥ\"u#C!3rx_MP\nB\$2<\$r@\n\$p@7 KO\r͜ހ#\"7qK P\$ҊfI\")e)Rנ@hLq(&8+R4'+dr˵zB>P&\nty..|=sҳ/%S/Z;R0n\"(b/1 2/92L\rdx)`+,B3>Ϡʄb335*ʄf\\wµ4ҐQBv2q1Rl +qm)NPD2S~C93s`9W3383/&HsM%#SW*9R9<@AbFw](I\$,5+#p(cB5*&=cHFO4OU(\0Q@\$t*`J `ƩƢ@3io-v1E'\0t47+ހT\np:b*t~\",!(xy+?2v\\cb:EfTM묩)4VTy*\"QG{\rN\$KxHC>&Ԯ%)fa'oP4@DACQȋR\r!PJ% (b+\n,SQDw\"B\njmqKiU,VWQ&A@&:\r>~RiDʕD6xobL.)'YTM\n\$^ʐN[~d&j;1jw 9\n#!\nB\r";break;case"he":$f="%)kƺAAvUkb*m(]'mu]2וC!ɘ2\nAB)̅E\"ш6\\%b1I|:\nh5\r;*bJu<UBk0i]?F'1eTk&G~_&0EAd4U¤MBi~ŕ\"U hn2\\+][vGbҥE(ŷMƳqnNG#y\\\n\"Ne\rStN/c2<\$\rC6\"iJ\$\"k'*V*Z9гw3rk(@s5K%L-LRk{0ͬ<Z\$\$3iH/4v-ry0b>%zZHiR[!1S3i|ľ# 4\01o<=s;#7?\0yK3:xW<<As3(42z\r+<(\r#x}z6\"ݡRT#Ap+\$4ɲ#J9\rB\nr!MrO!B&hBHJ9f9/s4(%z |dkw!S#\$),\$ˋ5E\nH0P,ȢZL]JJdlN]6ͧ7R,H(L7mJ{\"#\rs[c78R!\$2Kf\"z^2_8q9CjI[t\rI@6Ou:{ChZO?@93\r#?H22O\"\r#6><gp+,:\rk\$f#ۿT飏,|*\"9Z8\$e:Q%(d\"'. 0hBp!\$4Ȋ GI\$dradTjSVUxwV*`/>O\$:,v!,F0NX%F\$2M3@PZ3mNSʁQ*ELRUC̭ʻyD7=8~i1)7rDI}\$ԉ3rXMKkkcQ:d).VlGQ%@|=YHd WaF00f6T\nH<)^LqvTk3`E|(A=2%`ryp7(r\r!4@,>-)@̛_\$<x9RWxx&%\nUL h\r!49jA!0ʁ_(@8_N,t\$E4CN8 x fZ48 2(@tLqbAT7zb-N='nIy\"hNLC\\%ҎIam- ?\\\$\n<)JDf12\"`|DJfi2`38d\"} \"a8:\$8KHCnoq|%t95HfHQ!MJ395ceI+6 P7TZ0NB&3N jHRa1#Br!o)۲A]˛xL\"240DQ!7UԔm35n\"`QJrXA3|g2}QỀd3nf꛳~Ғ_,CĔ \rvfO]d(\\b9.!]&e>l:2C+Raќ6)/9t\nlH +Il˩I.6מYF82^hS \$ \\\n{_\rxC5PQ𤁗J[H\"rH\nan,'`CDNhW}f&q9u15E0l;) BT!\$0羂*#I-e<E (NR3 ,c\"D2L)ݿ-\$LվJa\"'LTipkbm/Y.H*WKX4+jPQp(V:a%\n!q\rT;h:PxFxPH!dVi3LĮ^>6:2)vN6?UybѤI3,fLV۟GXg8/)\$%</cFmi\\D<[pn.ni\"Z=D\nK8]8m˹k־)Lp|⫮`;{N/ek%uy&\nnk_ss;];c#S}7 :U~~蜙V~+\"OobC6УhƔLd%D~B %x/~'ĨLԹHBWN4PK.!+,Df@%bO\r dn\$+eHBBnOMt\$ \"+\"ж0c0/Hfq\rH#~ Θ-K@M1nlopg0g]m\rcefFKH\$\"ào\$DepoЎlqc\"1wGz\"MXQf5DÁ`օ#ܥ%t>/d 9 iSM)C\r3 \rh.\\7H\"T\\1\nFA!@mK1K\"Kn:QJ /wR# 1Olzjxg2\$*,n%6<NAZ7\"%fB-:`VK8А|7*\04N_}r@Rq'o4 q\rr-8x\"j&.m\"-3D%i21FT+(&Z,1/-կ4ijb0^\$~f*\rP'NCϫ3D!F0N<4] FA4ʷ(5L#p\nRd[\"0[jj:P1M-~GF+ow.\0(hqHc}jp%liR*oOJs%65b\r<@GgXc9!L~!.\n!";break;case"hu":$f="%k\rBs7SN2DC3MF6e7DjD!iMNlNFSK5!Je@n\r5Iz4B\0Pb2ar\n!OGC| L5\nLL<n1c*))`k56Lԁ:'Td2ɼ 4NZ9@p9NƓfKNC\r:&hD7, *msw&kLxtl<7cVAgb=U\n*GNTT<;16B5x73Ð7IPoX6*z9C;\"TʑR&XҧLlR*\nh\" Ȣ\$\r##9EV/BحCacz*.6.51*e,\$HZ8x-\nձ2RYBR4{{93\"=A\0 mk\rI1l(\$t 1BA\0\r5L\02\0x\r C@:t㽜4ґ8^!xDl.46H7x%BR#b/5c')zh˯n/& aaCR'@Py#pη#ΓNC.OD\rC'װsk28>]6V- 3#6ר2B[dì12֕:v3>9V\0V@zl %pbP5+ktr80&W0LEL\njeЂK1GH_#-juD:=(6-3#ű#mHkx<zxZGJjw ܕ7@g\$ڞvPG0CvWC]a4pN>EMh0\"kl}<ܪXs%A0Fi4H%MYF(r4@!P3N)AAzC#NK?9\0T[` E/RɪPU@W8BXd,ZD0-Uy u} K'dJA=6*Uze\rRjT1t?\\-tȠp\r\$+*Y+-fc~[rB \0HH̉!&Hd:96H e@hEETr+\$ðS\\Z#HL|#r+0؎dQȲ \$>U+n ȉU7@a\r+yFMhE̔I#E1:^K,\0(0gTVȉ*AO5XY\r{6ّ=2jpU^ܹ\"C&IFz>\nhjIU01bW(Y\0\$XǜVjiNJTRČ=.ZŘ.,ȏ#Ɵ0+%3 S+2tSk\0p886:(\$0iI5]NËSd3 %c 1jqoţhP L*UszA\0C`پ?<zYEssRݹ0tP76IjP`#J`0zs<eB.s) g5g8\\Rhݹp&4ct1[/f!8pj:b1pPze6&щ3%Je>(&4L]TJe}שᨒhPNzsCȵ&N̹=PF:Gڲ,(Y1 g\r-?W(i0p5zy%LQ+:D0bj E\$~egrX1e@K\r\"D) jevkwRQ2f`܇ |^ !m7\$v熸js]N\$kW~#fh1ٽ52Sl[)rF= \0Ie9?.\"ӃB^\\Le?%2{!P*!vP4Ww6#x:̲p^U9LuPfTCvMZUYNU\r}D%Va;JoNOs']Ԟ#^}v\rOo=>s|i*=yMInu^\r}Q]*|Džʄd[17\$k哔\n_&YM/3 8eGJQ\\Ln6L.v\$x\rX4]]&H\\iŶ0C0@049*b\\#5dm4¬Na\$G1#H#MyX/ffi3D{zl##\"QN#C\"`Bz0Ƣ~-@^flm\"j)@Tȭ0Ll%*.ʛD}\"dcGܦ.fM\r>t*HrV,x8\$Н̌8,eB\0wQ@v'wdv'q&1@vgXCRf\r.?.RhDtQ\\1bipnc%not61x-6:߱:8߀آSL5Ѽ#lM9iFd(,K\n@2`t\")\rez\$\$s1̃jgRWf<eLNԞUѾ\rQƎnp%n`Q1PZhS&I'Rm;(1Fw&e*._0M)n\\(1W*Pa.Z\"2,;һ)\"| bT s-@##(o,V8BER'\r'm/(Pf&kr&ؒ;o,'#1Nm,x3!2Q+2\nNKCR\$P)`A<{C5M4GhsFAsk17^R,>0/934PA92;ӠhNʮ!dDN᳴?~>u;#Q<mSH ⳕsS'%90h\ns44D%**dOB愯1w*Ct/326H3R%c o-4U\n&d;\r\n@ʾ0/Fh1G0~tsHoGfO\nB;\0oABT҆EQOKO?KL3_ k+]eZj-r! ȒET\0\np%QrCcHU&U!\$Tb \"B(\"\$},g0\$BI%;NPaC@0HO`:8*øAV/0, ~m~dEī;Y#C7\0g`\0p:P^`f~;ntbD#B.Hp4b!#]m]]c9.T5AhhH{u<Rj&-\"u]B\re`s n eEk\0gT\$V8F\nNv^?찓2F \"4` CTad\re|^C_\"e`-ah^ޢˆ\rb)q78)Fb,3-afF@\r";break;case"id":$f="%(i2MbItL9(g0#)a9D#)rc1M'I>na&ȀJs!H\0Na2)b2ar\n 2T~\n5f*@l4цa\$E8S4' ldu'c(oFe3htƝ\ry/s4aUU/l'Q!7nS>S/W95&n/x\n\$NX)\n3 Щx(6ǝӑ\"\"CiߚyӇ!9c\$9:A*7;#I0X\r|iR(ڑ+#:>%:068!\0AmhɬjBS;87QZ%\"m N}kZ(H)\"8m \05Rڗj6>1`3XƎKDâs?`@-@2D49Ax^;ru4\r\\z&o2~\r34ƣ^0\r( Er%\n5+Ldtt+sx\"7?9X6Gzį% )w\$H@'B%0b ;@%׃@#\":Z1q,MXJ(Q\n:}i#.#ㄖ4)\"`1Knb4J\rr+!mni%~(2l/=BKTZs%jh6_C'苨Q]c\rO\05po|!0Ҋ|0} &/+/<'1; ,3]V%0BNƍ0̴SP7r\"Ϝ:AtCEcrrܵaJKID*1IYXx3<9PRMTCEѴ}\"ԪS*mU@7*}rE̒cʆ|H%^i\"Kƀ*SvQgCRYLu4T\nWNK\"Um8u䜢9\rq/0\\#CЖiOhH1XHf|Ɔ1DpȑDau'CYoy>\" a\"@1¸P::bRdHE{\0\n0JA,\0POL/@8ܧc;Hc0Wk&C8yFIDc#/B84J73H\"Dƌ1ԁ)41{Q') (L%&^!7\\êya+P@ c1S?JD̚y\n\r!v@ɇ&+7'\",C<MS,5О,!d@xS\n9JI1睌dNRL\$r9,!9E6utr@ W*[0T EʶpD&G\$)Ȱc^ԲxxNT(@(\n \"Pl@\n Wd\$2D\rRe*H%]\r9vH02X:gUzʏ/I(V+5Q\"R1V]0OQ#jAky<lc\\*!R\$OӔ\02%?Kh/\r\nf`_%n=0wjG2Xw`o'RȾXACL9İIZ/2;l^7NMqa.ڂV&\$7WrC5CCK145iq=G5m62O#jbL&x\n\nFؚCkJWK\rta Aa R6xf\r8Vt:XdAD&1%!e1ق_Im,TLYI7C#ni\$U-TwV\nh\";S%l00t+&*ΉkrI(T͢Q4BhAc(HT5l9eTGBiD2tZϽ=֪3H\0ԵxG\r-DpޫIЧfw% 겟=X4BHnm('k\$Dt\"P'{2;Gat>)ZeO%\0CjnGo*?[#YCۚ6ZǗEn䡧cK}[Y.fc.̮#V>\\ZdBM8txǵ xV>o+}c廥\\Ϟ4MD%crqNH5`Ժ )uv[\$&fN1DZ+\"Kܖ^D 7g,v6~y_BO b Y\n5\"ow&G=`+ZBKk(gj:@ƬfJ-/4rw\0BEbpp,L.ox#G\"i\$,I`d0=JkP\$|H0B牆~0l__*io=\rk:]N/\nY/{`@_1\"#(|G̕Pg`I0'%0(L P\0ovʐÌ\r1EЅ B[FڊL[dP[PL d)\$pt|I캌Px.ͨ#Ѱpmf_\$n\rbzOL<V\rVT!bȫ|Bx('ODJ,\nZ<DZ\"D~<D\$FOWJ `,fCb;D\$#gZN7*'& X\\EZQk{&t9'HH!CFIK|=,.Fb,fqe*NTbLwRkR`L`NT0oЉ`XdheL9e\"`[/ @\$R@I\$°@8pT0J&-%*<;w**2e.`#-@\r&4\rdNnN+dN E#";break;case"it":$f="%(a9Lfit7S`i6DyA :fL0č0qL'9t%F#L5@Js!I1Xf7e3M&FC1l7AE8QoS|@o&dN&(fLM7\r1xX(-2dF}(uG&s4M\"vZgZ-(J.WCa[;fʒ 1Ņƭg< gJerKDSd׳&ZQT\"H&9:oS!W3G#sѩ8Lg{AL%,BRP%&J\"tjh@e:H\"=@7c4PBʦB87f*\r#&rI`Nb(?\rã2#^7D`#Ll2\r[: #1Ȍ*\"=%/i(`@%#CH3:xK7Ar3 _A?o^'laL3- x\$³\0=%tíM|:+͚/K0Y.5Kى 숢,7/ġ(CʚWeܥ x؎Th^jXK(\\1+-B4֒\\Y\"30@1J!+ޱ4J'N\$Hr'5;3lX&1<IcME ^Z9%-]~#pȈb,ﶶl={YĒ0Yl,I̻2 #k9.NˢMkf\"J#8(٧\0ڐ8T`i,05nQHIWt0.hH35=#\\LJLȀS9HL ޓ7l\\3YTȗ%A2P{K-=xͣs\"g(}-~ŗZ cɾbl!k'˭|wL3\"MH0<`dCpkt9\\8 *m0%yq (&TzRjUKu3\nJ[\rT#P 3&T0aKF셇'^yd@fHn\$g1SC\$W:pRaM>t<\$:n!4!)\".0&͘АJq'#G)n8֝W(IAc\$!(Pe;nr߁F괸30eM&i0α^bDw80È)4@D A\0P A86{('क7t˱'3r4OmdNGtL^,AntfoPUf)EU5'Y!5P7S\nAL@*-f`كIoɐ o0_KH(ș:vOqqxPVhȍB Cd|:*OS%CѬ:y8BxS\n曕\r3=I8^ՀЬf\0PPF%rC;DiDh+\$h#ILG{+*&u~4)o'@BD!P\"z E a3[>V4VsY(f052e1XL9[椵PZ0qSZs>\$ՃX_mw魷!4S!27tHww'b-nHnlhй3f_MC>uOH#lY_)MZS!\$F=ad@CELlk\rq~iD(5բ#+j~P\\ggJkYh\n\$,RA cD!&Ӡy+XRJ;0I|9˫ (#+6|LM\$͋a01zh@@ d\$PGhro&E4?^\0R-!x.҉eaYI9 -ClJZ&&t\0TħlmS6}MaN(M˙vi 2ݥ*]Z=y[l=%ކ+[\na;@nqr40uE?)jeV¥ G&+d@8'&sY+\"3\"rY#2YAr`JE2Yy7[#V\\n\$SXcBRs&}hS^\\\$Fo+tJ 9B''E=\\&~|s=f2F⻉7pyךXC3[tjT랫iF%[3zײ\rGwVz>Q\r_F;gV6S2ex6Zޛ\0nwn?;N03=O/k ^-ni@6&)ڠʕc\$Mn5OJ6>\"d.#N!IFK{*\n(&n0x%ܡG\0fR\rR\\\rf6mafʮ\nc_Ȗ<\rJ`Ohb#\0%=@\r.k2\\mob\r8Mˍ\02\"ҽBH5M@,be%+&R0&@:YEb##8HMc^bQbW)OQ\0OD_EfGF=ZGW/& |iШwh&aGͭS#\r\rhj&e^ad12'N.^L?Qq#İ9c:#@3'(K\rLLr'!KQE#QK#xP\0\"=RSr,8\$&dHJq\$I<R[^'B-|]r0ʬI]h\"-hb1M2B'`(rҼ\n,%,d2J`9`:0逡oac;%^Nj Z%mvKS2iBbL}[0B@&\0QR5˿0 *:)0\n<L)\"K*kVU r>eR%cg*\"#-\r7<.F,bE9RZ\$Ӽ4B;>rFӱ9:3:W<S<<\$? X #EE@FL =Ng\\FqdC&:E/Ն\r1> X˸s+&Df07Ӭnmr|kt^\r^Mnƈl tΩ)HZb\0#";break;case"ja":$f="%:\$\nqҮ4(b*JqTl}!Mn4N I*ADq\$]HU)̄ )dt'*0N*\$1)AJ堡`(`1ƃQp99UB[Hi[x9+AFCw@~UM^_PPU! F^!UМR<I'2mhK,/P[PtRW^XEvu:kL[&| W~G*)Am4TO;%~sC\\10G\$%ReK8myCd~\\#%{A Vr_L(Ce\$\$i \\se ^1Re&r@I Fd \n@ư'HFĺ-:´@ĩ`y.R\\DNK,U1 )dDK)<EpAF%U%J!1<AMSOG\rp<A'9PW%\0'H1f[Du_5l3XVPNAiy`\\<g95Hk'VȂ2\rH2QMD-KM]Y@@GC1R1l_͒x2\n@4C(C@:tL7Evx3(9pJ(|t%Z^0MW9tze,2I&dKzZ1\rnܧI7QP97{ҁ8sV)\"EA(ȤW'JhM7ѻ1\0Q2U9@?GN\0sPKSa3.sQ;%vs}+'WF[hd\"^KOi/?*[KJOHMeH)\0P(gO!<E2w9\"zηJNO}[,IW=n;\nPn+nspX!>re5Y53%FiBL Na2fU7J\$HEÒn\0sgVxT!J,a:7cB\$aLO 2HII0^HtB {bIJa-#,K\r9)U2BЌ([a\nJT5ZkED\\uAbD1B5oICQ|dX\0ShlO3j#^+uҺÒB\$\"Q?t1Mf(@cWlMA.Bb]:#dX˙27Lg @p\"b;J!싐Lj ɫ`BpOw%Iڅ:;Y(y\"tR(%\"T g4Sm18Ǚ\"d;U0k/f,2̃fl!]EA\"0)8UD CG.mΧ\"'1znb\n~(Bh &+Ղeu_%b '(D9jSaHů@DRF\\uI\"tBM3%@PHQF;2/K(Ϲ+ů+@%Ut\rq.\$\\d%!!`)\r0j:@=QJæbEI,%\nD)Oi)B40Bs*b\$<#ʮФ^\$0#q5 #\$o:HX!TR%G*5IhM@@B`UW*Ur}ABC\"HM-]~T(Ђ\\%b**+%/U;4y\"xs!( R͢}cLQBτϓx@Y< e2H_9~ %bIw\"\"Wӝ3KșXrfRzd `P(qj# Ƴ25aVdIH.v4K5QJw \"\r!E;v]:\0U\n @x &].\"<A9励Kx1SS{OyoJf%eWuFLϛX}̹;{\"؟PVoIAb5zԟL)ˋcsBHe(QTR5\" BF+0c4ZآBEdS}ٰ5*O&0\"߈sØØ\\7?´ty0BWiraɷp.Z\"'P1-LclbPugNĩD^%\\ZvmJf,)ls{=߾1AR1BO]'C>!6^FHJ>{ׯ qq}RCU/j@D?CF#5Lwx<GaB~f\0^ocLRf.jU\0\\NT7*lIc {i(E6Gjꎲ\$c14Cdvr1*FZ*=oɄՅMbLo\0^cn9pj\nExD>,^}0+\0&ˊmZu\0!~.PH0\$lb;43<lmg Pd,q mCf7f8,G\01%@:DŽ,k*7FR.614qcol|QrQX7\"Ғ,{JrG(0*/b/DDh%Wѷ1L`qrc:q<O6pglԉX\ns|\nq+1BB4DrX\$n\$,u-!3 6I~n1!#lQ!Q\n'!B}L%U&QnkrlnxMcnk\"JqdǰsMM])j/]*G\$u+.~\"k%u'\rZ>P\n nS_2>c!G.EEQKcPkg̾ML\$2\$3 r,E|bSqlT}hJhjA0]j#,N6N6-6#2RjRto s-R)g9fZ|rw6Df0!jAC<^@LP;G҇t҄!2R:???T9?;2VnfTs>m| BBnFQ%AfOqR\"!Tn8A/F!FrJmTSr`C4x6T/TJU%VRr[9s-tTeJ6OI5F9JԘԟ<4e!''8N_%_N/kNt*p4@ANNUN4EQO62OKtµ[G8\ruSu/\00045;G6sJQRM%IOsV-VO?5Of(\$O(9\n6I>ApՊ-NAtXoS<Q(Hq[`@rl\n7}lh\rV\0'(I~Hk d\np)3;(Ҍ@A\"((6V-4z C`GB㨷Q36/?`(!`mNe0(N\$0ֈ4T#>4\$%b˼ <)\\jc־\$ vSVAǴ!(Q\0005n[UQLi\\Ň,UamBxtOfюf[2CM4+rc0bINLl!6~Y7\0o\rk:>UW3'8\0jw2SZ%`mO3xp#Cz`%HeHNQ8e|c>OKT\\";break;case"ka":$f="%)RAt5BPt2'K¢:R>5-%A(:<PSsE,I5AdNi= 2i?cXM\")v@\nFC1l7fIɥ '\"1UdJ .eiJ\"|:\r]GR1tYg0<SWµK{!feMs'Im&K=e\"r'Q+˿}-<^}nnZ,:K<թ;SV\"zq=o۳*#\0LDζS:-JsL\"4Mi(N\".@9Z7BŴϻ&Vl7RRrF\nKt-Y(˰KpDLΣ*x# Sj2S!RL,*ʐiDO/ۊj\r1ЧK(N#VJsR(TOTS)HHE:1 %iRՎM%jtfG,>C*^͵LYP\\t6\$\$5;b6#p9J:'TtYRoe\\]J[@4C(C@:tD7{x3(9PJ|(W||MQjxTӧ dwmN =kRzM;cڮ@CMHh<McJrө*m\"+q(!1lmNQ/O.U/]03a\$?VͭsDj6j7ZNC-]%:o;먿yoGں(Ḩt=I, Bh!f ĥiEJV{5fоꚋtzܥBb-<u:ގ!?<+\$L\$j(6TUs샇jfnYVS^!+q5|I2#% ^7& [Z-,̦!8mFX0eD 7\nQ4dBT\0m:1\0Θt7\0CrA<LX:a7`e1ꘒI4Q<%mi+L>CX]¢+EeV`tNбh}d(](G1 !4xfH&D^1>R8\"N+K%gܕe T\n6|CWƄ*fW *N Dā+\nro)an}\n8i)vJ{Q^K{/3l?ӭ`JNDM\n>LEV.Xc셑YS,e2G@Ltg· mm6=c%b-Q4MSiz،vB+pޥ!4,%zSz4h\$\"F(Lގ\061F,ćvHɧ)elPps,:HީC=b&Rby-ԙZ鳒SYgfI@IũBCT4˧g&E&dN#xYqX,-)xPxv=\$LIM\$3H 4Gt㐶F`2O\0L_bmۻCN뙪V\"+Muwj.\ninzs\0L'[H?`[VOv܉QI>&jiAC\naH#/T {#6H܋'A7W^%iڒx)U15ymE\"K?v2X7P[PGB@%{R-Yp\$0^xʽ&l{ Ph\$ַs? ¢4(\0ɭjUt,bKtSWdJ_MQ@e%Oe+sձTS`a^mD9:\\?JD3M<&B5oM7MA(`ޫֹ\\Sa%lIKcc+zI4nQkQw ʽ뮮2oHS>E 2Y\"p'%\$x2.~DJК)>t<0KְiU#XZE|P6@>0SH'2Xu;^w5Qqߖ0uBHo;nV]B+j]|ql^a+|Zb #E:t<`od\0C: 1Zxt<C Y\n^si^QLrR1[ƪQJOt)nꍋsˣd5nzNpGf'/!4P(Cb|2\0y2}xFL*\nBɶM\rZbeGvg-GZU\0`)P*Z,m0x*݊hn \n`_(l+M5gJF1fۃmk.\\\r\0|Fp @X~micDţ#(:Bxth%7 p~Ov#tgֻ!\rоV³E0DPE'ƚv\"-¿<\$.Hm%aOxGSMoIl+R8FևK\"hۉ\"yne,NƨF\"kBk@VK\ni,~2kl\\dK\"qݏx!Dюl04' mk4(-C \rr8F0Ϗjr<Nr\"8ʗ\"\"T,JXVveXϠ1Rj(i'R(HLC\nrz+F0Bi(#,'Q\0'I!#CM4ϔ.ش\$\rN\r G\$nWnF#!CN. nr\r,h-7@top2f&}0(nDj1\"ݓ\nN:-Ma-pPE+B 3A!\r \"\r\r/x1 Z%j8\$O1;\"87w9/m'fFT/v#uG۲R\"3(nfZ'&Br\$,ҿ\"+<XҬAQf+nY,\"ED?mj^&k&V`W:K9/9P+?<37O!\"O1QP:hDʰq/ɟ906rfk.\"`Md{+::W?8tv麗2<ZFvi.4eK*S\rKEK)LESI#/Tr'ԦI^&TJLaNIEZ.,6;r|%DqA'D\$b|DI61SSKAS6\$556]4Jt+I-OϨ|U52^l!V5fwft%;UUD=XүPZ0ЇS4np%/\0L3Nv4k6tYmWu*tCN~%qS\\U-[S\\r6T0UQ`O:&\rf&f@@@e@\rH&68>vCdhГ%e`e<\rAdVH& f\rp\0\n&suL=ijR7FUI1i1!7uJUSr)tM+nWrrjSX,5a9JVW6uU_lLFX/8UF]5Z)K=\\Sl/rC(4ǷmEX^ r&Najpo&7q`ک<Qa@qklzb.qy5<?;E@B*mqĀ\n\rse4Oll\"\"U\$0Rp,M]?isn+kDpZs]dei=uI4%3[4W.Wx=wJX&zxCAl%m&T1X1]ZTaKGR&:܈3Ӥº3Kz2F鐶~{tY##G+aA3zd, -E{\\wx!QO4GVG-韍ذ?ImF?N]V:RM}I4}Y)%2F8]+fX,qǥ\\8(l6/5H7藵s)Z2QɜBLRwnYI\r^@үĶ`/*R#2<L4`";break;case"ko":$f="%b\nv%Ю\nq֓NU)ЈT2;db4V:\0BapbZ;aا;O)Cf4)؋R;RȘVN:J\n\\ZKRSȈb2̛H:kBuY\r֯h!a/\"]dێri؆&XQ]n:[##i.-(Y\nRO)igC#cYNw NL-\0S0&>yZP',l<VR\np7\r7IX00c(@2\r(A@9DC09Ƞ\$aHHAGE)xPv RX3bW#gaUD̸=\"V3d bSYa6'0JI`SA\0<7D!`uj*FRO+9:e/T-M4[Di0t#ZvBk*u:I Zv(d# ;1KQ1p\0\r1\rH4\r㭤ECY\0ym3:x\rdB0p_tcI|63Bl(4px!WR5=S !@vdE\$:aB/i;<\0kh:eeiU/!NF\"\$:n@#X6ewZ-E:BQG(!LNpy#:WQ+1NHpdJUY@V,ĻD?OÈJ\\Lb@VS*δ`P\r,6CC0x&<R&P<\\年KU4MXEQVgiRe97{UCOVo:.;!Z^̓RjM\0-/]qʙb'6P戗{^A:\$!史WC>lt3C,%4hHsvj 4L2VlEÑfI#JAQ5G%`_AP7( -E \r30Cr!3m\r>k2\nYV02E.hw X7 Pi%wת_+~X`Ƀ^\"\0tc(Ϥ2%p<͈Rk`mPH/%J%Gu\"/f/ܕ1E9W/]y/E_JD3aQ#ɆI\r!4ˌ7kbȥJ4ܘ͢@HB*m1nL46;PĆr9:tn]Q8\nODNi5dDRiSX(jʁ*iP°)C>3\0Oᕯ-\0 \rJ2:Bu \\b%red>Ú*Z6,]uHc\r3pAOwpX2ً5g, aL)b4!X7\"xp]7\$h&@Aԑf9HȘ>>\"#\$Țb7Gqf/\$|dR:@HS axRI+ \$<T7*\"C![>3 (ɵ,143T*d(\"yAJa\"]vHɹ9'x\nBkGPP@(/!XN<B. \nnذM0T\n2ia\"dTĈ%LREK5#y`3bc861f\"ukssxo 0< : u)ڰ\" i!aER=:Q:#u,r+R#]W(ͮݝXT>V:73\">i#/h[8@|̛clګf(L\nzN 1QP|k=iRB7uzWTNoDJ8cZBDlLXPsWN9\n XxsNyD5Dǵ\nӢݞ\0ޢ'Yf-҄=zzBhb5@=Z!`'\0PC^HRw`B\r':,O;=vURb,(sgQQ\"vIRmiZY0C \0҇\nY\".Y\$\0d/\rp22Z>hْZ>լ`O#ޓDZ9|ዚ~[]_L~k}' *FϏE~ͬj)N cOvoR-ˤ%JVidn҈{NB4gIL49`?'&r\"=;pjFM#Fi0#\"epVpRR@>Ӄ%V6lhO\noIP2¥'k090i4R.2dN1cHAF(O>7)IqAbӍPθ0\rFNl\r\r[<ٍǟEʹωol7ی4%pܱb̏|\"P1hڑcɗQ<!FCO< TC644:zqЭP\0פ 1JQJ1Ap:~bj\"\"lm2%Æ1Pa:QC*J`ǭg+u, \"5%)B]&*d 0glb|1rNͣp\"gҵ0\$an'#2,!\"r6/Flnt&D:D\"iH\"b#A66:/92C1 +:'/3-2PGAb6p)Ķ8/'4BA-/Y-d4X0b@RY4?/7s{ Ony7-.AHӈbA8edQk.;/53=45PRTs7:sd\\C~CqP\$^.>d>o>I5?Ď&Y+u>.\n84B!p9Co*<sD- C/E4G=.!`RD=B+Dn@F*DzSs,F.q@C\nl#38K<\$oh֣sd?\" 0)JB{I#b MD~tʽt0t+p\"\n1h\rVīr\r`@EoCJ.*\r ̍%%`\r'p,DK\npP/Qu\0~ 22r(#aF\\J4Ʀ#0Nhhc!/pGXL)4{R5ՒA'mHT{!!FԨ*BF=҇rFr&7dƋ)cd<R LbV#j\\.BaPaN4o)\nvC45@\rEbc־,['}drM5#Zf}qvxko,d>nkTm1-aj}v)\$`)f%,\0M\r#bnmm&Ɠ]9SCt!*dM\$";break;case"lt":$f="%(e8NǓY@W̦á@f0Mp(a5& scb!iDS\n:Fe)zQ: #!j6 rT&*4AFi7IgPf\"^ 6MHC 1Պ\0NE\r:Y7DQ@n,h(:C@t4L4:I'S9P춛hb&NqQ}H؈PVuof,k49`\$gYnfQ.JbfM(n5rGHt=. 9c2#P;\r389aPCbڊ˱fir'5*?o4ߍ`*B 2C+&\n5((2lP0MB5.8҄2!,,\")#bz_ r.\nH5\0('MTkX2\rC\r1p4#ϤN@?#AxXD49Ax^;pJRÐ\\zu2h\r#,\"Hpx!: \$S]bc/x2_>.+&͚1c\nB(=t239&?\rKX(O갂#B #pOC\"`(2We(1c~x3F*#*:9B4\"I:-RF(BbGG#K<2ÚH`յ1#s(\0:Id?J9:T6罸ϸ8h4Lا}d1k\"uS?Gg2,T.+8խ9l,b*Cq.Ly% @6Msmr507=Ҏ|(f,2|&!-.6Ct\rĉrSraDQ\$o6)e \0*Ipyrl:%HYp\r\ruAh\$͏Pσ((`J1PhCLhC(| B7䜴p@qV.LWa,EYg-y-+D }\"߀ȸϵP!iDR\$NJAp yQhWL#yDuCIkaUV\\qh81[a%BR5 r@K2PHbHJ9*ÚwrE8B\$\0cV@ejJL|0bo>Aő=q)^a\rxd\"7,e#\r%J]\n (!>(&P@\0O'm5^R%Mü F,fmԳs1[`GB\r+4,w5.e=Qr2TN:) 5HiD!9Z\\r\"v\$]q5S,:H\"HIAqsаԺىuKa B y/L,s\rN&>j\rQ-<sc|R26Q!4._\r L*Xcm%k#\rdAglo)!uVND3ma5~N5r\\%d-i)qLוȒ\$ N\$Q:\"\\i]|6`̤ʳ`4:Yi!Ü3<F;wY9+r+*\"(Ed.ID1xZxYt'~xe˜dP>,jnb5Y2~|\n70i,ش* Bȱ>C:jQR]u&GEJ_Zvb\\`f'ȅ&=2ASzjE\\g{yJ@]@дWqsUK9\$#~ ӰYXu927DYލ( * I%TnsԽ\ra{\n;a\r2CMN1\\T5}\n+3\\E\nCv.!q*d@V;F얊!!P*\n[\nJ s9g0I9DjJXseGNh=}+\"!ωi\\u4:\$*BO݅x0Qwos\"]&v\$co)4yxLySegy(ݯz`:ὠA*!Bx[IK0oh9&8Mo}:#idHr(%̹!V}pJ7\n\rBPl0HBld<I0#,P\$}E:Ч.2Vm.bo-|-fk#:a.@4PH,LxȦ*Z *ºwNJVi0*2nG|9?\0DE|8ebJ;@D(E ЬD#2!LD,`m\$,B!0P\"^bBnj \0\$ڃgDQvd,xfLɵqhu[-\rnOMv`\ng\$@l16VQ z]0OFt.p/k0!QNJ1ZEF>A1^)cpB%\"b0ĸ,FQ/:1EޯQG\$p~\"\nIfd \"~!\"*@B*@pδH\$&M-6J7\0ON 'm1fiSQɢge B ݍj<J[&FM,`Z;nz!&*R;'\rr|5QP`opnQ'*VP%?,C KQF6c\$wK(--Y-t-#^(/jƾ;reީ/o>985/K;`_\nLa.l?/</0vD}1r|K9AsA(0](=0X{n82jBz> FdB\nk8#(N(-8S.J\"9@\".|,M(@,)qP'ss5#O=N{S>n?>GB)\$Mnbn,g\0M'.݄Kru/1^{L0Tb}&?2mH]gqndHB-DD1EaE0`e&J̣gcCI=qt01qQl@]k\r3\\O\0fe%̇C&}8\nZ\$d;JM&b\"gNBFqI:l\"pJ%d?\"C\n Bm +B8 ,/*8`cBw3!(498[X,[P?k\nNN\$Am\nDԁic{0V@줴rҬYfUZK!hPq@2\romUF&cl&`r\"GQ~juCP !a&# Z\"PBC,\"bJ\r R=<-([deU\"`t Z@PP,*C5ZvkO^\n=M\0,3ǡ2*H.\\0\$M\nB=\0";break;case"lv":$f="%(e4SsLq:I :SHaa@m0fl:ZiBf3AĀJ2WYCf4(#Y9\"F3It9GCF\"67C8'ab:ǥ%#)DdHobٸuN21 i@ S0Mө_ni2|9q#{o5Mat5_6̆Q32b)V,HC%À9\rRR\$I7Lsu jCj\$6C\"\nbf*\r40mZ d\r#֥ Pbc\\7(轶O5Lhr.7\"LL( ²l:& H̢H`7Gb)CAЂL#Nb\\4C(C@:t\\4Zڒp_ cxDò89!Z\"7j@ x!.=!(PNP+(#/p于(U/\n ݲ%.RrK!YPa(A8:\r8!\n%ʞ@c]C,07C̡9)\\x[0%NPhsPv|)C(5˻-!P3A CV*FLp@3qx90(#UȶaJ~(8Mvn3_qGxCW4LC@I4 <ѐ#h`*e睥~B ϢК\"=bT+ď6c|!`3/E\\[}5AsA>猣IEİTv@H1\\fkm?7B=9Crihܸ)Z4rڇ8e p 46C|/A(HD'\"FJ^1lV/Dў\rND'!^\$!4T,pDEcm^\n Is&Dj;(A\"a\0Әl2ltz\n)FE8K:\";\nTTZՌJ9+ur caePb}d)@Ҵ &DEG)`%sS!\r%̧JW\$\$Sh[ n\0ND2UJWu`l\0U|NVa5PZ}d7dZ >sLDI9#dϙiy/\nlH!k|3ځPuAa)IPR\\J>7ٙ!\"Q3rk\n%(0 \n (uF4\"DL*+\0c&a<R!J!wKQ}yUUc\0`&8xBѴKP#`h4(܋oҧ\rY`/\n\ru23\0F77yÜ7C49B4\r}P/\rm5MͣhG@ޥ(&rHC%,Z*18tXݰ8a,6 #C{谡<)J E]eq,RX*Eu&@OC3k+B_ۤWP@b1H \nn>HI%\$jlɍ\rbCG]#%bF\\DM9%{2c.9ܬ1KN&efk\0PGn9'L6\$L3wEFp6M(p:zD!2ha.XGzQ}0PB9,BH*/(V\$\"tc5KZՄx\n\"w. uP(5*ӰN7R!@7JIza>XRGaaP\0ѳH>3*J!&fb\n_\$de#%&lñ\$]drp ۖ/r\r\$tA4PƐ0h\$1^Ng\$['ym6l8\"ׅb\re[Ӗ2\0ѳ>c}n _C p]doh5nא>n8VX/*LTҟ64i8a;[ݯ.!NHDnc-/.73X!e0<ʏwCJ!u4d\$ȢkZX=\\%:CC}ᰛQ=/E_,|ކ\ry^()p>ZQ!:31!e_IJ*/<(\r}\n:}9N^jB2#b:t@F@fnE&\nEr,@0-\"zĚffza#42,LN;JvB,BR\"ِZO`\r' ObF6b\\%0hA) \"0U,fn#zgdZ.C>b(rFxJz캸L\nиvF,pFB]\n\n|<\rF]l0'2A\nXʃ*GA0pbzc\"uQӱ3m^-\ng-8𖣧HgN<ͱ@K{uQx!1|1/?pRmD\raVˑqшxbg#H%!-Ǭउq LIE<2*Ee8T 2*\0Bg\"Z.s &VYp-_(orͮjNDmxP_%;gn tP<2dR|h]4''&'G.DNFʝ*(B7n@l0e+g\":Q?(#q]?(1r2lTs4 ~tR_g.q]p6\rƏ/&,P\"@#0H)RcR*Hs-3[+c2*5dS2fBU224ЪtS2n\\Y@o,W%B*%.H}8{\$SA7!8#݄% 9峔m`4r'fSJ#='-Bc(LM\rSMθ2\"S@Ac `.Ord!/ChJΔWNo5.bgD>|0Ԏ c-0ֆN0CET)^kAb.gb7@K`\0V,&u\$*9 *B\nZ.R<D.#\\H4䚣O\0004gOyOL<aOx%pM/\"mZ@T0F3oQJ#Q*(20sO&3IB@4k'!!o6,>\r\nMr4Շ-UX`0ECYzG&: '2(8tB>3nVℒa*\$>Ob&&̵tn`0O-U8jۓ&J@ͬ>@\$BI>VX3U:,4\$'\$feĤq!Ʉk\"";break;case"ms":$f="%(u0 3CM9*lpB\$ 6Mg3ImL&8i1a#\\@a2M@Js!FHs;MGS\$dX\nFC1l7ADt@p0Qs7VaT4\"TLS5ki9k-@e6Q@k2()6ɝ/fBk4S%A4Jr[gNMC œofs6!e9NyCdy`#h(<H>Tk7r!&.7Np|+8zc*v<vhH7lH\"p=xÍit<(íBSV3#ÁBRd+3*BʝLޮc\"!P ;QjiꉃzZT3{1/c Ժ?ì&\$bn>o;#7T@X90z\r8a^(\\Ncs=8^%\"9xDk#3ސHx!2(\r+lL#\n&5CtF'@P0\nT (C˞ׅJ|R\n%L!`FPdt6HI\$H0lI|P)L\rë Ĭ2X9K|rZ9<\rئ(S~I#p/Vka\rB!{K<ǙI+:ϰY9P{\\[m\"HJŪݦ<v*3aLLr|=>c=1u]A(\"ģX&\rZot0̶HhE*:&|9n,Cɩj*i\$xp')PwSD1-w]IQzrރHo!FrRolͽn RK6TTj;x UBBCIiVCH] ?FXka6>7iJ鍇?0,=[l@\\SJqO*D2*9*`ú̞2`] kmA*_0'P\$9%\\\\ViC7j 62c!r30c uO\0003R&3Q\n((LrS7RtrB@{/\n (fA?2GZcI Ce1cy~٘+ی(Dg#܂F9tx?w+U[(IHc'3+dtr'H2(L\0C\naH#N;bAa9@|>|FQr`&=*(bbfZ.9]hVBNbG88BRɱPN_U=Q0M=\n>Q0(%k'O\\\"894'Ot9=1WL*\r\nGM;iA#(2*LTNm呭fY)\$Wq&3ƾܒA<'\0 A\nЈB`El)(uIJHq5Fkqd,%ޛO#HM=1[4f{3!%Jv`P2h0oKj-ohD蹰!ڏ7;tctT(V:efٖ\0L9OSMb\0SVP5[@S%iIX4t*ʻÂ[}娆50LnQkO:ځV13#XeԪ ugfI]\$OhlΙA:ǭƸ=\rv@rpcgA\rL@.@%h-)G㤳Ti6MFwFW\$%jXz, jU\n!nVr2J+Z /!wc\0vHY\"%jMz'Pe.TVRv]?D9mMHn\r;|mvj0 bb1!D3K*>( BGaI5SY9;##Z`j|Rbbku%iļ:Wԇ`j\rQ!RG!-oFF{:ߐ2+E\\9{T0wIXyn7⠇2vۢ&|\r\n?6j\$}>Џi|f.Tw^:;_|/[ֵsCOgpYWuVl7#_NBCY:S!ڻ\rsӽwa;>OQ@KϖrVy{WܡRh'Bc82#&2rdRcRo\0#,@Pˉ:\")-N\"p,Bg,;eg/,.TLOl*PE#:ڜ0pIMT(oV{p:_\nТ L:bB\nIl\rZ~CuBF\":`B\$l|rM/Ptx\",-Ъ,eý J]15_\nM,C\n\\//(:&:Pq,ͥJc{g\n%\r!8?bb\0=\03M| 'I?b1x,'A x\$\rѭ:P Y,<hQ B-S\n0%\nN1Jd qf,LGLlp^,P(ҕ^fzKcm&BNwE``-B\rҖG\0p\$2#8 ƄD\np#-OP蚤vB&CYㄛ\0QBr4JU\"5N'(%f'[D*ݲ@z2F[JLkLn\nxd\"y1[23\06\$1N6[>N~#zoD5鎬r%fl%4mZ@\n 3?t1\r;-Ӎ1\"j '/VzN;Rz86y\r:\00190nY~>~n";break;case"nl":$f="%(n6Sak3do0p(a<MSlde1tF'#yNb)̅%!MуqtBK%FC1l7AEs->8 4YFSY?,pQi3MS`(ebF˔I;ۍ`0߰\n*͍\nmm0K`-Z&.O8Qh6w5m9[Mֿ5!uYqoEkqȕ5u4.T@f7NR\$Y8C)6,ûBю)ϛ\$=b6h9ØtjBȣ^K(HȾX8- 21b(ïC,7 r1kN,+rt2C24e[Qkc2P8cs_2Ѥ1?\0P\rbDHhԁ=jԜ?ʂ:,3ʀO\0@=Q4Np0´D0z4crx[\rAr3^ٶ,J(}>ы94\r |FːƍD[ o+)û\\X!xx\"r:J585_Ӱ8B#˂Xޏ̢%m<37rY>r)YZD p#?dLK0p2\"̏h2nLj5\n3Sm.f#V1.H \nbF 9.K\"7tN?mUP2;\r{;80BR2\"H8hks\"\"^mkEͻ4\0Pי(VTKIaͩk\$Hc#t3VC\nj¶Ш.ް/#zүI(?Xs3ט3hZKOdw)\$u@\"TfgW/EᑅvO \nXⴟOك?@{8}\0PȘs:&3(gIB\rBgN\0AQ*,9*UU*4*^UV\\õxXA0U@>2gfL`#[AV\0q6.?rNrN3(I\"XºB)傅W%۸< -|JCh\rӠM*dm^ )Hc{\rF\"SU-rhq\"_2d18M\n!S~qԚ ;/`f=-\$B@[MI_~o(\$@zI\0((ȼ&|Ci.E䲠sdA(fvURE)&!uĘ[f>[d\"dDLсfi<)LTʡmMN&^D\n\0F%( EI-%AgÄp\$ZsTg}G\"S|qnD)>pPìח]U\\:Wj0%\$r&/čd_SfeO\naP+D;'^h11e[֏LIx]QX2S2́D6g)#xL0TW\rwV54Je/Զ \$V*'\0 A\n\0B`ElzB+2_p TIFiPКX1Xk0m7e7j!rucH}'\nC[m?7r<\n fW^}\"Tܟ,ӶȇҗV2,f#Y5RY[L*wܑ (Ap_`hm AEpޭ2^ik#\$2srA\$N nfK{^y3;v!\0PCD7mNcg!lXg̈P-ҦL1-FoސPáKɮokzAa 84QFVׁop/VHq\n;|9&1U8ʯjm N~KNj2r8/.93.÷n <·C .w~&.G ,Zc8\n[䚑&JJ\"Dt#YOnfង/;f\$X(bꩥ\"y|3F`jXfzJzFPBӡ2\$jYP+L^̏6<F4?W,pfW!\0R e8tf\n)p.]I,6C+4J[.<y7ibĀ\\pU ɿ7|'6p^~ ƃb_[pv?A_?6\n\ncdJzhBzl-pmT\n2y\0J͊P004)A-/\rdM*`m0\rk\r6p\"^ 6\n-`؛K\n>ϔKe>!UB2bFش\"ֻk 0s\0ĮË.#@!-+b:\"]/sl^\n90O3P+\"M8rqFzetnD@KMÄbn\r`͐Gđ^P\0GkpPVAFh\rjm\"7;1Oqo1gudݱ'\"6m-ja&nĕb-)#o1ԧ\"&lJK N-h&\"{\$!!&jmV#NlխL1`-oo/\$lQr2Q%}XRdq\\Rb88<\"TIQ 3mʣnu('g!\"FL1\$nх-za0z\"2s,n\r(P-\"\0i2_Ta\r%\\k<=&ȥ\"jiH5 n1C. DA H*\0\nq(~8pN.9\$!\$#a^.̲6ShO. bke([M&qBd&iҙ1C \r`NQ 5SKV\$V/Bd}m4+G\"Dc;f&.L42&D3^\"&\$?-=>K83LGhT1@0tA,Th61?Ѐ w+.l@LļjOIM Ʀjb\n*q.x`]\$>!m.Gr\\&MLT2\rL\0; @ff5,XIT7m!\rD2~L\$iP\0.Cz##B\$`";break;case"no":$f="%(u7I6NgHYp&p(a5&ө@tNHn&\\FSae92t2Y '8C!X0cAn8! \r࣡\n7&sIlMzb'ґkfY\\2qNF%DL7;g+0Y'qH16:]40gۈHr:Mqt醡B傽JG\n!n7S:D0LQ(Ye93^;#\":+(#pصa\0\rmH@0j&i#M|: ((@\$H-L܉ ;'2\"B <<;9Gp7B7Nc|p!Cs69h jڤ@ c\$K&ϚlH4\r㫞0`@RBf3ЕtL19H!}%JC ^'aڴkh̴I@7x@|2KP :52հ6Cb'.+\n7-:\np7 X65P\$2WS z5x nj0:x췎6P\$#U%#n b&;-,&x5R0Xc&\"'h\$2c\$\\Ah1l&^SN8!@R\"[[B̂\rcPBz.˿{n0˯9ۀ[K#l0\"*Ci!gvgI/jL&#͋cv43ڣ/NC48˺ڴtqZs(7\$VF&(ȣy`Z4&r,ѽ*3Z0\rxA4\\C?P6(MgKF7+n0쪔peЪ7qT\rѫrT N\n)`qIS\0M1:âTjSr\r>v2:0k986\0sh z)&t\r\$j@SpP*%HN0V%^^+y0\\P^q8vhISoݬ4Ơ3`kj\0LLXt&ӈo2/iODBHrȝxRo6?DPJ\$9R4\r%\"Pr1Հb\riBJG-0f!PNL\\Eq]5ጔ(\$TwKOFoMܿ@`CaPI*ȓ\"\r҄FOEr@HZCh}fd痉w/ؙ6Fz`TPoX0B!MV(3bӃ14e(P&>/BsZˉ/tZ8i&p ƛ=b4ht1JD*6,O .bR̜r^LI݊&\\Z֭ yE)`Ly^\rntVEЕx'!M5-VҐP(\"Ĉ.PB3\rPgAjea<'\0 A\nЈB`El ~&WTyY,_Vqoc4~\rRӇ}R/u? kP7\\'!PvHUck-f܅zlY\n˪aĔlVD9Рtm fm̵N!t9鐂l_<\"´c+.Hz`.@xD=]0C`u~2cvGHΘh/)/r[S'H\\J0b6тi.\r3|H/\\c\$ (!3/G-O{kFi9&\n@/uRQм=AP BH-k*zgR6C\rěr1az`B\\\n83HsZF2ɭC -;vnA7O](Mi5q71|kI `r+-xlHbbn8E,c!RK%'*zW%]KףI#yџ3YԋHym`IwVB^=dAMtu#;g<:G'RdUύA\"ټ}wպZ^o \nWd\"Q/-ƖFE%\"@J1k#:<\":B⯴,N/Jh:6PRZݢ?S~!ثϧ\\6ONWX0ǁh7pS.\\<4 dnB \0@&fZ!\nN\$(9'hb: mzkl}m˺)),5& JD>&\0RPn&-pzƵ`RXOlfCb\"&cFj(b(f';0#>G\$цXfYsDP pMN|\0\";I/qpRF5.qiÀ;aJ%h\r0%/.:M)qXqa\"!g<RKR#&{Fq#&A+0H0Bz5mp0qBmo!1_P_QnN04\$5l82ʙ*)\rr.>ڀ!r2\0MT)c_M\$QMRԃ&\$f\n\\hC&Jb'eĈؐ @\r1\"pc\n:B'>f^њ\r+PB\0_^ʨ2#p\";/+@db\rV\rd!А.5* 8*c?*\npz<ޥ;.\$gsBf8\\(1s+Jc8(#755^ob#lANb:0HB` Q)o\\Ol,QEƴq6\$7;ϖ#+B]O<<\"e<fCp5=&=\",%\$.ɳbB\n\njM:\r:7CCB<-F9a,\0-IF!-Т@#M?&2qXOF_@BJ -KQ*\\\"\"L-(E^!@";break;case"pl":$f="%(g9MƓ(l4劂7!fSi̢Q4k9Ma ;\rmD\"BdJs!I\n0@i9#f(@\nFC1l7AD35/8Nxp:L =M0Q\nkm!y:M@!aݤhr20gy&*u8Blp*@do3Qxe5^of!hp[73qiy7pB\rHL>\ry\r+ry;¡\\b@t0.\"D)*a=KS拎;A*7N@@n) 2Mt'5B:p6n3藴r7KҗP)#|h:K*#\n0 65 P?-H6FN?.Ȉ[\$AH\rP7H4¹92cU\n 69?;+CMpAcXxƌD49Ax^;ׁpH\\7C8^P; ^'bmB7\"V\r!^00#)ʃ-Pʈ6J,#n\n-^L6Pt1x LH\\\0:8\$⸌ωC%dfJ?)a#z̫z#zb@6[0B07\rm\" çIcC8=!ؘ]iX>&\r+@yrɹ2V3)\rètH9#_K;Hh(P:V/]38 ?s 9;4}Va%Q@0̌,sx/NX\$.tB*Qlo2YW\n!9>~\rKMV#92CGc 1}|)0ҁ~2aI W\" ȃ0>bވC#.2X\"@Sl)&6%C£<R37CP\$B\\gС#aҪC2d2HiUH~,h(^Ŕ.9\0pO<Tg#r^\$D\n1EF(;r2E:˜b4;. ő-!\"5ÐDc@\nǂ#UZՂV\\+xeK\rbp.3|h0&Køyp\nUdpiE>N0r.\\!3X\nV\\{*VXdPCrAC)K~yq|D\$OYzKe%0CIqGd\\ByL)*Y7^a@\$HWB#0M!)4ZJt;DM%1?Cr)2A4j\r\nYA >HK4|l5YP(A?*VE6/C@ЧރBtp*5u?2ΌHc&!;%CjIs3JDD`ad4BKݩ/T/OQ>[\$l\$q@R8jf\nBd9>PK|w:9%d!AAe\"\$2H-\"\nV`ɻE!SuPIR3&'LE?!5ROT\r\rqFM\\v|;\nY8L[pWи/&@\$1yAІ\"iL|zb B\n49&fxF\nq1=`!EY,l#iI;\n~N͚{ ٱ,&ZZ\\5}Ʉ'#6r\$n TÃT0Ԓ8u\rPp|y.'yi\",ȹԂF\\v{'q[e\"/<*yIo9'^\$[%!`Cs5sAB#8!}'/k > d2fKfz]1ߐiG(:X Yb[v&50m3Wʕbفf\nX\n_쀠^fJpk#^d)!N!5!/Y9Ac=Bop#\090+Bzt0=w%|^ǔ) ]`F[NMlE-a#0)t(a7AC O2M9HuLX,Vk19fU5cUd=6#sKL/aΗja%3\rB`}='7XSV5?υo|om=VF*o\"'DOOnh:\nb0fmV`\$ \"'KI) ֓N\\(pBD#JJOD5Ĩ+V'`>a2\\x'b&䁐v6مJ&yl`7@).\"ߏZ&;Q/LP.\"]`%\$`ͽa9J\$/b^*&JAgIϠ%^eŘ=O%]\$\ri4 ,gt&9>.'\nrf+qG\"N8Ќu\nO .n1,Z|;Nd@:ѰDpw\r\nqϿlOCqBg0XѠMq\ngjѩ@v1L\n2 `˾N..OO!\"1r\"##p#R'\$d\$Q&ˮ,\rK!nLk !k'R'2NL4O1BtkжC2hp~-Vhb#`EIp礄++dZҼ?,*ق6B!`DfƬn)6]ҸEՍ&:.`1Y%N^S@ґҁ.]3%*@uά!`\nO\0h3-|~CJ6NvӠ96z:\$|><@#`<z8f-\0AC;k\nf͊De\$OE%!4Q8A%W&?ZsnDuit33e;\rABpz%@_gjd\0Ic\$@4QQ1D 3EEU@2ӧoF45;'aFRĆJ?H3{-nz<nEsY]JΧKJgIB<7;.6R}IPҟ)TMbYNA2GBsObAN=6M*xi/NH\nx#NK)Q-R|49EP;=@øRJ_03UVL-DMb\0<#2&5uV{V\nxf:0'Gb<;!v&+m&K&[[22r+d\rV\"a\"*C\n8z;\"nˣL{YSPb(Bp-\$v&+/\0\np\$Y,m̊2{L\rb5Kb\n9cv\$kx(ȴNTfB0ȶ&^y6Hv8^#&BCf.:ZRؠ,;eAI2<ЃP+;s&l+ވl({6JmV h6m.imv1'ooQ}@7\r69^R#7F=\nVTfjd/_DĂg1sFB\rGb-fG\\o<Иgpkǘ4te_\r'ϫ%vlVb6C@Z6LBط36d`y\\;DHN,!w+HG;b6";break;case"pt":$f="%(Q5Ho9jӱ 2Ɠ A\n3Lf)oihXj\n2H\$RI4* R4K',t2D\0d3\rFqTe6\"P=Gࣱi7#In0 Ը:a:LQc RM7\r2tI7k&i#-ڟMQHٳ:e9al])#cs+Î,qX̸q9W|=:IE==\n\"&|q'o<qTk7N9%\"#p0(@\rH6z·0H3O@:;\nZ*\n'\0ԙRCj̈P&cȒ錮0\n8\r({c!#pҜ#,9RҜCfHa\03o.<k272 ҄#Lƹ)|6M3|p\"ʰ.sӒS j@|ccƲ/20#;#`:Ӱ# C XD49Ax^;tI\r0\\z2`2&@˚Z9^0HMp)21xՃ|1Sj||i<7'\r%͘+3(Cʠ4Hx:l1pe-@ Տfk2CsS#ӥ(w8CfJ\r{ 2Hy{`h RX&dZH؋ԭrƍB\\&L_hP7r`Ha\"過|~\"#<7rV4b #l(۱8T\$r!=/N3lpl;ֶ8:^\\?q\\O9(\r,}y1oߊ=nuVֿ+?80f=K\$B̲I\"'\\*bK2!O\0 kȫ3Cg/Ր((`sAT6,@A*4ح<UYY\"Ԣ4]+|H4\0pn.d7X&ehp\$04PۚPaa®BHP#8U^*Nj,9,՞byZ]ڇ\\_;yD1vdKCZU\$:2 HA60H5EKQg8ШIcT70rً a?^P>زHy^Gc X4# 0DN#!:G9a\n ( xm͈(( yD`bKDT6LTLջ\0k9!q0X:dMQwxIѼQDPn\nA-9n.c͒PQ%ATFԌPRP!9\$o3:\\#,(#&DЛ:c]TSK)K!r<QDmMKh(Ln͉ke=r?ToB<)EIYk]3ܐKԴzKIy\n5gPI,7>FH+ڵԄup\rT\0F\n҃Xf9T\0\r16,QAY{g0P*[{ E YK\$G\"`GFFDŽ`L/hpj\r44eCdԛ>,]!0i )D]ꓺ}DjVR꒻K`C\rZ*98ʧ}:GVנ8\n\\S0L 9AXNPAԢ7t%z>]m9&^TQ|A0`\ni&'mE*\$o`o,^OXHACfD:<WER9phF.F(wfa䉐9GTQڎX!w.:4,rB@א^eWHk x2Ik%Z\"ۅJՒsawGvqjy@3ENj8@Yt-\n!@ˢ MoFA!E)~/*lu䙃f3LqdvSWJώ<BrQ]~M9NYFX72duxQ\rU;\$_tr2ӧV|`eS/:sL[=V֤Y'NÒc >c,{GIKHQNi?ܼUn#2,mt4XLl@N/Ri?=9S[ލȋy%߀9{;O\0tڿ>|50t}<\rD3\\IIoNIk圑n&qd*#f3\n-tA\"n4L',*ЦDD\"Nn^\$Dozod3b2J(NsȐXϋ'HBHLD&^rxCpf\rm.n6X範,%k N퐖nZyCc\n,͔(SPن'Pd_o͖^-\rP{)d9fF/r#z##?)n3CnDlbn6D\rfHp/LCMh#,N-τW#%ԴqqopL=¯&J\n<,p\r%1p_ywpߠ@_=\rsb)^!Q-#DZ\"fo\"lHuNEd:bm-mvjg0f#ƒ)P \"\r FiR\"R -h\$0M'\0ȀN&aTe9DI\$T\\G\$G\ro%Qg%Ѿwu%h#\n\n%#3O\"Ý)\rcJDcB262z2\r+Ҹ2#-.(\n\n#/2s/܍h=0@ۢ1@sQ Lm/21)@ \n\r\r\rG-ȓ8:~!Oґ\"*61kF;f0\"ccR3PN@[l< k(\r& D\0[B#<#Efy0j\\\0Z(g#bn ^\nPԺB'j0FL!Lo)o3s-;K\\r/c<J0:%-\"uDs<&hHGF~&XQaDf\ne\0QGc*hQcG(.bXd5c9hx-C43&}4\rJ RS+9Q0t]w44'[NbN\$,Z#!F83ƪDL\\˂r%/1ė<C/IBPaT@.&R%;+OE\0004Mq(SI\0";break;case"pt-br":$f="%(Q5Ho9jӱ 2Ɠ A\nN\\\n*MqmaOl( 9Hm4\r3x\\4Js!I3@nB3'h5\rQXcach>#Qz4Fi7MjblLQc NE2PcI>41e!',A+O_cfkNC\rZhbL[I9OvqŸnD,\\(ǵGM7k]3c/_4Iț`&U7094ÒN\"7S`: 9A9ȓ@35˄V72k(RRbγ:]\r @j\\9. \0Ф2(#ھ\"҇h(h7#\$/.<H\"|12KPĐ@+ 3B`~#* \0ܟD|Ʒ/@@0Đ(<\n\\:(t'\nC X\0D49Ax^;tG'r3_ \"5`J8|N3/Z燁x8`Ƽ(y>Bj :T6*\0@HMzݭ-y z%\"+t @1*lcx:)Dc1ˡ2/LdC bkt\\n{&#cOb`ӡh(w&0I 6,'ը'&IbhJV<eT^}hb.n1!B&LS>[& މ;mCtq<jO*rc+ sd=]ZH4b#m0Ɉ^r=1Ps q\\\rXMxe?\0#ͻo@c6x|xl=L|h&L5r|ƁW4Եh0f\r\0c2Jy/%`Ͱs5Ey䁁3U0RqC 7< dM'\nuGQ9*beV&Z+epXa(:\r>=DL)Se=^#Y@~˳)4ƯUTPfeUWj_0rY)єҎC.a̩wJ\n_P<St_\r2kq5\"oASQ\\*V%7G,80h옠d^>%K&Mv%GuӠGc p4#9yNP\"S@\$0((ऌTfdC*Pw'PmXr6J)a'>\n\$4QQ.VHHiR<sC/`IP\nOFZlPL:*a3VHl#DuwI2&伡BO:\$zG'Dy5HFd6扩T6il;D6\$BA\0¢:䕿4B:@\r4r#%>QRSJsgib[qjJ߂b\0'q;ywDU1ZEQ1%22Vbܢ 8PT^@- IP6X\n9O31E&+f%+TYg1fLɪ`JAMU%u\r!%&f\\zQJP .;`T<=\";v-<b.A_qAvG\$T;vB>_\$(oR)ePM;'qGJ\nFbMrb/,)hk蔘nĬvh\nLQx@s\"\\2sx[zf3hzl2rg(1Na6TqDx}R=K#N!sW`n^\0A\\e\\0JgȂlu'((`\$MJ\rER*t]&H T!\$_PSYLQxQ z\$(4L169?Y2DeUH@m%ܺ97SJ/)OqR@0Ďv)q\$_d\01˕~8Ns]3tmʚmB[4܂)Pu Md0GIܮ>RR7I6qD<pǸtIv]ƶyWU#)6>Bg2i֡'l/O&әfLF2}\rlcf4A{`EKgCz|ܕ(OG ܓVTfCT4F @OQ:f\rvA2,bԾ\0/O/. nԭ\\AHn%OqNvcmZLcDD2:J/OQlTǬr`,dLpqD?drpQ,ZN#aPe.H\n<zs@\\T4P{ sР/|עT2`c\0g毂SPWnH#n/z|^4p^Q\r~M| x@0)\\}Mb?F*jO\"*-drbj-f>U䚖DD!a[b0Ou1Dփ9nh'2\\k/ú*d3)q^OC\"Mv8H/\n@30qP ̧0}\r踌 ޓ}Ї\n1 P:Q&@s (fz@&0!LΒnR#̈6p=r;\r2E\rB<bmT^̈,&\\1!fR/Dg.g/D\$B\rх2LaU)ˊЦR)\$1rX*'gm,R*ĂP̱f?%O|(B,ͰcY#\$HBzB6y͋1[1@0F\r.͘~\nr33ҽC3!+.4M3Ms\\bP4 N\"3\$k7d8LJ5P|1RPcRj3F)'QT&#bӻ02f\\areC0pxFl P;(l,\$-<k\r& E!RCO\0ˣ ZjO!x1jL\nZbf#\"NL^o<x`]?떞N3b!\"\$.2jglH2:\0&>#:%#4x Fs#}APKxZ:J= &%H!E&:>R,m6F3F8oJ)Tm&1d|9HCOBODnoQ&?(\r509\0C\"OPJLVL:s\$hBl@4TBS@DFT,2l/6c3DB#532e\"'l.f2/-M7Y<<H(9<";break;case"ro":$f="%(uM0r1DcK!2i2a !;HE4v?!\ra2M'1\0@%9dtˤ!eұ`(`1ƃQp9Φ㡕4\r&sQFsyo9Z&\rن7Fh&2lAH:LFSaVE2lH(n9Lf;̄+,o^NƜ :nN,h2YYYN)Xy3XAKeNZ>A#\ry۳qLYN[Q2lBz2B5x#S\$0!\07J;\"V#.x掭/qp6JҠDR`* 0P.B,Դ?JD229#\nH/q),#x2h2J`¸+#j\$-4.ύ/\0P!03@ΉxÂB*Έ)y\r <9)\n9oBL*;CCe\\H9`@#CC3:xouTAr3P_זXJ\0|6 23/ 퇁x91:d#*:E1-7(*c=UOɇ#N&2cbF/XKҊܽ(J2~:9k,H!#H럼hƍ(t3 3j#b;/)X##,c{#;Qy,T?[ƴ3cѳ- \r#\"1G-^\"`@8Ðo#n\r8cuVP Ixu*=t&|\$ǝ`O&J|4vSBO@&Cg7ƇLS\0~]yhr8<|O1H @L:/RڪEgl9Q#Z@(ؐHC0fOʤGhT\rT\\hcWa3بzN04c\0!0RP \$`3O1+\nS30\nqv)@-&V[kuou«\"?k7._u@;`V&&4|ʀpKF)g Av:сfL*%a5\nQ*:zIhVh[in-z\\tyyʧ22Nײ T \nu`u/'BSi;`b9IWNl0i<cC9ECI}AE-(,o/eA{5wa\0уr*c1`n4yYrPTQL F K!5B3jhwxQ<#AX`N:\r5,BC&Eky%a) p|0)Y%2lNiԒQ\$DRȓ&5蝡_[1_? M'Qx1&M\r,Z1NA<<nrB䱫1t*qJ!7lLBO\naR,PZIi!TNzE)^`l5+4x )Gݗp8W>G72RQɻ#A*gSC(kNIÑ)\\\"P!ڧE,c}a~mj8UK>IҞ]dYLpn\0ƔP X&i.cZ\\rGD0ùxŗ%E4)B,YHiĆ `ˮSPf[K)Hi3beVi&I4\\< (PI/i^lA1VF\r&I(60ўlCPC~I T\$E=+zIc8{;WI8^Kզ2tm,*ig8x-رsgʆ,%k]nÆ8bkUZqv@:c\rdĽCZP`t7 w>3:38akBu23ҥmEIQC&JdmrsE%,_f-6O\rC mΒ\nR,C#2hf5V>6hN56 3i`[KgEۀtY2sDLj\0HzxGj2\\[c&n+g]33|_]ٗ^!PWBd}ð!bdcN M@m!:0%\n>EMTKsc(vko ZF3GQg崋s:f+e8.*EEYhLHn*`PMD|)\$.֊M&0\0C6noN\$&`çzDdF|JKbjL.M\"l\\ÉHfgg&L<\r/\$rj0|NOb/m\r/c@FD>\nRDR%4о @<c{Sj>00 &=\0v\rF&p1\r NT*: O* a0נͮAn5̯QS~Bhc1Q E\r@I--!*:`@>JPC;1g^Q5F:ð\"JU*|q~\r\r4d*;Mڬn-\0hC:Mi=0%\r\$b(pxG# F4j1~wb4fETp#2W&Be'&Xc2ipmF7'.ZzGRN(, aDHfn#<Ҟ ^t\$#-W-r,.7.RO!IaҔ=1U.m%C҆(a2 \"H}bBgcBnV,Aw-J233a73?̙4s0`sM5Ap/4\\UOs=1sk5576\"vL!4&x86),&d90D6}\r䌤(TBVTL\rs'';bLs:6kYd@I<vNइ8lk-l3(q\">'3@ޯA6Lz,\nOP4-\n072). U`B-C:\nN<@M\\mgSJuFhULhnU#d2\"HfdHY'.:2ԃJGH\\#^g\rV=<O~7!T\$E~|H\$r\r)&@\nZ;I0f&hp\r5U,!\"0dv'>M0G<4n0IMɴ9DPh<4\$8\"\0A28Av%X&`RHzM \$d&d\$u1FG |O4ѥ[\"O)5(d5S˲\n2x6m<SZsrY\$f2F~j*6ǐ<LfJ)aa r#D0tJQ&KH` _f0:'N/f\$F1rGkGV̰gh|@@/,2e47rmB3\"I[f2@ \0t @\n`";break;case"ru":$f="%)h-D\rAhX4mEFxAf@C#mE#i{a2fAZH^GWqh.ahhh)-IhyL%0q )̅9h(HRDLD)Cf4%Gf\nb֬{R\r%m5!s,kPtv_hn]#Pօ'[\$!&chK'FAIE\$e6jllѬ2\"\\횩mKV7ťs6PhNCh@zP<l:\n,c;jA0p9m#)Đ~ZĎc(1^Ӕ07Ϛ8ŪGHE *8C`*c ..80 9\"\\ҫZH8M\"?>jRʴvȚkKLd ģEQc*\$|z2qR*JC<h|5J~͑o\"ء(SςZ9Ԫ#A Y*Wzi8(vI>6\r.רOOJ/=N9w#П4# 4(B5'k֢D_ERs/C\rS,[ӅG\0x0@2D49Ax^;pÇb\\7C8^2x0cxDMF*+~%H2~\\x-|%H&RũD pv,Qzֳ9@7&IK.QiP/U(ɑ 0v\nKb=՟-OzhKb?IxNp&RӋ3yRRFrhq̷\$J+d)#;R\$Iz{>uYfj[9漱J(nd<JK\\J\$P+l\rR6`Q[01#Yd+]\"pv؋AL(Zu\\I\"zHDZK')9U[A/J8pLDhMstrm4jSiLK-7g\r3Yv 0I\0IE.^l\$@)yYedUmBdZ&Lrɒlm9BBAN(U-#@Xd?7'zKpsϤQ'aUT0OQ `tIҐțe!6U\$Fe+bJpQ2)q1%)h)ҥɔ4;-鸦X\n AgdŁnO3CgYK0\$Y9M.ET>D#VY*ҔQtFgptOZ@qtk~z\0,)Tv8Lg顋z\nuD3%u;?aYEfǕ08<e̅0C1ID\\G`68psH3fݜzChӚ/7m#ZkKGj]d?B:gNrQ!Dr\nf5>J^!C@Z ܱ]d S}43fpΙ>h\r v,Ki=Ps\rE6oL/':k<CX-VYrE&A4ED|s)_AMC˖M\nm;53 \"ɿEʌ)du-Yv!˙*ntbdƫ|59|%DKA<v\rDi\"@,xz|-{*(31N=Dl#UJ\0CoǚAd2d1Mm1H\"?(D%^zaK@;S8M4՝\"2%`%E|hAl#ZW-b9bf\0!0m%KGƨȂsvA]lռf\$T9m]m ⬚9&}d.[B}˴-cF?Uy4>rZn2\\Y>m~~i6A.jdo%sH (!5E3UFPQT|r_%2M Hck#83&l5cLnSƤ[]QM_!%E0@PU'Uh}; zq;,fAnɢP<zlU1qzNՊq1<aV}~Εc= ^TdoPcׅ, ub)vFt#HMZQzQdNjr\rS?XNQ\"\\y9Χ,G>ē&G鿙;d&dƮ)o\"FԷdwUg(W(D:_c(h nȀ \0)ʬGi,V|@tkfFӯ<LqFŔ?g20j+HinGG\$D{\"\"DR̞|n j\$(`f\r\02.E썦кGDЮz7OoSJUprϢ-P\\B^uhK\"pzq\n\$ձG\"qŪ Q\$Tϒfo2\$jc~\\[zpbyBp3DwD^k>g@@@,\"g>ǰ\$\"iNJ:*Pp,8En~)'|PTȰɐ&-8MhkFsF\n ~\$9hшdͅbNivʦo)r, GhvV\" wFI\$:[b\r\nc:zp\$t.j ~,Q\"VRZ*^.w2lq'2w o|*R&>LV)-cjdhdH*'2j#y,I,N*-,)G2lpl#.2-=].b-}9BV2N#!8nRCS'\n2 -+C\"\"SRf?8R.RiI\"dG^r4v_qhQR\"xzī\"\$Y&\0車PlL.Cq:\"#3D9fJB'rnfqķ<Ұ\"(,+<q+_:4.E(,bu@=Rb31@i\0Or}#ExHGAMǼ;\r>|bWJO(D0%3!74rF\$t,D.DZ]\\o-Q) &LK@L1'N`\r\r Z(\\IgIOoDdó@qBeKNt0=RUoGG==OT@ȗCuV)rBaB6)&.o?CΌC3\rB\$uBpI.@#AVE%4Cg\"c.S>'N-KH]'5gR*m7-gy*(,1C U\"VYjYZaW:;U\"u*r10L|N_%(G2uXr(1QuB(eB.P/|F\$cDg䎋`V\"g25(HRlt+R&!4Ⓦ6Y15TC`lrq,fV\$Ed3dD+AOҷ1<U]\0q^m0l3>Owl\rCV]Amhtn/mџ0n!|ª\\\rYjqqbåv5aOr(s1CWpvQQwBr `SL NJbfX#Uѐc'JATml+YO\\UҦ>T;xsYx!]xUwBisNuC30~cW\$\\ttp~T}W+T3@7}pQ/0/-\"UMcExAjPhQ:O+cE'Sq7\nfsU=eoŠXszƌ<8\rԳBU|v%.x3\rO@#~6 EP\rxoDynVTr?#Wz1}Ucxe\"X!z6Ԍ\"VUQ_wWZxaEQ5t-)_ώrXw67\$k1~G-y\\}Wphуxa728M]A7+Q9B<`=x5C9 R2XC)]ZW̕rq7u*!Kj/5ՙf@-]DPF9Sv-(u)^ulZR=x,*yќW|;s !@@a1:WZlbEz8͍ i8ׂeC[L@.\n\n0&8c<\n.\\ZdH\"[bI':x\$ؘܔ\\3;Gf8PIDqȤ@E7\rө3H.Bw*FlMvHFz\$./Yd/a2Fm*tvu2B\$fU}@v(d6OAvE7+;VN4>;BYϠ[J)@[T'+K{cHCx{O@;tO7u2j@aepWVn| DP8x80.b\rR/«f\$@F-X#%]:S4c;-Ynx{&ꅴqV%Nk;+~P]Z&nPpgg O}\"eXDxgxc=4zZ\0TET0|A";break;case"sk":$f="%(](!@n2\rC l7&P\rl25q\$\"r:\rFQ\0B0y%990cAn8yj)AB&sLR\nbM&}a1f̄k01QZ0_bԷ _0qN:Q\rA n4%b a6OR5#7\n\n*8 !\"Fo;GA#v8.D8ܞ1*͗ə\n-L6la+y5O&(3:=.ϐ@1xȂ\$2\"J\r(\$\"<jhBz= 1\rH֢jJ|)J F<\"%\n<9\n\n)1P),`2h:3. -\nn9fR<ʣ3\r4B@P7[0\$Be\n;\"@ؔnC\nEXEQR# ں*lRVR\"(C,Q\n`@!3:xc>Ar3 ^8HØxDP1̅|TzU-\r<!\n-5 \$4&M'Nȫ0xJ2:8;997.:2t rb:J4LV93ٽɂ\n\"cpCè5h3;hX!|:@P2n7Ԍ='J 0:Pyk!\n{t;S\rfB'40[\n\"eLc:%ȳ::uk\0᳸Q\$ݼ}QR6ᢟetC6 !BSOx6;<x]:xS\r۽Tl*0A*5nh\n\r`䎏7EԐ72:P}\\?*MjPd6ɺ#Cavj\n\$&Jjl\rq \$!<2)BLb<DKxk20sSA[&BTK@\\b[;¡[.`C@\r2Qp.hM(RȢJi:(E&!5&-è!#g2hДtp:õM*#1]a5:#\$/5 NBUB^+倰\"Y)P,՞CX/ඁl܆WF5,_-gm##=ʙ\n=:v=aѥI2.\n(=`J5vUXkcujK@10^߉\rin<0LR-PJ20M.FIZ\\Rac:!{p̽;FLĄ \"4*bfҐS\$VC0t Ze~,i:>HK̎2.tBrT#e\"(Td-!z)<Xp@\n\n0)C\$X8 Ա&*rBL*Lth\$f.j]MG&63Jq9PDBih2*:q&dZaIΙ8AUfA\0FQrvlMB|9 Fz!&%#3Eաy_%T=Sk/d܂Go\r1l&NYr|,ɝ\\z!BZf.(S\0P L*/@\rǖbk B7PQS0wZOtR\ndP\0Sr\$<0(KfRCz,(!*I+'DfCvMnB.jɤQ5يjTEJt͌r[aQe1\$a44tؤ6f(xOl9\"^ghThwBKm^;LCA)Ѩj(BҳwJr5NAD!L̬ĘB)FO&\"2uTu^\\nq';L\0#nNo2;̤iui/0'K80dx_-7Wb(ovM CBp\$Й_n{`;'76@0.D6PC5\$݃'cfΞ0.s4~ pZNB*遱\"=`PD'kDܩJeȐTFID6R(F\npH]u\nQ%bk\ry8Aa ɰB 2ys\nǎ/2 ^Uaa=/'.'9Y\\0l:4J;r]91,6@?-r#2}:3,M'ț#><(:!0\"<EU*_\\rPi.??a~4|eȿ_&D/o\0n>L3FT,b8z)e;(Hjkȥ+2E\$Fb{CV=D\r`Q\\>/`B,@o.I^͠'?d lgfKڵ89\0<'.JbB >B.2%oL6J0\rc*\r7V\"D\$.SP%('1C,PjypM;\rG.`- ,ȅ\n&q\$\$'Oidgh,\rl\n.\\aq#eDlP PZf\rVU=qs1E\rqQv2vqGQzhCN\" V`P0 11\r!1}!ϣ D t#+!Q!P#Mj#0rjQ%bBK;&lm!qw&N'&҈>l\ra!ƪ&IFQ>Bx݊ZaM VVcȨe'~HΫb9.>jLj*,\$c'Da&e-^f\$N=&tG!r2^<8ޣ\rsKa67N'Ҙ%\r\"xsv5A9SsZ7Cf f #} XX',b\$\$q63\$RI\rr8\$2)8q>b'jGa\$7?F?\0006 \"t #N@&VmMCCk3V\ntB&4G77LuaE47AT3EClfEU!s4Go?a{9/5ǘMg;==7I77CJQ?SE.Jn4=TT24%!M\"5S52MӛI&BDvHe9hROOG4AD&HnKQUҕN4MR\r<3>Фh#SES!8\"^E<k[@-\0RSV`UpVԮ#1DI'\$\nU:U8\"2:\n' 'd\rV=@\rcPDcVVrt-@Dt#eR.P:if:*x\0\np/d\0\"/VDSa/ƃ5`#x_%9aOyTB&\".Fs`2`J#d%CnRĦM(;/QfB;3,cEM\$)70fh\nrs2\$\"ޘNrq/66Cswְqӆw>73&NUG!n1+##Gc40F3<^;GM'yi.')uE>Bt@\nv߀pCa\râΥJsSV\rfwml2,=<'gYҗ1knl/neDi(*&0:\rH\n\0";break;case"sl":$f="%(eM#)@n0\rUi'Cyk2QF\" 1k7Αv?5B25fA2dB\0Pb2ar\n)DŽep(0#Upz7PI6AC laCH(H;_Iуdi1ȋ&aCl2̧1p@u8FGCA9t1f\$E3A}kB|<6?&Ʒ_7K08ʱDы*PIFSԼU8Bҩi;L#.}Np!7c2\$B9#hXϿ2:V7(@ T<ˌ R~:sj Kx9,@P\"Ȏ2h:IDr<C\rk86\r2<+1|\rn%\r2c'T~9QJT\rH)52H2\r{>Ki1l7V>/@;CA+p9Xx(C@:tT6ʈ9X{90^'a926cH7x\$NʫpBޡ\"3 ĵ\nj#!6mB |5qO+ĒM_R_\0ӄ`#`2`P'B\\.,ɼ)2P2\nsS6&yH:6s־ë1S2CnPi%4+n\r8&A(R\"\re9(*FXy630k7&-c\"n4spb1Wr B\nSho<;|:+;\rF|HŮk\\}\r.n'hHzEpdid93-8ÑSM'LBz}h<#tcm[O Va1lln2\\\$Bx5,7v <0fe缂#(Hڼ*S*[bg` c1XAϨuqAaC َ!}P5JJUX+%hy\"]c}*yrJl)@Y-!ش\" ȏBEnT @b!TJS*Tbx9+5j߈\n!#H\$B4ޒ\"a DkՃE8rTg`!(Faє?\n hHC;+aH@18HF0SDH1FBa\nCHhB]yIب 0\r+Nf\\̆Y^YO)?%G*HXXECND!8A*1\$S1:kdpFX,B%/F pt\$v8i\"HZx8 'І2('T@^,\"N#XY<3m\rTQBYǴByFHc\"J:f0%hD4XP L*FQح5P7\"+BD澚XrM6T1@܂` x'IaB\$2-nmDX1cvFYVʓ ^Z!K*:<^ B ]\r̳kqEMuDҹ1\"̍RM\rI9Nǐ3<`LT1ȦrD=2v@tU,!#vFP7nj_Y݉=uc&%vBsΒv`G\$L{xs\$djlXTtF`:<L!LB<BѐH&o?39ʄ L''#f=gCՔˠs92C[sd,:S}\\v.%u=3Hf,T}kղՒ兎@BޖNBQB2#z*|8dZkLJ\rIK *@@ ~š\"X]I&[)m3vy7#h?^h2ľRAaJbW 1(n[lPOƵ1Ժ!+L@iܔ7~\"⼷\\ؖr%7')ōRÎj,UL\$9r'>guB n,K}O,\"/wFvVם̚ա{ ݻx\"dw>YhLhwF>]lD<Gׁwc`V;윴#}8W%l'BC(;#^cr>i3ޓ]aF6ԾeEH\$2dCzhR>H;2Cu^'}nR90̶Àb.IUM\0JsnŚe˅X2\n+C\n=yBZ\\FB%ŢPW,\$ږd\nk -\$'.,H<I ӦELF;L̈\r.L\\Db,1\n-\n%Xr!}Xu(PpB\\%9(8b`.q!q#f\$t1+1\rBn#QUcbH<Ra\rт7%g0G06x71>b&&b<ChѲ0(ID\"\"5В9l>bFxCj(%Q 2hf=d HH۱aӱ%p2E,`oH7\\#%;/#7Ot#Ek#A\0D'LBa#%]&_gB,&1%,LB^K,dc/bbg&i'!\rc\r2{\0&mrp%ڲo\$%&pgdpNK'=%R\rfy rZS5]0̀\$mcLS1\$ }#2K\"q?2\"Đ~=1bbO%M-+R6\0փ>IffF&@Xb^18.ɶ\"(sg7k8,-bD&`OjK7B%` F~K'3+<'].{</2K!xKM;BKs33?,-F\"`/d-R,\"~@ЧcN.ڗwCj4:3q(XCt8ţ7tACI)DEe@\nr?x_C\"I(1yFC(dr=DtgIIPETIJGInfQ}H^IHk; njdK\$@B\rCj\nZ4QsH\$Nh%qB/Pq\\UKBu!:Ŋm-L+/ \nBPdmM\"?\\M&LÒbV#:!B|F!c>~6bdʣn8DRbV٭HL?ZQb`\0U;ZU381#8CB.O-7ƣ%ц&O9T#08\nr&`atMC,X\"\nZ@u4tK/.Hj%,+!CHlXNaVlG&5\\@*#2/MCB4`@FH";break;case"sr":$f="%)h.i4 |Ez\\4S֊\rh/PHPnv0G h\r\n)EȄ:%9>/M}H`(`1ƃQp9WhtuO`J\re;ьF\rgKB`X42]nG<^PdeCRFtɼ 4NQ 8'cIg2N9d08CAt0ոD1%Co-'3Do8eAZA)@{b0*;p&\0\r#p4\rY] s(>X7\rn07(9\r\\\";/9 踣x:Äk!;ƣ\"N\"\\:C* zE<E-¶-н\"#JҐ+d*{^@51DK0jF9AhuPڬXD**L@2^@-8R6U45z'QƎT8ЧVG3RD=Oi1 l+Hc#1#*3ݷ,r1Gn 40T9`@`@2D49Ax^;ppqj3(#&\r\nѨ#x|2\rGYA,¯*77ҰeýM: +YJ\"oVˡMƦۢZS:'Oږx0Cu悄\"\"ѽHiѻM=5(T2_Mz01 *jSO1a=b&0d;#`26fH#IKCDj?3N%Ѱib\"ˢpOI2k+Cf\$L4#L[/_bE-Fu2٣פ6D*zk0Z&JS/k*n\nTFyY9j))I\$/L*/#O ПhM`k!pt^ck&jǶvԂ B ЉB-S]:E`el,:VڻQlA<tKs\r`eD+C7;DŽG\0@Qn&GC\rɛG~\0\nsfq<D\n0A\0uawA\0l\r\n6!0nh0RV(%F&O.\n&b\nBpKd\r!r0kb,Mv2L}5d`NhY[ycE5HlKeW\$Brji?kJ\$vv%dXZN`&p0 Ęcݍ1܌sd,@H) <XI\rD#\\vHC[/IOSVidSiDblZ\niuh!(4E<Y _a6\0q2F\$dҞʩX:u|!emZC.jz_FL, @\$dR\0e99in̒xc3NsNxenI9Cw\n;\"L\n2gRs!\rZdFL0\0W q.&`m;\"lgb@#WI F)bkb!\0\$xFE _*Н#M \n6M=k#u@(4!*J\$(uW\$& ӤË\03#@5)r伈1ʤy`BI:UJTGP L*Yc1JJ;5y,q&-(&DԂn/ cE\"Q#\r2`,p%t`uS^3\0e1`innA2vCG\r*q&]<(^H܄P*[WB^4M\nm0*Lg! +c\0B`Eٻ>Tdmn\nXdba4\r!N-Ւ5aY\n`k-w:TBc/f]nxflFJAjLfsMNjrmNo,=7<OgO˄\r-Mΰ^Gubn W4OΑhO\n\rIp2ZlOV-CJ!:\"a=a;>~()#%;n)Sn3E!09PbC+\"a!D<.^\\>JrSwEŌ=օTBxB)xyA,^{m41H0j8I\rDL!PC5PĽwO\nJWށ0wF̼Y\$0PH2) '|!-O:|nn1(Vـ \0@\$d\r\$m];Dzdn&@fj60fʂ0tJ*LBh.Whb`j(?Z%Dc\r\n 20\n/QcK0)P,RF01 )P+2.XD-ïh*؟]+i \r \rW= neqI\nqM\nU1>mQa\nA}qi5:@Ս^F )ʢX.ez'J&U%?MXhVqZ*M#b#AbV5C|N.\"Hv[c*xe\rxN@x0QGL<C'o\0x̀>f16<M?^PMN'N( ֳ#vZz4Y&Uϋ(*&qO*F3AA)X4%`xwޢmK\0h1rhrj/\$c^Βx%./g)R~pyo\rD\r hXeP))(Q)4.NU%BܮE-LYO6g){7ci7`U&#A&rY5]8:I'ѧ+S825&2Ģ]Ƣ\$R>q&fп./=S=43p/#7s=2)=>>LNly> r`wJ^ד(>K.c9' 6lC8Co*);H\0Q/\n(\rm,\0Nfx\rd0UB`N4}>,T~r-4X/tOAG,J1y4<4qIEt2Mx ϲ\$4t{(O5\$d=Gpg.kCE/ >tMCҏDt`keEP6;P(?Fn2>>5BT;)&#U*'u=Ǚ+cCS\nMWEL6D@\$\r 4ȳʳHh\"i[US:':=9tOUuZ8Tc+5hX|N#10jJi0j/s\"U@[Ig_.847lN/\$q\r%V%%`uf/%c!*RmWP9WedUV'[NqRc+]5HRO`ХJpq8vD\\0gh/ht*0v86,d%so .eGRbvAU)ofv RVlV5\0VnD kU'XMRVQYqrq<vJcan#Zս4.=BtƏUby< ¾bOfgv\rv\rl\\@K_vBiw1Cvl7B=ni\rF{u4m3ӝ7BwP>&,>@.`\rV4VA\",TOP\"\\D̖F\0\np)-Qd07wvMBB\".0fY( \0/C#r4>p\nq/g (O~f~SV&2̠b0##5q+#u6}\"-h~4+*h|\$H8Ĭx~|s&28\"80:vӍRt1ރSA9()Sd<ՈzUrZ6ƴM,@Sd'45J.݄ރFhqKp ]u4#q.H >9/y\$/hzy%UDApiJ5.rR\rh;V9(w5y`";break;case"sv":$f="%(e:5)@i7 6ELp&)\\\n\$0s8t!CtrZo9I\rb%9iC7,X\nFC1l7AL4\$8uOMfSt7ASI a6&<b2\$)9Hd7#qu]D(ND0(r4\$U0!1n%(Ɖ:]xId3O\r3Dpt9tQN!ݾr#-+/5&d~hI':4Td5gb(ī7'\"N+<c7\"#̋죦E#μj(\n\$Crů\nL è63C7M@=9<˫!\"\rh8C*҄3 #c<H<*)C&p&?,5ñH(,lD(4\r̫2\r:/I8LD9]!>JU\r?\0\0x\r0CCD8a^(\\#szJ;!xDlSr`7^0z6\rMK\nHFc:¸.\"p/-7`Aw\"H(7в&WO8]B\r6rvF :R\\c\$95Ve5B07ZcM#8.)O\nU+.dv)3X2o0<d(腧F4E6c\\E9BkL,mn[Tʂ\0 M4m%9t3I#8 #hᘹ\"(Yz!9[,Z6m,05A(6`\$C=20\"f:FQMv}ϐDKre '3@RN&M\r\0چ.Y\rǩ5J\\gXÓ['p;t6Rp υWr}O\$C}ւKCX\rh uvC~P)=AA4\$,lVgM RLU6TTj;xhUEVZ(bl*c d-?ޚPB\$ :`#:b\"\"5#a\"q#Tʢ褫)1[+ \"()1ؼRAo@>G\rQ I7fi\r+ 93;R77/RviA\re(aJƝE ȫȉ~T9B9'.mzȌIAƤ\0l-82}d)@kH.0sơ3<Q\r0˙6LqBD0\"AГˋl\rѽM?7 u҃#!*ca#,d% nQ\$QFL)C\naH#OX0 qahzP!^9Xšdʍ!x&)t'+51*TBPՒOK\\&l+RT9aD3U&tPAOMI`>HL(eDa@'0Tb3 <*HQX-s1}G Rd=?`I\nmX \rIP(\"Ӝ%=\"Y\$3 N@2v1dő;`\0U\n@\"BI f^p@xR\nP p|_(x0PD[R,.vL?cGL1hp˾\"FF#|9dBおRƭ'g[= @9h2w\$1+<X/gtXdH4gmʹt&8ZW#70Ӵs'@)`8l=\$cHq(s\r⪐B[tMĜ&\\ul+-㋙\r2!# (&)hne6(C8X6x3fL2ϭJS@&+HKB<!T:+¾AICCPQn)B!\$\\S?``g'BP5¢%Ex ,.c!~j^\\Cĭ|NqY81:^qgMkL`JSh/|x\0W;;Ntg\$!13Io*H:ɴ>sv_%J)*KLɩ{YPa/7qvj瞫>ÍV}ha6kcKTm|(\\o>i=\$ya?qg%ļta8A19\n1 ((2a39j+Kccb\$ME<HW+B|qq{`M\\~tkHy랢H?_r-\$S<#~6g\$ /HN` o܂`jK(4ZG0(viN6n:\\j\"mt}nƐc0\\b,oRϢ.-w~p\"@ZibA p?\$lBIؼ\$L.9@=Ì J*Xp'Ս\\5l5Eӯ3h\nŘ\\oT[M\"\"NN1o0#MPv\\?,\r\"5Ji4\"mܰ,l1w2/31{q@[bf8dH5.¾;#cf:XJnQbZhĪAjJIlDJ\"P -oLє5g\n\n~\$<BE~^`Ql#\$|T2O#\$.O#)\$-\$bm\"HN&\\3< cr\0с&jRw'-\"r2R(Mҝ'M\n=8D̚OyKR!Ҿ3B2bHi)R@ԯ>c\$=;\"b&dHq8X.ld0 Nf-\\%r0eY--W-1A,FU#f\rV\rdl\"kH/jꧏ\nb&L p4\"O.ƀҺ9Ӡ4 hx\0rq/(\08fR<A=,%(r8o!\$P+Ŗ̫{0ij%Q<@\\vP^sBP@k\$1C\nƇďAƲ\n!4:+8ލ30OYB;ŴIS\nk|ՏbzCL\$B`GľаnVaz#cE0lc.fB:B#~0`֤LFD\rfnI\$yCYA`ET\r@";break;case"ta":$f="%)J::u>8@#\"\0p6&ALQ\\!_ FKh3Xҽ.B!Pt9_`\$RTmq?5MN%urι@WDS\n4;(pP0cAn8U_\\dj?&JGFMSIXrJ_'JuC^ʽp i4=xS/Q*Adu'c(oFe3NbNd0;CAt0l,WKɨNCR,H\0k7S*RޢjMY`,#esrʢ\rBB4;2)(|\nD@\0P7\rn7(9\r㒐\">/9 ;x\$9X;̣#wI@k6G\"I uW(R0,d\rØ7j*+]!1%n,Lk\n.uHY3V7drڱĪ\\)Kz0\\W+q1ezwv櫖J)ӮdBH=Ͷ\nZ̫kF87-8l2=u@)uLWbDh:a ;@@<orR\nh)R_9dMtFa@6f\nMilƪl\"֫\n@ۓa۷J*4I+qj8Jښ#A5kEy# \"LA8;:\01oU=\"t1Mn4039`@q@2D49Ax^;rW]2x7=ϡxDlȃ464}?MV=*bZv±SXUU+c0_Y䀫F@2x2y.lP*V- VdҐW!7\$@AA(dE͍v#zi4W[U5\"jW`=sͅKDav!:WƵ\"8/8WunaT4̉` p;TAAe+`:i-qlRH'oƵ\r]t]R}KU\$x{l9b\0a<1ܐBL%z3YHFF\"HsP2ƞB*GP+\"N~ZCꗏ_FygF:c\0rq GdL+Y03|.cCW)xuHt+402VP( &;Hi3!ѡtAO-_RMו\\,A!4Ltŝ3V#zHL\\xavL:XݓA<Rj3O-FŬJϴ;e2V d2V\0s7pb\nco66vfD@@xn (6ރ4?3@v5ZAwHO(`',[rn(Тm6ҵi H\ni.tc{Di\r!ܫs.mιBbfu&yޤZ\$f,3b4ץ\0ٕE@-\$+54UUW!\nyH \\\\ba44Nn{ra9<mWeӇ'RUfS;JJ\rJh w'bq\"ekqeVy&\n;Bzsva\"A{o!K쌘YCٗ a` 1ldbj3%j[\n+*gDW(bCz:F.Kq,iQ\na8{<X\$ti.þ?5r(2>\rG5961;yo Gpq. }ChU9f3\$7 !0qU9@xf\$k/U).Qʿ,Fh\$p{ WNI&yAq5Kȝˎŧ:Ԫ{Fxi{+9Z*N\\錒)*_6Z}-QZ<eHy:=nL8Zp m\r)M8n<F!UH%O\naQV8ՇAJJ4lgg~ȋe~k hRhE\r6<;Few:Diru0rRJb)ASdq*i=M;q9\0Asr(*ŧz%ţSUWO *\0BE_@/HB=a<nRا(vpbabꀍ\nFLM\"f摥p_/ҧ|knxGD*X/^[C>!Za.)jRjnJ^0:ㄘhj fȮpx潃y̢biHtc %o4<wԌlG\0iқ\n<hd)\nb(Z+K/g m\0?CdVj\$\ny<?\nz`鍖 t#L2*wʨ`fɹ%bÎ9NV(\"J\nG(r`\rHp'p , \r ʖ4k@Ίmm)@%K舲:@ϠʬNJL\0jV\ny,J\rȄ\$\nm4@´l\n(\$<)qP7i5gL-\$\r˘[#.Щ\"mrBdI')\"i%Z)0Z#j70J^`ˀ\rb\ng&># 2b1 7'@Dj\nRf`3bc7+g\nD)!AFm\r%frv>&HQ9*1(b r+Q`P,am\0PDj:F#2nO\n`L@N\n\rp>Dh:O1\"B2Õ\$xa\$%01 0\0i11\$nе/IL'RG|жz- \\-Ӻ_9:E;;sd<92НӯS̅:0URB\\2>r2(Sn,3-6H\r-oBs?43D3lI#PT @OEsDzQ# p@L\$ViJ('M\$cJRE\nOz}`\$%`Ro%-S*\\bߴ\$7\r)k\$S.U+7k`3dZ1UNHn\\bv҈`\\Nu&-LSD\nS>eL.fU0|Sb<)H\"`PcfH&B\$y\$6EG\0\$+jrKH KA\$IP4Z.RKSN5C57s2RXFDԨiVTHxȣtu<uE5cE~W_̧`a`nw;\rYu>AwV 9ҨOPVrЉ&(x|XuG\nFLઃ0AR+Uu6q18D*vBl\r,n_J]@P\0,3i䰩%JSbǽ\\v;Ҿij.5y#B\0,4ꖈu3tIq0\n^c5pls-Uwp3. a6:w`3r*Yo)bP3v+^v/^W*6AYav1tq4uuuwiwwu\\鶤u?ulw}03luHUwucd( 0#bl+!{yNqN??{zN6Pta=S/|JZ7k,QZPq,FtӚVCtvs@NPxW&O2y%ҽ9s`KaK8,#~]sC7Ә3IRo;?Cw&TЪ]586&aO\$[lDYnt:\\4ockr3h|ͪMl-\"+I֤ ^T'b_*o.HC>u~vP2]O=U?5mT8tp~5@jc4 \"EJ3aӳc#PN:8jؑ,,PG^O'\"D\r\"M9m'z7OɅY Nvq}~QW9W7Cr8UpFMdP\r950K0NhLe%MǟYGݠ\nY79^XKym:'OAԵIƉWEYG0zCQDF՝]md-I㏧5NIiМEmWGxPV^.a)3\n3/Zs 'b:3`HOO\\0)5<Ɋ-\\Ty+YTw%1wȯh8Vn kǯ7o߆y3yѱ7szXwYw/]wg[mz)ImR4z_*BUy˥'Շ;xۅ%'I'I;\$Vmx_;C̛ֈlMU)\0.)\\)\0*\0*U_d}+t镘q˚{c|'(EחQxö?\\A[oQ:٦9֕mZ<\$sؔFI&2Zĺkd*FV#>Z<u[O^MlY:ѫJ%j\\PshfȜXeJurYgG۩58|\$7Йpt\$#vUWAB<M(/bs}\r0\\8TCz[kEWyGֳt8cu}F\\ n\r;ϰGt\r\r ̱g)\0t̍L\0\np˓\$)eL{\\mp>,^ј!; ѝY<ZGHjAY]Zŕ\na\rnϳC @[7g1|\rSwPR픚[ʷlq|B\${fAVsT䱋I)lrf?\0H=LZlp^cg!x\$);5 \"zPU1ȓElץR2U4R(GH'z5^\$6Z;J=c;L\04!WTk.aJS7acǑҌ)(dߑH،?]+Z7fX䬸G(vM @&RDq`[8V\nBM Dmqf;f)\0e\\XOk[( fI\$\0'%8d5myȐd01۽^G0{`\$ΰ(D`ox&夙k!\\KNw.9C>mNqj\\|}4 :";break;case"th":$f="%OZAS0U/Z\$CDAUPȴqp*\n*\nW lM1\"T!R4\\K3umpPUq\\-c8UR\n%bh9\\EY*uq2[S\ny8\\E1BH#'\0Pb2as=UW 8{#+&\\K#[[=-O5,%&ݶ\\&TJ}'[AC\\k%'TLWȽg+!'MbC ɼ 4NQ 8'cI3@:>2#:\rL:#-ڀ EM˘a9~NsL^\\.-R\\\"CCEÚΩMR:()E<)CH3srR7!pbLB5ø7I#|@9ÄC;\$(θ(34#mSAJsت,pA\0b)>֪m/:\$JR\n;~&uU*9l\\S,?#NDN\\MGR\\Ə6\nH#\nj&4ŵ̝{8R!*L1 pNY52-SR<+/օ\\f)i_H.!ϊ8P'VŶeJ)7z)zx4/cWzF7ȢR2\rP4CQ9P1#3>S;0cݶu 9`@n@2D49Ax^;pðlS3(ѣH\r-#x|:RJ3+|ΩɃX\\铎TKS{a2I7=nzfLÑnW쳺\\;`P0Cv9A(A\r!씂#ȗF1H% #ʜ#.IGgu/4∅*d!hO ݄ GClP0W]>[iLd&h4bh#2IN9ZdAҬ0WEᄣv|(MJ~DP(gtJX')2@\nI(#CЉP0 A`ND0ߍmDGoedd[k__;f^S\"Q\"@evd.%aJ\\5`x- <YxBB\"tQS;Ch}*\$^hBsa1tt:5[Ta.Cv4yh >X@-,\$II:3D(oGdan,cbBUSC*py֓VC417t0tU(0pEhih:PM;t)BP~/\$ŚR)'PCKnIl5t4Fq=ȹ7*˛9B\rт }h][\$)H FtW>+pRr?MjѪI)s7it:\\Zp&8 䜣s9烓tN:*Oi]XI\rD(IC[Q֤_u]Ya0<̩䭮v\\Phݰ oC#0ksptFCJ@xT9پҒv)Cm*jȱ#\\+<eTvd@@P\0`V%N2yeQ(Pb0s@g+ma po\nL~l;\$HƠlzuu 5(sA7\n]3J܀ H]n8=cJ\0C\naH#@\rj[@3џKrZ.0\\LNINF [я@[,[\nBKBd69#; -ja\$MDEA\$d,nPÌ73'pao3ci1D@<DeD;\$f=\nE-\r4\n2\$K(\0ުdAkPrDtsq'恪nY/3 ?#L#_ij.(nzG<a2E~{ ʼnU&p \n@\"|?&_YA<@/Qu</xތ#6hYl\"W~ɓxdd'vlCYg-?047ZZl#j^)mZ<lO'ߗfRz̏Fh&6/|e5)jEjiTD@MGa2NawD\"~(XI4h*ȴc'7~4MƜ͞\0FD/\n`HpK欨pKx@\r6#^ ʽP\ni͞JMGM*+A\$NJs?POtȾ\"\")`|IF^dCOW-%JIHDΊM&HgGeir`qpB\rbz+3V&2,@c\0dT\"JHog,xh3qb:ͺiQZHeeEE4 \0@0Pg>QmΔڎ7mDHpf;eDd&QgV.gĠ:()\0>9OFN\"/4a2dDeaJ';#H#lZd)%F o@NC~/`Fr%1JdY&ѧe|gd(:F>A&J\nNPV(<bA-RZOZ4G2G*/oúֆ@:JxG-yBpS#!{V:&IDY2DR9Wp-bddc`H҂}H3t{b'p'GԶIa6+\"S6s8S8J5\$&B~sc2:;3s (dFs91'OU8p{3 )T2~yH,+):<BAaAfpb\"5Q\"{iOf^D=%>.`\"\rl\rL@= SBs>}DCD=R&w1)TXB{QHQ=T'>}KE9rq:Tֵܘ0Ѵ<tNiEIPJ\0ɪXElh@D:J6LQnc\$R,; *ɮz)\n&\"Z:JI2Y/]#P{Lc++n&hQOUD]&PlDnn2F ;VS_eJPEMCyUb{:d_3EEIoZ]E]xpծ\\Y1CZaETuVUUkO].GL;[;Qg?`JǴ@TAV!PvFKӽ6{ASWXdUO'WcKceeʊp\0002X[f+g<8)D6Jqe%:({9%mi6]fhqLVMW֫*2 ?dF:p^Mbgp^e(/BS\nFlT,4PSdiOPUL\"kqkW5j3rWV@'mL6WT? n\0ȡ<WV\\KNmwxab\naZ|J/; +[Z>]hu\rzhoz@JE\"77Mz1r/vOOwtWUq]|-u1WXJ{wfe^aבzY6Fi7UJ3REwcw82a%,Zf1@D>PN`@,@RL8H@L<tFM%CcNLAXX8h4@\no78|*|ֻv4M}u\rk3W'~UpN, AQr^Ҋ\\h֭iH5+,Y7MDw}VQ!YF)Ư4wˎx;8?J4 \raȴͺ\"`ļTySf*{נJ7WrH\\j 7g F%x_yRs\"3:)Ջ'C>YJ~X\r'-r@n*\r8F%DQ;5yb')mV\np&R.Z59SS\$-J\$Y9]J{lV2d` \04t#ú)<:QZ8#b7:{|4Dv*_uCT/7w8⃚Yby nuhA! PĸWLh}ȗI`:oy|H ̶Wy|-'\na=I=J>홪[+O`\$>#d\rf\rַ^&5gGDWe]Z\\3v<{ 0[ŕ@\$VP3Y@mbT^Waɦ{(a=im<gZy4%-/C:caa}|LڳHdd<yp-Yb\rAW|[BlĽ{U#T3<4B\0 \0t @\n`";break;case"tr":$f="%(o9L\";\rln2NFai<BS`z4hP\"2B!Bu:`Ehr2r LcAb'\0(`1ƃQp9b(Bi=R*|4&`(a1\rɮ|^ZɮK0fK\n!Lx7̦ȭ 4k|\"tit3-z7eLlDa63ڜI7FӺAE=FqH7PuMn7Q#j|aŘ'=sx03=g3hȎ'a\0=;Ch6)j2;I`҉\0A j%H\\:\$&0@A#H :#\04B\n(ޡS\n;IƜB9Ãk:ê!0XB7\0P{GxҲ ;4= \$σ>#\$9p!pc:\rzT#9`@!c@2D49Ax^;Ձp:(\\zNүI|6MjB3#Qx4!^0Ɖ+4#Dym(\"Q92ڼ(*5<O31,U7BL!PTL\"XM-@08+tj#C'4PH{DmnvN֯#-L,b43%8Ô)fd &\r(P&&:X,Pܽ+@Ÿqx9b Gh0c[Y=B-xQO\"x];纄\0x>ӫ)b,.#cn z,Jsrbp8!n[^=660b9\$Pl6USH|>vIc[\0Myꌣ87+h\ra&6>qp} |;a \"y^.YbpNWr#ɡ#A3PPy]hGvzM,M3Fq8Q\"\$L)@TT*XrmZ+`KX^\rʼnea^*B8nCJ=Tl/3!9IMQ-t.^)AObEE⟁Q;@`bF')jg\"4HT*RuRjJ9+Un^݊9Vs|wJ \$F)\"+qs>g\$l&8Eсm6s.`g\$NN'бD,7)k1r>f<\"S\$Py\n7 g]H1V Ƞ&>A;1u)]-P//+?1hJc),pOR.Ffj=rAȯ)5tٛa@DDn\\u٠cEd\\3BXkj 2u<i`) DQ8!K2P ԀzdM -zO@}#Qt@#}\$HJPLAA11\nP *9zCH|C(G<<Ìh2ca~/1^P L*&W5#s9@&@D8<2DIČhLpG0T5@z/-)P,U9&l3~}EAӈЭ6>\" _m9X:I 8PT@\$A90`\".fQ +\r.\"Ę3b.\"NF\\f˓v>2\\J:ȉ<[\$ Yrʳadrce}s!#̱ZMp\"Jc+˩dn@8w@\\ΤX#uWoᬽЉ0W^t'-OԞq6oM'! b%2ysZƻ'<Y/5avG&^si:Ƨ8sR&*{\" :ߍIKtm8(.!6̞uм+ؔm#ۈDh0BGl5?+QhQʓi\n\"\"O \"q\"J\$mD\"|BC V0'@\"9fLّ#`{<urb\0C+/^1'Ϡ't^8!Oet{جw!Q|WpL!u@i8g f0yc`[5~U1W~YzxrӎG~JFtHem{i\r*%nw>`Zˋ elfPH\\첸6QI\"558Rj']6q.PT\\Q*o;~{#!2C(OԬFO֍\"sϸ磰.e^kb'cF8B\"GG,Lj\\!ӢPX\\GmsdŢ \rp\"J\"IB\r@liŠТ:\np؇>\" o)- 6ʇCptohMPD^SpN).&\0π7.'E#Mnᦱ,FNPa?]HK8+7\$LQ\0mI)\"2\"d^5ADΠ9%J'#~J0(ɒZr ސtN%\rԍq\r\0Ӱ*vlhnf01O!!1o('0\"1\0j&dħE`-^p!o i:K-0fQp&- qpdL!%JZ,s#J;Q2>2J2zŠg8F#&\${ \"0f2-#2h R-9(*\"&#@C<99/rN0'j|?*R:ܓ 3z/6-A#pnA.~ㅎHn3TbRZ;r(Kr|S[s7ac7QרZrn^i9C@c]*8S\"# :*VR\r!Db-%鳮'\0BW`g+)M\$]C,C6\$C^Zd\rVct\nZ&,JB&q\$;3;A;v+Dg%&^9\r@in,Do7QFd_⒤rr&NK/J:\$NDgu-e,|A11l,Lg<мNSs\$:\"*!7ؐ#~ŻNNK@pl60Pà\n01\0ތF_`8L ZPŨ}Pd#pgaT2|AGT&ME`gΦ\"d9+-ƊFRP˦fc";break;case"uk":$f="%)h-ZƂh. h-mhĆ& h#˘.(.<h#v_Ps94R\\h%p NmcL4PҒ\0(`1ƃQp9\$&;dH5}Q\$C˩ZB D8(iyA~Gt(ygY1~Қ(BdׯKmJI\r.(VV1>#\$:-r%CǴ)/tp^\r>[73'6SP5dZ{h>/Ѡz0)28?v(P|\"oKB\"i{* 5ϲ:㹉вH8ޣ\"JBZ薉(F)ZY(\$&Y6,X\\Nz#DZ9)ĵ+;DLh1(3 (1@ݷlhQɠMH>K X Ě!аqQ&1d3WH\\C%PnTxH\$D-hU͋^5OR\"\"9#:hƁGQ8mn#NO*# 4(&Ԥ!rްX_ܥ0\\kUsɐ;(~\r3:x\r`Ap9x79cv2Fn=,@Mn;GB^0jXƐ/Q Ѭ+\rbe^V8<\nvxZnz \nO[D_qNliRI!7`PJ2biZBʫ\rs5hZ~H(5h|\$`K ąDUDΐ':)Y:%<N3u^j\"Se#Yj/pf<Ǒr\rAS\0Zޖ|)zP8FFVTz\$,bdÛV.5'EJ,4V@PS\n!11hA>&IF_:НnB\\1%!DBIUġ35b<NX+x[*S]HaM2[\n*o\$+\$-hj\"((k0fҰ dM-%JZP&=5] ÛL!q1M20II0Eb!RQ{\$NĤqi%&A@)Y1'F[T0uG\$eB렟9LDTEaI2V\\2ȭC4&T'5M NQ6&\$6C@\npDj\r9zqCӨN#;DCY>w5 mЩ7\r!ӕwiқcsD9Gf4PO4bu]&WI&E4DI<MILذQ\n_9&yK<8Ӎ2&HəC*e3&hͫ9glpa4Elh,Ea)<FDIT2#+4L J+aU%DJ/RlO+Nha:b?|İ;6ԊAe8+s%d쥕^Ywf3xϚ\0eџ;TICPU5jڪ麟Yil0Ksх.jBi_'Qx%UnDxPim'v'fPOsRٻsڴQIC<<;y,̲BF,@*PP @ㆡ,ݡ9\0O\nU 1)\n \0_L^A\\E;@')|<]1,JhyƆ9a70ue[r\04ɦTI\068-CDGg#h2JS!0Kgv6Iϼ4.JmWGUP1d>ykL&moF,\\R1X \$#uu̥PWƋԚrBFĆV&qYlZGRDɚS=}2:BsyxO\naQuCaIW%bF ܯFImӣ`\$ML D9-\$uiON\$Rf`BIڄF\nBhb4pUB-u!TxeQT[LL\"7&wBn3#mت5uep)EW#E[F)?y~ EY~DM3\$>%!1bIzu}\ny^qLAǗLG\$Q&7jǵBZDf#6;fFz>_u-BșKDⴘ)R\nBdEMyNViNCRa\"Fl(PFÆFm0OzhlA\0I(rmc|~6fL\r6P脩ĄEcÀ#D&g;\"zS=ԋ'lOn*nGD\$1\\\n@0/NC/&2[OXBDr14:D:qЂ!DGT6\$^̦&*((Mޅc]\rwZ\0DDB\nCF59(Ⱥ0Yϵ/jWI.\"U\0\n GnJd\\,vk*Nm-t,s\0^-4m'tt#u5aEQ z(bh&;J\0Cy7>1GW1GC 2 Y1!!pc# !%;\no#R²:ϑ&K&&ī!Mn;&2P6T҃'6!&ʀbm\$<r\0QޤV\"Fwvx,/LZ<!j=\nT{bPRĖ͞f&Z (*>&d¡n0R[.}md\\iRDq1HZH*d&p滏|A)0% v!#bBQr66nk]u86?90po59)<0\n9g8o4MZ=m>A甝zJ!@zpx4+Cp2~/c\rV<LqAB>\$\\wh2>7A7(vbC&`\r\r \"BFn4d\\HrsӞ3l\\\$rc4:GZ84-GHY6sZ~YЊ Gr;3舵toDKd\n<sKUL=KApM,\$\\4:/\rhLqEMԶlAD o0xNPӣQHNOd(gPE(:ԴC?*풆M[PGԺa5dkUsST@:vVp JfJv@B<n@ez' ٤SDo0H4BH\\sªNq5ѨxZse\n-4(cX}3P==G7CR^\"4\nF'mX1N1-d!iVzpouM4W1wMHo_\n3)eDSW@lydv-JHu]&f!if>_Q3uE;&cP1\$>o0l,q.>g]R1felh6TfhZυo-OTS'io֝s\n{}'\nv]ĵ7\r[ qeq f\$=\\Vd^%̕vanerlAvgppaGk`IL6I7֛r:ysyׅz^wetEUvuf71iykkz2pI\"sih[~QU#q1~Mw}77g]šg)LwÁqXW1a.*Tt}3%.wpCQDVGR [1ϟ_ydy+DnZx7fUW!J?\$ d?o'nUIFQ\$'U2cL?Q3vOrRrf80\$'E/БxpӍHU+~vPPZ6bC\r\",'ؿTQByy,RP8ߑU3d/P3pQr(+ᑘ_2Ji~\rV\nq3BD!PVl-VhӮVm?\$,\nZa\"2FlI \nLSrEU/N!m),%+GMn~Lb ǵ3 :d^cx#QBDU5T6)ΉB'*_XRM 0\"=,[ 4nFF*+DH\r^U;&|5l0>X-9SZ h_VvT,Du=:Y:o{7Kz<n!61ZUZНe>O؎V4],J0:O\\zD64x&(1ZD#5DHi38tyMTG`Fg*snMj= <yF|PR2rGWs3A=Ng/;S[V";break;case"uz":$f="%(a<\rƑk6LBNl6Lp(a51`u<'Ai6&%4MF`B\"u2Kc'80cAn8'3Ac4MsI@k7#**''3`(;M6,q&ƙ}ģ+77:B:\rW.3b\r4q/|\0(a8ۍ :`*{VvN-o)dgxiw7MX('b%Iyawu:D50K82cz(\n2#ؗCX:\$VL[<&{♺\nn*2M47csX߯#%ct\$n5L P2)s\n</s&c\$+*F6ј1Lr4BCc7+@S ޑ#;Ȟ\rhAPsS@t\rAID3Њ.P\"07c2D49cx_)6̈ġ|9c\"2|-8L4x@/O2l%:2=&KZTȳ\n,=&Cw;˸ȼ~눲!(2,'xa8&L<N:D\09=9+C,#79;Wи:CF`3C*d:\$R(('#j2FRn9L\r!(:!* 7@]m;f \$ \r67H&J(<8O<\rJ:?9%!;'!`=F/S )s6%##}.K.u<!uHsQcii\0004۶I@Ea9Øݴ|а:*D́reYcG(`S,3Y#R\rb1M\\jM39¸_#5l8fAc{BL}0NnD+,CRa}Ƣk\r\$DzxRJ ='R:},¢bϑ2%bhC@V\nɦUnUڽW`2ı2\r2VJ4zW{t\$3PNHS2KҐjze&J@;8*T{TS* \nEϏ\\40é3lW`,)(rX\$2IZOY,~RQXBʰsL#g\"mI?dm9L!Т\$#sv)bȉ#-(kjhIT*/ \r4( (i.r|\nMhe,\$£tR]L+NF\n(Ю*\"NJIYM\":}Y'qH\0a>2Ql#2J9-\$@vu_PZFDwLNH{\$4:Y@(^g*E\\W_Ep43) (|bm,ɸq'ہ~7-@kKa]!\r\$P-b!%r((k{@:dd?z@n3n%Ie]5ēb\0F\nXCx9q#^FR)b0'Erch,HL@y8C \$)bXp\nd줚'bxLKO;ݏ\n\nhHuTZ0^di!\"ǥP\\yA<3M`|VUT\n\\5ӷKe\"Ip Pg#ˉwlUt2 \rOӒtXR\0HAĭ`H֛*MN|A:/N')t~#], it@PH]1I0Y[bhdѠ(96:\nGU6;7FuQqp\$]/LI\r\$T1tabʧx*ng\r\$<<u(g qg\n,%E(NNAA:GܔPS-@2Kۦui97\0OtY2d;!Kg遨;\$0^S5faɑdRW^Bj)\n\n3f<cٌ}sR ںdE#w{wL:8Ntc&x]ӿ2?:\rw2ayF?.RXq(Oo\r[3ܛQ^Jrfy*&S}PX2eA?O/-xoh\$4W10\"\"gw\$3l&l/ FMxp/b;\"_0(Ȍ~`l\nfts.&H`̸A@'FF\"eP\\`Hj?jHXM趰\";BBLd? IL>~l/Ф l|>L\nкvN0PPtG\rvQ^Cup6'&|ˮfllNMu.dP\nJ,8^>0n\r\rE<X&d7X#-#CHe{JbJ1 L%Dj:Dqhnǂ}\"pHCZG-66I:\"\\J(=\r߱oq2tv4zʎFܱO^lгɕ qB6%P\rQQ\"2 ;\"Ir2/=`i0h\$r2ript%#h!(\rҍhh'm*f{%%2NIjHR%(R,?&+,\n?.R-2@,q\n-S(0=nR.\$ '2.)+!1I0=n22>R(C<E-0G0u3O4;̖H̓#ĺL-.~pCpNN33~L7s0@f42KrBm\"dn!8,.;m6O83C\r@d4'\0\n=J%11Ɓ.(CJ5h`0V\"l(`\npft+M.zw9?q6L%DD&x]\nBB2#n3 N%G248T\n4t0\r6\$HF<kP(->D<n,\"l@o0LJ夻\r]nj6L;MjN`?NC@D4RO6C%H}1|SXgƬy@:ay'\"vv 5@kR7>O] PGP2\\0c\$=c'Tr^EgU+sEBU12>OҊfwG,-e)4#@䊵 ";break;case"vi":$f="%(ha\rq]Ҍ]c\rTnAjhc,\" b5H؉q Nd) R!/5!PäA&n&0cAn8QE\r Y\$Eyt9D0Q(Vh<&b-[no\n(U`+~daH8iD\\Pnpu<4k{C3 2Rum]/tUږ[]7;qqwN(a;m{\rB\n'ٻ_2[aTk7)o9HH0c+767 88@@ \\j L+@ƻl7)vOIvL:I枧fakjc]/P!\0d! K P k<M\0\r@h4AN!c3(7\$Xb,(R-2j]2<!iJ NA1[(Rf1B\"\rAZ8B<&u=SI#qtI>(0P2\r<9ph#n\0@C҇\r㭘B%\n\0x3:x{\ra?/p_pcI|63?k4^02T.́BED\",9e9):&Y^\";\n7ZH(J2/C2S)cs2R̩JVJ\"!7\"]q:V6qJćeJZ7k,2 JGV\n5Hƈ3Q7tWcéVI~;U6Ê4J4YfBΓF\n#TĮ@-џR|[46'h(PCcn\r)+uߢ\$\n)C4{au!FTz~ص%WhUH*]RTs/5ux %JaK:V~>91C>h3,t~J6A@ 8nZ(C)\r\$\0`\r3*Ih;\\F BnEP.)],\\ Qz^Qfi.Hn2T 3ŕx3@ @WK1@uW^|4\0`A4N\rL¢B&~KQAC:G4ċY3oČEғKuK\$t.ػ^|/2}er_D &BIfmOd9SCNa\"[ȹ{Hq1B@X-IfhMd, \r'C:FԘ.@fԡ*.]Sצ8u['p&i wD %|D\"xw8 vag hb>TycHMCY\\E j:(뾐Ӓč !KitA5zaH#X)f1&4Ыec6i\0(;(v(Msrsj-DȚ6BI>腦mRu\$\$0\$74B]Q@\$3s&9+\0դ+2| M/\n<)Hws\$LpjĘ\\XK݀:M+C3\$<R3~Gr\"RH(!p*ζ3dҜE2ti-b^f,+N ^EGB\$yQ+ jgF\$X\rE)w8I)>12Y;'zzdqv\"m(YhDӱ^h?#taL_(#/L\00*:G04Uzm(bz\rPLܓsٟwY\n^#\$7Z--\\Ãg95=N\np%ވ#6PكHzgd2s\r1W<%B \"jQefBqV}(*CH^ok-|ԟ c Mupy\ntj<k|&l|4+xi, ֙Mݭ(#JFUDʪkvjWP*#gXPu|w%#Ì\"xG^\0T\r2I1ܵp,In5F.VpIA*E4|ՄPYxeeCJ^0jRRv䘯87!`+'{Ǜs?p]Ψ(FoKFOKS1DF\"//\nLO\$7\$`)'\n~*DI\n6 .dv6)QF#zԢfFł3\rLSo~8922N-N\0>6'@~BBt^\"b-qbMp5\n˦UЌFA!v\\8KoE0j\r FlڈNY 2GKDpJ/8;>H0\\Lӱdq&![ P(H-T|go%皚\"|JUK/,>XEP{B.\"CcNQq~汅q0h8\\\$\"¡f\"9|pqN\\/Q鶶Ed:j.Nŋ4GF<\$m0(nHѣ 0cn\\qrz.БB fBQeJbfqQ\"2;\"Nx|*\"D\";G32cRT9e'\$fy'nvkrvN78\$JR!w\0֛n:T\\~_hri!b/,e'HF.-2{'CzW8P(m\r7Qb*9T<? P%C pZ-I.\"I/3l1р-G4w'\\=(Ds\riF@\nB`#\n\nFBhSn@tlVD67\"福7le{?N+(䓰s%-s3sc<yWNf:ѤE;fZDQe?FméQ645c݈Bez6:w\"{\$:UtAwDO\"hԩ-KHCJ)\0-\n@GI\"S*G;.TcHJ,)\0\nqp8\0JO(ʊG#cFW\$x/K`2nS+1/kHq.003bn6cГ^dJWd+X\"m*K vp.*0a1mP#FA/`\$53\"NFLv`Z5D\$& @6^/F_\$ep4TPJl7j<ElJLOPYZ\"V%NEEU35ĎoRLnm\\roVvMKL\00\njPa^0ʙ*:JU0pzE<u4I\$:N \r>Ə1\$-N\"Aj3q?vfkCD(`";break;case"zh":$f="%:\$\nr.r/dȻ[8 S8rNT*Ю\\9HHZ1!SVJ@%9Ql]m FU*qQ;Cf4usUUt w:t\nrU:.:PǑ.\r7d^%u)cxU`Fjrs'PnA̛ZEf]EvitUλSծ{Pg5 EPN1 V\nW]\n!zsΟRRVI:(s#.UzΠ@:w'_T\$pVLD')bJ\$pŢ[MZ\n.>sKAZKaLHAtF3D!zHC*re^K#sXg)<vhE')2Anrj\n:1'+ֲ2izJsͲ h7] 9HN_esK? RY4=DF@4C(C@:tT3>x3(9I|1B:LΝ\$=0!tIE'5(RMy&s#SE͒CH]K:KC%um0KV)\"EA(CGAFpܗ&fTYCG)\0DGSW)\0^cTewa D#8s*.]\"h^9zW#s\0]c9a Dj<V]2gC\$CCm8)\"entI4}|=3Q''1Q,g^nKsSL̋&eȜ:ϿC34;.Ml`#@6S6::=9CZ\\u|!p4Z)M=?pA\$_Kz<O66ҙt_No-6MHX:+3.~ɻFbt\"\$r!bJՄP~T]'@Gr[\0 @\$\$C1v+ʛS}P5JJUX+%hxdx:2°_:X%PQ'Ea/1ir\"&B\rBoM ~pOrTJS*Tb*YUnCtV'+uABV2>,E\$\$W1,\"r,E4H=I>ŊH9kdvd\$?M#9# 9t,Ǩ4zZ) @@Pz\"MQ-DV':HIAØG\nTf,8o&Hs_;0hDM#bʹ{mR NAr@a(3WT&(8LZ((-I\0PP\n\"\0C\naH#.)(#g8/I\$V&.FR:E=9)%hhs\nj;?ca@+\\p ZлНW*RdȱQ4G4\\р\0£RAOXcHUt*!Y?l EL#@CȈ& 8E@OIy\"9+1dϣR c(YP*[s E a/WE`LSA/DMBsFQB.QwEߢ)0t7gʅ2Ş\rna#/-/)&dF@&g@DCOA^|\n|JIas4GEʹnٓ3+n<ArV\n907Àl=\r:1;>t/vJֻNx]&h(jp4\\|GEА,mE\nIpa(h5b`eIiLDxKGo\n5[-l]4:D\nÀ&k4pHÜ=').oI@@<@Q+Ö<Be0^6 Dwk)6QK-(DdXY7'm#Q66wHDX1زhLWfyD'oVә1btR1UoRƣA\\2.QoE vh[Q[k6b)h˰G.%/5 &9g6]93]wB`qe}d?uh{6{^öQ{47<TdLלR&[O+\\Z0FZr]9^T9-ݏb4AEK=Oj_wE|}ws+|X3jzcX{ߓmo_'Q%44%#yf\$|Q VDI.(-a\"&pQ6;j#v!!()\0d7D.Сso-6OO|G4L/Pat2^\r~'t^Ж# % u\nmJv\\a:J^o\\H.L\"4Nbl6O^& ZׯФ'*eN)jqemJq3:a=\"\rhO00'-KqHÛQ\0ϑ)%\"`Set\0l\0@\0m)M1v'OQvl2~1M6ӠPp]11R4FUNTFDRoW t@i #\$-t>F-x^.F,w#\"J8M>,g\rv~p 3F) \$P(C\nZhOC!dH.!6ì6\rdfdgʳT3\n.䊪#\\JN16-L3o2\"p-4*2fL/nҽ+,2fAt,FE&% \r!@,#G1%L\$\$19{2%A\nJs<K;9L>7:qLCo6>(+D\\";break;case"zh-tw":$f="%:\$\ns.eUȸE9PK72(Ph)ʅ@:i aJe R)ܫ{ Nd(vQDCѮUjaʜTOABPb2ar\nr/TuʮM9Rz?Tא9>SNeI̜Dhw2Y2PcмW*=s7B9J\"XQ2M/J2@\"WrTD{utspS\\=\0Vp\"R )ЪOHΔT\\ӊ:}JF+JV*rEZs!ZyV꽯yPA.yZ6YI)\ns Z̢[2̒KdJ12A\$&Y+;ZY+\$j[GAn%Jst)P)<?\0Uw*x].2ft+<Kd(A2]*X!rB\n# 4(tE\rl Tr{:OpbJBO:F@4C(C@:t㽄4)Kx3(9PI|t(B1֯B|\$ q/9H]D̸et\\K6?LQ\\1H@PJ2:@ea &s2So1Qd0ם3Mewd:<C)xGdrBHreBi^1I@\"ZP@fg1pM j^B<JLf*83(ڰ:s (&^)Dr\n淘1(\\մ _ܾ7&]>Tt734ҥr</hCHHs,o7|u+wxbØ@6XU:Cp@09#uW97H}U1 ~1KTNFQ8)HTKPs3cM#& )FGpXa*%)FG4B',a\na\$\n0Cո)Ȉ%)(pfD N*R:a\0(&D `\$UV\\z\nXId,xd|:ζV\"@XCt e/0ʴE#Ȫ髃dpOWJ_,\"Ɗk%e՞nrEl-b(f\0CG@e}!]>]w/U\$fEhC51QB'!!&Ѱ9sa\"CQ>-0d\$TD2(2xDv\0 \r\$BGu\"#䄑Fօ*DM?!PD*\$G@&d͘tl!E*U)\r\$8lG9i^*hЃL\nf#@A\n/8F[(4ZjI\0C\naH#\0Z')E\$&ra\\E^0\nG0\\Ck=&ȵ4tXEP,S!'BbS*r?QXʼW~9KĂ\"G4N\"xS\nVEFLIfdΜ;&/Uiਪ\r@50T\n;&8L%DޜG*sp,96ԹBLpO *\0BEX@. d,^1 #G9##=V0sn黳ba:XVAEX/OD堔qhTػޛE\0*0H P\"`\$ӣR\"\0\0R]aeP\0ֈYEhD4nAjq] 9ӑbL!\"J%܆E<07PlJ0Y4B+-gU\r:EH,b*`d\n9ŠhIas6ؗs Br\$.X\\0)/70Ck\rZ@'S|SL6[w5T]&_'^#h?RBhg,NʻJ\"}Jy,C -|`~Qb,( @Zt!qz,GHdq\"ؤxG˙xf⍏5<|uQr/TD/.%%9'!蛃@ɿ}Eӽq9\r%\0þo\"3L戴uV\"<ע#N LNL!1|TOaI)x'OF;F(O{f:|0ثSmpk۰fhT\nsO\"*煣Fɓ~?k#I/h8-K'@ڗEn#ϺGVopϒσql>uotnOg<!Wp&Nx6PNP@s\rXuXh.FlC.N`2zorAkrK.\n0\$9\r^Bʛ0>\$\0NU\rpJ\0M8\"LUkPЬ1Jp^`&6HQ4Q9v6w<6א\$Njm ͍\nQb0p_NAxrB.GB^h+B^~(7pKN\rE(!.溓!hڅ0%Qzhq#yL\"'\r\$-\nРQR0DM!\refZF2\0@\0#M#R@{(RPۭ##]\$-B2bM&V2\$ G0ޒ(_*R9)C\$HqyLrK,\r,##,\n)@ZM.aLwAD<^Hi +N*?H^!Fb:!k1,d:h.3!z\0:R:è^6&rIjY-\0\np9'PO6vB!gJ0bڅ涡R9dÔ1\ru7C\n\\^SȨ\r Ht:q/Bl-/!#Nl3\"O2aTa`bGQAuai#͔./ETNĔJ*, &ʨ\n`ڑS++BmnNB>튟Rw3?nD0J,j2#&rrBN#+ąL";break;}$Ni=array();foreach(explode("\n",lzw_decompress($f))as$X)$Ni[]=(strpos($X,"\t")?explode("\t",$X):$X);return$Ni;}abstract
class
SqlDb{static$he;var$extension;var$flavor='';var$server_info;var$affected_rows=0;var$info='';var$errno=0;var$error='';protected$multi;abstract
function
attach($N,$V,$F);abstract
function
quote($Q);abstract
function
select_db($Nb);abstract
function
query($H,$Xi=false);function
multi_query($H){return$this->multi=$this->query($H);}function
store_result(){return$this->multi;}function
next_result(){return
false;}}if(extension_loaded('pdo')){abstract
class
PdoDb
extends
SqlDb{protected$pdo;function
dsn($mc,$V,$F,array$Pf=array()){$Pf[\PDO::ATTR_ERRMODE]=\PDO::ERRMODE_SILENT;$Pf[\PDO::ATTR_STATEMENT_CLASS]=array('Adminer\PdoResult');try{$this->pdo=new
\PDO($mc,$V,$F,$Pf);}catch(\Exception$Hc){return$Hc->getMessage();}$this->server_info=@$this->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION);return'';}function
quote($Q){return$this->pdo->quote($Q);}function
query($H,$Xi=false){$I=$this->pdo->query($H);$this->error="";if(!$I){list(,$this->errno,$this->error)=$this->pdo->errorInfo();if(!$this->error)$this->error=lang(21);return
false;}$this->store_result($I);return$I;}function
store_result($I=null){if(!$I){$I=$this->multi;if(!$I)return
false;}if($I->columnCount()){$I->num_rows=$I->rowCount();return$I;}$this->affected_rows=$I->rowCount();return
true;}function
next_result(){$I=$this->multi;if(!is_object($I))return
false;$I->_offset=0;return@$I->nextRowset();}}class
PdoResult
extends
\PDOStatement{var$_offset=0,$num_rows;function
fetch_assoc(){return$this->fetch_array(\PDO::FETCH_ASSOC);}function
fetch_row(){return$this->fetch_array(\PDO::FETCH_NUM);}private
function
fetch_array($jf){$J=$this->fetch($jf);return($J?array_map(array($this,'unresource'),$J):$J);}private
function
unresource($X){return(is_resource($X)?stream_get_contents($X):$X);}function
fetch_field(){$K=(object)$this->getColumnMeta($this->_offset++);$U=$K->pdo_type;$K->type=($U==\PDO::PARAM_INT?0:15);$K->charsetnr=($U==\PDO::PARAM_LOB||(isset($K->flags)&&in_array("blob",(array)$K->flags))?63:0);return$K;}function
seek($D){for($t=0;$t<$D;$t++)$this->fetch();}}}function
add_driver($u,$C){SqlDriver::$gc[$u]=$C;}function
get_driver($u){return
SqlDriver::$gc[$u];}abstract
class
SqlDriver{static$he;static$gc=array();static$Pc=array();static$re;protected$conn;protected$types=array();var$insertFunctions=array();var$editFunctions=array();var$unsigned=array();var$operators=array();var$functions=array();var$grouping=array();var$onActions="RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT";var$inout="IN|OUT|INOUT";var$enumLength="'(?:''|[^'\\\\]|\\\\.)*'";var$generated=array();static
function
connect($N,$V,$F){$g=new
Db;return($g->attach($N,$V,$F)?:$g);}function
__construct(Db$g){$this->conn=$g;}function
types(){return
call_user_func_array('array_merge',array_values($this->types));}function
structuredTypes(){return
array_map('array_keys',$this->types);}function
enumLength(array$n){}function
unconvertFunction(array$n){}function
select($R,array$M,array$Z,array$vd,array$Rf=array(),$_=1,$E=0,$Gg=false){$me=(count($vd)<count($M));$H=adminer()->selectQueryBuild($M,$Z,$vd,$Rf,$_,$E);if(!$H)$H="SELECT".limit(($_GET["page"]!="last"&&$_&&$vd&&$me&&JUSH=="sql"?"SQL_CALC_FOUND_ROWS ":"").implode(", ",$M)."\nFROM ".table($R),($Z?"\nWHERE ".implode(" AND ",$Z):"").($vd&&$me?"\nGROUP BY ".implode(", ",$vd):"").($Rf?"\nORDER BY ".implode(", ",$Rf):""),$_,($E?$_*$E:0),"\n");$Xh=microtime(true);$J=$this->conn->query($H);if($Gg)echo
adminer()->selectQuery($H,$Xh,!$J);return$J;}function
delete($R,$Pg,$_=0){$H="FROM ".table($R);return
queries("DELETE".($_?limit1($R,$H,$Pg):" $H$Pg"));}function
update($R,array$O,$Pg,$_=0,$Ah="\n"){$qj=array();foreach($O
as$y=>$X)$qj[]="$y = $X";$H=table($R)." SET$Ah".implode(",$Ah",$qj);return
queries("UPDATE".($_?limit1($R,$H,$Pg,$Ah):" $H$Pg"));}function
insert($R,array$O){return
queries("INSERT INTO ".table($R).($O?" (".implode(", ",array_keys($O)).")\nVALUES (".implode(", ",$O).")":" DEFAULT VALUES").$this->insertReturning($R));}function
insertReturning($R){return"";}function
insertUpdate($R,array$L,array$G){return
false;}function
begin(){return
queries("BEGIN");}function
commit(){return
queries("COMMIT");}function
rollback(){return
queries("ROLLBACK");}function
slowQuery($H,$_i){}function
convertSearch($v,array$X,array$n){return$v;}function
convertOperator($Lf){return$Lf;}function
value($X,array$n){return(method_exists($this->conn,'value')?$this->conn->value($X,$n):$X);}function
quoteBinary($oh){return
q($oh);}function
warnings(){}function
tableHelp($C,$pe=false){}function
hasCStyleEscapes(){return
false;}function
engines(){return
array();}function
supportsIndex(array$S){return!is_view($S);}function
checkConstraints($R){return
get_key_vals("SELECT c.CONSTRAINT_NAME, CHECK_CLAUSE
FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS c
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t ON c.CONSTRAINT_SCHEMA = t.CONSTRAINT_SCHEMA AND c.CONSTRAINT_NAME = t.CONSTRAINT_NAME
WHERE c.CONSTRAINT_SCHEMA = ".q($_GET["ns"]!=""?$_GET["ns"]:DB)."
AND t.TABLE_NAME = ".q($R)."
AND CHECK_CLAUSE NOT LIKE '% IS NOT NULL'",$this->conn);}function
allFields(){$J=array();foreach(get_rows("SELECT TABLE_NAME AS tab, COLUMN_NAME AS field, IS_NULLABLE AS nullable, DATA_TYPE AS type, CHARACTER_MAXIMUM_LENGTH AS length".(JUSH=='sql'?", COLUMN_KEY = 'PRI' AS `primary`":"")."
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = ".q($_GET["ns"]!=""?$_GET["ns"]:DB)."
ORDER BY TABLE_NAME, ORDINAL_POSITION",$this->conn)as$K){$K["null"]=($K["nullable"]=="YES");$J[$K["tab"]][]=$K;}return$J;}}add_driver("sqlite","SQLite");if(isset($_GET["sqlite"])){define('Adminer\DRIVER',"sqlite");if(class_exists("SQLite3")&&$_GET["ext"]!="pdo"){abstract
class
SqliteDb
extends
SqlDb{var$extension="SQLite3";private$link;function
attach($p,$V,$F){$this->link=new
\SQLite3($p);$tj=$this->link->version();$this->server_info=$tj["versionString"];return'';}function
query($H,$Xi=false){$I=@$this->link->query($H);$this->error="";if(!$I){$this->errno=$this->link->lastErrorCode();$this->error=$this->link->lastErrorMsg();return
false;}elseif($I->numColumns())return
new
Result($I);$this->affected_rows=$this->link->changes();return
true;}function
quote($Q){return(is_utf8($Q)?"'".$this->link->escapeString($Q)."'":"x'".first(unpack('H*',$Q))."'");}}class
Result{var$num_rows;private$result,$offset=0;function
__construct($I){$this->result=$I;}function
fetch_assoc(){return$this->result->fetchArray(SQLITE3_ASSOC);}function
fetch_row(){return$this->result->fetchArray(SQLITE3_NUM);}function
fetch_field(){$d=$this->offset++;$U=$this->result->columnType($d);return(object)array("name"=>$this->result->columnName($d),"type"=>($U==SQLITE3_TEXT?15:0),"charsetnr"=>($U==SQLITE3_BLOB?63:0),);}function
__destruct(){$this->result->finalize();}}}elseif(extension_loaded("pdo_sqlite")){abstract
class
SqliteDb
extends
PdoDb{var$extension="PDO_SQLite";function
attach($p,$V,$F){$this->dsn(DRIVER.":$p","","");$this->query("PRAGMA foreign_keys = 1");$this->query("PRAGMA busy_timeout = 500");return'';}}}if(class_exists('Adminer\SqliteDb')){class
Db
extends
SqliteDb{function
attach($p,$V,$F){parent::attach($p,$V,$F);$this->query("PRAGMA foreign_keys = 1");$this->query("PRAGMA busy_timeout = 500");return'';}function
select_db($p){if(is_readable($p)&&$this->query("ATTACH ".$this->quote(preg_match("~(^[/\\\\]|:)~",$p)?$p:dirname($_SERVER["SCRIPT_FILENAME"])."/$p")." AS a"))return!self::attach($p,'','');return
false;}}}class
Driver
extends
SqlDriver{static$Pc=array("SQLite3","PDO_SQLite");static$re="sqlite";protected$types=array(array("integer"=>0,"real"=>0,"numeric"=>0,"text"=>0,"blob"=>0));var$insertFunctions=array();var$editFunctions=array("integer|real|numeric"=>"+/-","text"=>"||",);var$operators=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","IN","IS NULL","NOT LIKE","NOT IN","IS NOT NULL","SQL");var$functions=array("hex","length","lower","round","unixepoch","upper");var$grouping=array("avg","count","count distinct","group_concat","max","min","sum");static
function
connect($N,$V,$F){if($F!="")return
lang(22);return
parent::connect(":memory:","","");}function
__construct(Db$g){parent::__construct($g);if(min_version(3.31,0,$g))$this->generated=array("STORED","VIRTUAL");}function
structuredTypes(){return
array_keys($this->types[0]);}function
insertUpdate($R,array$L,array$G){$qj=array();foreach($L
as$O)$qj[]="(".implode(", ",$O).")";return
queries("REPLACE INTO ".table($R)." (".implode(", ",array_keys(reset($L))).") VALUES\n".implode(",\n",$qj));}function
tableHelp($C,$pe=false){if($C=="sqlite_sequence")return"fileformat2.html#seqtab";if($C=="sqlite_master")return"fileformat2.html#$C";}function
checkConstraints($R){preg_match_all('~ CHECK *(\( *(((?>[^()]*[^() ])|(?1))*) *\))~',get_val("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = ".q($R),0,$this->conn),$Re);return
array_combine($Re[2],$Re[2]);}function
allFields(){$J=array();foreach(tables_list()as$R=>$U){foreach(fields($R)as$n)$J[$R][]=$n;}return$J;}}function
idf_escape($v){return'"'.str_replace('"','""',$v).'"';}function
table($v){return
idf_escape($v);}function
get_databases($gd){return
array();}function
limit($H,$Z,$_,$D=0,$Ah=" "){return" $H$Z".($_?$Ah."LIMIT $_".($D?" OFFSET $D":""):"");}function
limit1($R,$H,$Z,$Ah="\n"){return(preg_match('~^INTO~',$H)||get_val("SELECT sqlite_compileoption_used('ENABLE_UPDATE_DELETE_LIMIT')")?limit($H,$Z,1,0,$Ah):" $H WHERE rowid = (SELECT rowid FROM ".table($R).$Z.$Ah."LIMIT 1)");}function
db_collation($k,$jb){return
get_val("PRAGMA encoding");}function
logged_user(){return
get_current_user();}function
tables_list(){return
get_key_vals("SELECT name, type FROM sqlite_master WHERE type IN ('table', 'view') ORDER BY (name = 'sqlite_sequence'), name");}function
count_tables($j){return
array();}function
table_status($C=""){$J=array();foreach(get_rows("SELECT name AS Name, type AS Engine, 'rowid' AS Oid, '' AS Auto_increment FROM sqlite_master WHERE type IN ('table', 'view') ".($C!=""?"AND name = ".q($C):"ORDER BY name"))as$K){$K["Rows"]=get_val("SELECT COUNT(*) FROM ".idf_escape($K["Name"]));$J[$K["Name"]]=$K;}foreach(get_rows("SELECT * FROM sqlite_sequence".($C!=""?" WHERE name = ".q($C):""),null,"")as$K)$J[$K["name"]]["Auto_increment"]=$K["seq"];return$J;}function
is_view($S){return$S["Engine"]=="view";}function
fk_support($S){return!get_val("SELECT sqlite_compileoption_used('OMIT_FOREIGN_KEY')");}function
fields($R){$J=array();$G="";foreach(get_rows("PRAGMA table_".(min_version(3.31)?"x":"")."info(".table($R).")")as$K){$C=$K["name"];$U=strtolower($K["type"]);$l=$K["dflt_value"];$J[$C]=array("field"=>$C,"type"=>(preg_match('~int~i',$U)?"integer":(preg_match('~char|clob|text~i',$U)?"text":(preg_match('~blob~i',$U)?"blob":(preg_match('~real|floa|doub~i',$U)?"real":"numeric")))),"full_type"=>$U,"default"=>(preg_match("~^'(.*)'$~",$l,$B)?str_replace("''","'",$B[1]):($l=="NULL"?null:$l)),"null"=>!$K["notnull"],"privileges"=>array("select"=>1,"insert"=>1,"update"=>1,"where"=>1,"order"=>1),"primary"=>$K["pk"],);if($K["pk"]){if($G!="")$J[$G]["auto_increment"]=false;elseif(preg_match('~^integer$~i',$U))$J[$C]["auto_increment"]=true;$G=$C;}}$Rh=get_val("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = ".q($R));$v='(("[^"]*+")+|[a-z0-9_]+)';preg_match_all('~'.$v.'\s+text\s+COLLATE\s+(\'[^\']+\'|\S+)~i',$Rh,$Re,PREG_SET_ORDER);foreach($Re
as$B){$C=str_replace('""','"',preg_replace('~^"|"$~','',$B[1]));if($J[$C])$J[$C]["collation"]=trim($B[3],"'");}preg_match_all('~'.$v.'\s.*GENERATED ALWAYS AS \((.+)\) (STORED|VIRTUAL)~i',$Rh,$Re,PREG_SET_ORDER);foreach($Re
as$B){$C=str_replace('""','"',preg_replace('~^"|"$~','',$B[1]));$J[$C]["default"]=$B[3];$J[$C]["generated"]=strtoupper($B[4]);}return$J;}function
indexes($R,$h=null){$h=connection($h);$J=array();$Rh=get_val("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = ".q($R),0,$h);if(preg_match('~\bPRIMARY\s+KEY\s*\((([^)"]+|"[^"]*"|`[^`]*`)++)~i',$Rh,$B)){$J[""]=array("type"=>"PRIMARY","columns"=>array(),"lengths"=>array(),"descs"=>array());preg_match_all('~((("[^"]*+")+|(?:`[^`]*+`)+)|(\S+))(\s+(ASC|DESC))?(,\s*|$)~i',$B[1],$Re,PREG_SET_ORDER);foreach($Re
as$B){$J[""]["columns"][]=idf_unescape($B[2]).$B[4];$J[""]["descs"][]=(preg_match('~DESC~i',$B[5])?'1':null);}}if(!$J){foreach(fields($R)as$C=>$n){if($n["primary"])$J[""]=array("type"=>"PRIMARY","columns"=>array($C),"lengths"=>array(),"descs"=>array(null));}}$Vh=get_key_vals("SELECT name, sql FROM sqlite_master WHERE type = 'index' AND tbl_name = ".q($R),$h);foreach(get_rows("PRAGMA index_list(".table($R).")",$h)as$K){$C=$K["name"];$w=array("type"=>($K["unique"]?"UNIQUE":"INDEX"));$w["lengths"]=array();$w["descs"]=array();foreach(get_rows("PRAGMA index_info(".idf_escape($C).")",$h)as$nh){$w["columns"][]=$nh["name"];$w["descs"][]=null;}if(preg_match('~^CREATE( UNIQUE)? INDEX '.preg_quote(idf_escape($C).' ON '.idf_escape($R),'~').' \((.*)\)$~i',$Vh[$C],$ah)){preg_match_all('/("[^"]*+")+( DESC)?/',$ah[2],$Re);foreach($Re[2]as$y=>$X){if($X)$w["descs"][$y]='1';}}if(!$J[""]||$w["type"]!="UNIQUE"||$w["columns"]!=$J[""]["columns"]||$w["descs"]!=$J[""]["descs"]||!preg_match("~^sqlite_~",$C))$J[$C]=$w;}return$J;}function
foreign_keys($R){$J=array();foreach(get_rows("PRAGMA foreign_key_list(".table($R).")")as$K){$q=&$J[$K["id"]];if(!$q)$q=$K;$q["source"][]=$K["from"];$q["target"][]=$K["to"];}return$J;}function
view($C){return
array("select"=>preg_replace('~^(?:[^`"[]+|`[^`]*`|"[^"]*")* AS\s+~iU','',get_val("SELECT sql FROM sqlite_master WHERE type = 'view' AND name = ".q($C))));}function
collations(){return(isset($_GET["create"])?get_vals("PRAGMA collation_list",1):array());}function
information_schema($k){return
false;}function
error(){return
h(connection()->error);}function
check_sqlite_name($C){$Pc="db|sdb|sqlite";if(!preg_match("~^[^\\0]*\\.($Pc)\$~",$C)){connection()->error=lang(23,str_replace("|",", ",$Pc));return
false;}return
true;}function
create_database($k,$c){if(file_exists($k)){connection()->error=lang(24);return
false;}if(!check_sqlite_name($k))return
false;try{$A=new
Db();$A->attach($k,'','');}catch(\Exception$Hc){connection()->error=$Hc->getMessage();return
false;}$A->query('PRAGMA encoding = "UTF-8"');$A->query('CREATE TABLE adminer (i)');$A->query('DROP TABLE adminer');return
true;}function
drop_databases($j){connection()->attach(":memory:",'','');foreach($j
as$k){if(!@unlink($k)){connection()->error=lang(24);return
false;}}return
true;}function
rename_database($C,$c){if(!check_sqlite_name($C))return
false;connection()->attach(":memory:",'','');connection()->error=lang(24);return@rename(DB,$C);}function
auto_increment(){return" PRIMARY KEY AUTOINCREMENT";}function
alter_table($R,$C,$o,$id,$ob,$xc,$c,$Ba,$og){$jj=($R==""||$id);foreach($o
as$n){if($n[0]!=""||!$n[1]||$n[2]){$jj=true;break;}}$b=array();$cg=array();foreach($o
as$n){if($n[1]){$b[]=($jj?$n[1]:"ADD ".implode($n[1]));if($n[0]!="")$cg[$n[0]]=$n[1][0];}}if(!$jj){foreach($b
as$X){if(!queries("ALTER TABLE ".table($R)." $X"))return
false;}if($R!=$C&&!queries("ALTER TABLE ".table($R)." RENAME TO ".table($C)))return
false;}elseif(!recreate_table($R,$C,$b,$cg,$id,$Ba))return
false;if($Ba){queries("BEGIN");queries("UPDATE sqlite_sequence SET seq = $Ba WHERE name = ".q($C));if(!connection()->affected_rows)queries("INSERT INTO sqlite_sequence (name, seq) VALUES (".q($C).", $Ba)");queries("COMMIT");}return
true;}function
recreate_table($R,$C,array$o,array$cg,array$id,$Ba="",$x=array(),$ic="",$la=""){if($R!=""){if(!$o){foreach(fields($R)as$y=>$n){if($x)$n["auto_increment"]=0;$o[]=process_field($n,$n);$cg[$y]=idf_escape($y);}}$Fg=false;foreach($o
as$n){if($n[6])$Fg=true;}$kc=array();foreach($x
as$y=>$X){if($X[2]=="DROP"){$kc[$X[1]]=true;unset($x[$y]);}}foreach(indexes($R)as$te=>$w){$e=array();foreach($w["columns"]as$y=>$d){if(!$cg[$d])continue
2;$e[]=$cg[$d].($w["descs"][$y]?" DESC":"");}if(!$kc[$te]){if($w["type"]!="PRIMARY"||!$Fg)$x[]=array($w["type"],$te,$e);}}foreach($x
as$y=>$X){if($X[0]=="PRIMARY"){unset($x[$y]);$id[]=" PRIMARY KEY (".implode(", ",$X[2]).")";}}foreach(foreign_keys($R)as$te=>$q){foreach($q["source"]as$y=>$d){if(!$cg[$d])continue
2;$q["source"][$y]=idf_unescape($cg[$d]);}if(!isset($id[" $te"]))$id[]=" ".format_foreign_key($q);}queries("BEGIN");}$Va=array();foreach($o
as$n){if(preg_match('~GENERATED~',$n[3]))unset($cg[array_search($n[0],$cg)]);$Va[]=" ".implode($n);}$Va=array_merge($Va,array_filter($id));foreach(driver()->checkConstraints($R)as$Xa){if($Xa!=$ic)$Va[]=" CHECK ($Xa)";}if($la)$Va[]=" CHECK ($la)";$ui=($R==$C?"adminer_$C":$C);if(!queries("CREATE TABLE ".table($ui)." (\n".implode(",\n",$Va)."\n)"))return
false;if($R!=""){if($cg&&!queries("INSERT INTO ".table($ui)." (".implode(", ",$cg).") SELECT ".implode(", ",array_map('Adminer\idf_escape',array_keys($cg)))." FROM ".table($R)))return
false;$Ti=array();foreach(triggers($R)as$Ri=>$Ai){$Qi=trigger($Ri,$R);$Ti[]="CREATE TRIGGER ".idf_escape($Ri)." ".implode(" ",$Ai)." ON ".table($C)."\n$Qi[Statement]";}$Ba=$Ba?"":get_val("SELECT seq FROM sqlite_sequence WHERE name = ".q($R));if(!queries("DROP TABLE ".table($R))||($R==$C&&!queries("ALTER TABLE ".table($ui)." RENAME TO ".table($C)))||!alter_indexes($C,$x))return
false;if($Ba)queries("UPDATE sqlite_sequence SET seq = $Ba WHERE name = ".q($C));foreach($Ti
as$Qi){if(!queries($Qi))return
false;}queries("COMMIT");}return
true;}function
index_sql($R,$U,$C,$e){return"CREATE $U ".($U!="INDEX"?"INDEX ":"").idf_escape($C!=""?$C:uniqid($R."_"))." ON ".table($R)." $e";}function
alter_indexes($R,$b){foreach($b
as$G){if($G[0]=="PRIMARY")return
recreate_table($R,$R,array(),array(),array(),"",$b);}foreach(array_reverse($b)as$X){if(!queries($X[2]=="DROP"?"DROP INDEX ".idf_escape($X[1]):index_sql($R,$X[0],$X[1],"(".implode(", ",$X[2]).")")))return
false;}return
true;}function
truncate_tables($T){return
apply_queries("DELETE FROM",$T);}function
drop_views($vj){return
apply_queries("DROP VIEW",$vj);}function
drop_tables($T){return
apply_queries("DROP TABLE",$T);}function
move_tables($T,$vj,$si){return
false;}function
trigger($C,$R){if($C=="")return
array("Statement"=>"BEGIN\n\t;\nEND");$v='(?:[^`"\s]+|`[^`]*`|"[^"]*")+';$Si=trigger_options();preg_match("~^CREATE\\s+TRIGGER\\s*$v\\s*(".implode("|",$Si["Timing"]).")\\s+([a-z]+)(?:\\s+OF\\s+($v))?\\s+ON\\s*$v\\s*(?:FOR\\s+EACH\\s+ROW\\s)?(.*)~is",get_val("SELECT sql FROM sqlite_master WHERE type = 'trigger' AND name = ".q($C)),$B);$_f=$B[3];return
array("Timing"=>strtoupper($B[1]),"Event"=>strtoupper($B[2]).($_f?" OF":""),"Of"=>idf_unescape($_f),"Trigger"=>$C,"Statement"=>$B[4],);}function
triggers($R){$J=array();$Si=trigger_options();foreach(get_rows("SELECT * FROM sqlite_master WHERE type = 'trigger' AND tbl_name = ".q($R))as$K){preg_match('~^CREATE\s+TRIGGER\s*(?:[^`"\s]+|`[^`]*`|"[^"]*")+\s*('.implode("|",$Si["Timing"]).')\s*(.*?)\s+ON\b~i',$K["sql"],$B);$J[$K["name"]]=array($B[1],$B[2]);}return$J;}function
trigger_options(){return
array("Timing"=>array("BEFORE","AFTER","INSTEAD OF"),"Event"=>array("INSERT","UPDATE","UPDATE OF","DELETE"),"Type"=>array("FOR EACH ROW"),);}function
begin(){return
queries("BEGIN");}function
last_id($I){return
get_val("SELECT LAST_INSERT_ROWID()");}function
explain($g,$H){return$g->query("EXPLAIN QUERY PLAN $H");}function
found_rows($S,$Z){}function
types(){return
array();}function
create_sql($R,$Ba,$bi){$J=get_val("SELECT sql FROM sqlite_master WHERE type IN ('table', 'view') AND name = ".q($R));foreach(indexes($R)as$C=>$w){if($C=='')continue;$J
.=";\n\n".index_sql($R,$w['type'],$C,"(".implode(", ",array_map('Adminer\idf_escape',$w['columns'])).")");}return$J;}function
truncate_sql($R){return"DELETE FROM ".table($R);}function
use_sql($Nb){}function
trigger_sql($R){return
implode(get_vals("SELECT sql || ';;\n' FROM sqlite_master WHERE type = 'trigger' AND tbl_name = ".q($R)));}function
show_variables(){$J=array();foreach(get_rows("PRAGMA pragma_list")as$K){$C=$K["name"];if($C!="pragma_list"&&$C!="compile_options"){$J[$C]=array($C,'');foreach(get_rows("PRAGMA $C")as$K)$J[$C][1].=implode(", ",$K)."\n";}}return$J;}function
show_status(){$J=array();foreach(get_vals("PRAGMA compile_options")as$Of)$J[]=explode("=",$Of,2)+array('','');return$J;}function
convert_field($n){}function
unconvert_field($n,$J){return$J;}function
support($Uc){return
preg_match('~^(check|columns|database|drop_col|dump|indexes|descidx|move_col|sql|status|table|trigger|variables|view|view_trigger)$~',$Uc);}}add_driver("pgsql","PostgreSQL");if(isset($_GET["pgsql"])){define('Adminer\DRIVER',"pgsql");if(extension_loaded("pgsql")&&$_GET["ext"]!="pdo"){class
PgsqlDb
extends
SqlDb{var$extension="PgSQL";var$timeout=0;private$link,$string,$database=true;function
_error($Cc,$m){if(ini_bool("html_errors"))$m=html_entity_decode(strip_tags($m));$m=preg_replace('~^[^:]*: ~','',$m);$this->error=$m;}function
attach($N,$V,$F){$k=adminer()->database();set_error_handler(array($this,'_error'));$this->string="host='".str_replace(":","' port='",addcslashes($N,"'\\"))."' user='".addcslashes($V,"'\\")."' password='".addcslashes($F,"'\\")."'";$Wh=adminer()->connectSsl();if(isset($Wh["mode"]))$this->string
.=" sslmode='".$Wh["mode"]."'";$this->link=@pg_connect("$this->string dbname='".($k!=""?addcslashes($k,"'\\"):"postgres")."'",PGSQL_CONNECT_FORCE_NEW);if(!$this->link&&$k!=""){$this->database=false;$this->link=@pg_connect("$this->string dbname='postgres'",PGSQL_CONNECT_FORCE_NEW);}restore_error_handler();if($this->link)pg_set_client_encoding($this->link,"UTF8");return($this->link?'':$this->error);}function
quote($Q){return(function_exists('pg_escape_literal')?pg_escape_literal($this->link,$Q):"'".pg_escape_string($this->link,$Q)."'");}function
value($X,array$n){return($n["type"]=="bytea"&&$X!==null?pg_unescape_bytea($X):$X);}function
select_db($Nb){if($Nb==adminer()->database())return$this->database;$J=@pg_connect("$this->string dbname='".addcslashes($Nb,"'\\")."'",PGSQL_CONNECT_FORCE_NEW);if($J)$this->link=$J;return$J;}function
close(){$this->link=@pg_connect("$this->string dbname='postgres'");}function
query($H,$Xi=false){$I=@pg_query($this->link,$H);$this->error="";if(!$I){$this->error=pg_last_error($this->link);$J=false;}elseif(!pg_num_fields($I)){$this->affected_rows=pg_affected_rows($I);$J=true;}else$J=new
Result($I);if($this->timeout){$this->timeout=0;$this->query("RESET statement_timeout");}return$J;}function
warnings(){return
h(pg_last_notice($this->link));}function
copyFrom($R,array$L){$this->error='';set_error_handler(function($Cc,$m){$this->error=(ini_bool('html_errors')?html_entity_decode($m):$m);return
true;});$J=pg_copy_from($this->link,$R,$L);restore_error_handler();return$J;}}class
Result{var$num_rows;private$result,$offset=0;function
__construct($I){$this->result=$I;$this->num_rows=pg_num_rows($I);}function
fetch_assoc(){return
pg_fetch_assoc($this->result);}function
fetch_row(){return
pg_fetch_row($this->result);}function
fetch_field(){$d=$this->offset++;$J=new
\stdClass;$J->orgtable=pg_field_table($this->result,$d);$J->name=pg_field_name($this->result,$d);$J->type=pg_field_type($this->result,$d);$J->charsetnr=($J->type=="bytea"?63:0);return$J;}function
__destruct(){pg_free_result($this->result);}}}elseif(extension_loaded("pdo_pgsql")){class
PgsqlDb
extends
PdoDb{var$extension="PDO_PgSQL";var$timeout=0;function
attach($N,$V,$F){$k=adminer()->database();$mc="pgsql:host='".str_replace(":","' port='",addcslashes($N,"'\\"))."' client_encoding=utf8 dbname='".($k!=""?addcslashes($k,"'\\"):"postgres")."'";$Wh=adminer()->connectSsl();if(isset($Wh["mode"]))$mc
.=" sslmode='".$Wh["mode"]."'";return$this->dsn($mc,$V,$F);}function
select_db($Nb){return(adminer()->database()==$Nb);}function
query($H,$Xi=false){$J=parent::query($H,$Xi);if($this->timeout){$this->timeout=0;parent::query("RESET statement_timeout");}return$J;}function
warnings(){}function
copyFrom($R,array$L){$J=$this->pdo->pgsqlCopyFromArray($R,$L);$this->error=idx($this->pdo->errorInfo(),2)?:'';return$J;}function
close(){}}}if(class_exists('Adminer\PgsqlDb')){class
Db
extends
PgsqlDb{function
multi_query($H){if(preg_match('~\bCOPY\s+(.+?)\s+FROM\s+stdin;\n?(.*)\n\\\\\.$~is',str_replace("\r\n","\n",$H),$B)){$L=explode("\n",$B[2]);$this->affected_rows=count($L);return$this->copyFrom($B[1],$L);}return
parent::multi_query($H);}}}class
Driver
extends
SqlDriver{static$Pc=array("PgSQL","PDO_PgSQL");static$re="pgsql";var$operators=array("=","<",">","<=",">=","!=","~","!~","LIKE","LIKE %%","ILIKE","ILIKE %%","IN","IS NULL","NOT LIKE","NOT IN","IS NOT NULL");var$functions=array("char_length","lower","round","to_hex","to_timestamp","upper");var$grouping=array("avg","count","count distinct","max","min","sum");static
function
connect($N,$V,$F){$g=parent::connect($N,$V,$F);if(is_string($g))return$g;$tj=get_val("SELECT version()",0,$g);$g->flavor=(preg_match('~CockroachDB~',$tj)?'cockroach':'');$g->server_info=preg_replace('~^\D*([\d.]+[-\w]*).*~','\1',$tj);if(min_version(9,0,$g))$g->query("SET application_name = 'Adminer'");if($g->flavor=='cockroach')add_driver(DRIVER,"CockroachDB");return$g;}function
__construct(Db$g){parent::__construct($g);$this->types=array(lang(25)=>array("smallint"=>5,"integer"=>10,"bigint"=>19,"boolean"=>1,"numeric"=>0,"real"=>7,"double precision"=>16,"money"=>20),lang(26)=>array("date"=>13,"time"=>17,"timestamp"=>20,"timestamptz"=>21,"interval"=>0),lang(27)=>array("character"=>0,"character varying"=>0,"text"=>0,"tsquery"=>0,"tsvector"=>0,"uuid"=>0,"xml"=>0),lang(28)=>array("bit"=>0,"bit varying"=>0,"bytea"=>0),lang(29)=>array("cidr"=>43,"inet"=>43,"macaddr"=>17,"macaddr8"=>23,"txid_snapshot"=>0),lang(30)=>array("box"=>0,"circle"=>0,"line"=>0,"lseg"=>0,"path"=>0,"point"=>0,"polygon"=>0),);if(min_version(9.2,0,$g)){$this->types[lang(27)]["json"]=4294967295;if(min_version(9.4,0,$g))$this->types[lang(27)]["jsonb"]=4294967295;}$this->insertFunctions=array("char"=>"md5","date|time"=>"now",);$this->editFunctions=array(number_type()=>"+/-","date|time"=>"+ interval/- interval","char|text"=>"||",);if(min_version(12,0,$g))$this->generated=array("STORED");}function
enumLength(array$n){$zc=$this->types[lang(31)][$n["type"]];return($zc?type_values($zc):"");}function
setUserTypes($Wi){$this->types[lang(31)]=array_flip($Wi);}function
insertReturning($R){$Ba=array_filter(fields($R),function($n){return$n['auto_increment'];});return(count($Ba)==1?" RETURNING ".idf_escape(key($Ba)):"");}function
insertUpdate($R,array$L,array$G){foreach($L
as$O){$fj=array();$Z=array();foreach($O
as$y=>$X){$fj[]="$y = $X";if(isset($G[idf_unescape($y)]))$Z[]="$y = $X";}if(!(($Z&&queries("UPDATE ".table($R)." SET ".implode(", ",$fj)." WHERE ".implode(" AND ",$Z))&&connection()->affected_rows)||queries("INSERT INTO ".table($R)." (".implode(", ",array_keys($O)).") VALUES (".implode(", ",$O).")")))return
false;}return
true;}function
slowQuery($H,$_i){$this->conn->query("SET statement_timeout = ".(1000*$_i));$this->conn->timeout=1000*$_i;return$H;}function
convertSearch($v,array$X,array$n){$xi="char|text";if(strpos($X["op"],"LIKE")===false)$xi
.="|date|time(stamp)?|boolean|uuid|inet|cidr|macaddr|".number_type();return(preg_match("~$xi~",$n["type"])?$v:"CAST($v AS text)");}function
quoteBinary($oh){return"'\\x".bin2hex($oh)."'";}function
warnings(){return$this->conn->warnings();}function
tableHelp($C,$pe=false){$Je=array("information_schema"=>"infoschema","pg_catalog"=>($pe?"view":"catalog"),);$A=$Je[$_GET["ns"]];if($A)return"$A-".str_replace("_","-",$C).".html";}function
supportsIndex(array$S){return$S["Engine"]!="view";}function
hasCStyleEscapes(){static$Ra;if($Ra===null)$Ra=(get_val("SHOW standard_conforming_strings",0,$this->conn)=="off");return$Ra;}}function
idf_escape($v){return'"'.str_replace('"','""',$v).'"';}function
table($v){return
idf_escape($v);}function
get_databases($gd){return
get_vals("SELECT datname FROM pg_database
WHERE datallowconn = TRUE AND has_database_privilege(datname, 'CONNECT')
ORDER BY datname");}function
limit($H,$Z,$_,$D=0,$Ah=" "){return" $H$Z".($_?$Ah."LIMIT $_".($D?" OFFSET $D":""):"");}function
limit1($R,$H,$Z,$Ah="\n"){return(preg_match('~^INTO~',$H)?limit($H,$Z,1,0,$Ah):" $H".(is_view(table_status1($R))?$Z:$Ah."WHERE ctid = (SELECT ctid FROM ".table($R).$Z.$Ah."LIMIT 1)"));}function
db_collation($k,$jb){return
get_val("SELECT datcollate FROM pg_database WHERE datname = ".q($k));}function
logged_user(){return
get_val("SELECT user");}function
tables_list(){$H="SELECT table_name, table_type FROM information_schema.tables WHERE table_schema = current_schema()";if(support("materializedview"))$H
.="
UNION ALL
SELECT matviewname, 'MATERIALIZED VIEW'
FROM pg_matviews
WHERE schemaname = current_schema()";$H
.="
ORDER BY 1";return
get_key_vals($H);}function
count_tables($j){$J=array();foreach($j
as$k){if(connection()->select_db($k))$J[$k]=count(tables_list());}return$J;}function
table_status($C=""){static$Ed;if($Ed===null)$Ed=get_val("SELECT 'pg_table_size'::regproc");$J=array();foreach(get_rows("SELECT
c.relname AS \"Name\",
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'm' THEN 'materialized view' ELSE 'view' END AS \"Engine\"".($Ed?",
pg_table_size(c.oid) AS \"Data_length\",
pg_indexes_size(c.oid) AS \"Index_length\"":"").",
obj_description(c.oid, 'pg_class') AS \"Comment\",
".(min_version(12)?"''":"CASE WHEN c.relhasoids THEN 'oid' ELSE '' END")." AS \"Oid\",
c.reltuples as \"Rows\",
n.nspname
FROM pg_class c
JOIN pg_namespace n ON(n.nspname = current_schema() AND n.oid = c.relnamespace)
WHERE relkind IN ('r', 'm', 'v', 'f', 'p')
".($C!=""?"AND relname = ".q($C):"ORDER BY relname"))as$K)$J[$K["Name"]]=$K;return$J;}function
is_view($S){return
in_array($S["Engine"],array("view","materialized view"));}function
fk_support($S){return
true;}function
fields($R){$J=array();$ta=array('timestamp without time zone'=>'timestamp','timestamp with time zone'=>'timestamptz',);foreach(get_rows("SELECT
a.attname AS field,
format_type(a.atttypid, a.atttypmod) AS full_type,
pg_get_expr(d.adbin, d.adrelid) AS default,
a.attnotnull::int,
col_description(c.oid, a.attnum) AS comment".(min_version(10)?",
a.attidentity".(min_version(12)?",
a.attgenerated":""):"")."
FROM pg_class c
JOIN pg_namespace n ON c.relnamespace = n.oid
JOIN pg_attribute a ON c.oid = a.attrelid
LEFT JOIN pg_attrdef d ON c.oid = d.adrelid AND a.attnum = d.adnum
WHERE c.relname = ".q($R)."
AND n.nspname = current_schema()
AND NOT a.attisdropped
AND a.attnum > 0
ORDER BY a.attnum")as$K){preg_match('~([^([]+)(\((.*)\))?([a-z ]+)?((\[[0-9]*])*)$~',$K["full_type"],$B);list(,$U,$z,$K["length"],$ma,$xa)=$B;$K["length"].=$xa;$Za=$U.$ma;if(isset($ta[$Za])){$K["type"]=$ta[$Za];$K["full_type"]=$K["type"].$z.$xa;}else{$K["type"]=$U;$K["full_type"]=$K["type"].$z.$ma.$xa;}if(in_array($K['attidentity'],array('a','d')))$K['default']='GENERATED '.($K['attidentity']=='d'?'BY DEFAULT':'ALWAYS').' AS IDENTITY';$K["generated"]=($K["attgenerated"]=="s"?"STORED":"");$K["null"]=!$K["attnotnull"];$K["auto_increment"]=$K['attidentity']||preg_match('~^nextval\(~i',$K["default"])||preg_match('~^unique_rowid\(~',$K["default"]);$K["privileges"]=array("insert"=>1,"select"=>1,"update"=>1,"where"=>1,"order"=>1);if(preg_match('~(.+)::[^,)]+(.*)~',$K["default"],$B))$K["default"]=($B[1]=="NULL"?null:idf_unescape($B[1]).$B[2]);$J[$K["field"]]=$K;}return$J;}function
indexes($R,$h=null){$h=connection($h);$J=array();$ki=get_val("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = ".q($R),0,$h);$e=get_key_vals("SELECT attnum, attname FROM pg_attribute WHERE attrelid = $ki AND attnum > 0",$h);foreach(get_rows("SELECT relname, indisunique::int, indisprimary::int, indkey, indoption, (indpred IS NOT NULL)::int as indispartial
FROM pg_index i, pg_class ci
WHERE i.indrelid = $ki AND ci.oid = i.indexrelid
ORDER BY indisprimary DESC, indisunique DESC",$h)as$K){$bh=$K["relname"];$J[$bh]["type"]=($K["indispartial"]?"INDEX":($K["indisprimary"]?"PRIMARY":($K["indisunique"]?"UNIQUE":"INDEX")));$J[$bh]["columns"]=array();$J[$bh]["descs"]=array();if($K["indkey"]){foreach(explode(" ",$K["indkey"])as$Zd)$J[$bh]["columns"][]=$e[$Zd];foreach(explode(" ",$K["indoption"])as$ae)$J[$bh]["descs"][]=(intval($ae)&1?'1':null);}$J[$bh]["lengths"]=array();}return$J;}function
foreign_keys($R){$J=array();foreach(get_rows("SELECT conname, condeferrable::int AS deferrable, pg_get_constraintdef(oid) AS definition
FROM pg_constraint
WHERE conrelid = (SELECT pc.oid FROM pg_class AS pc INNER JOIN pg_namespace AS pn ON (pn.oid = pc.relnamespace) WHERE pc.relname = ".q($R)." AND pn.nspname = current_schema())
AND contype = 'f'::char
ORDER BY conkey, conname")as$K){if(preg_match('~FOREIGN KEY\s*\((.+)\)\s*REFERENCES (.+)\((.+)\)(.*)$~iA',$K['definition'],$B)){$K['source']=array_map('Adminer\idf_unescape',array_map('trim',explode(',',$B[1])));if(preg_match('~^(("([^"]|"")+"|[^"]+)\.)?"?("([^"]|"")+"|[^"]+)$~',$B[2],$Pe)){$K['ns']=idf_unescape($Pe[2]);$K['table']=idf_unescape($Pe[4]);}$K['target']=array_map('Adminer\idf_unescape',array_map('trim',explode(',',$B[3])));$K['on_delete']=(preg_match("~ON DELETE (".driver()->onActions.")~",$B[4],$Pe)?$Pe[1]:'NO ACTION');$K['on_update']=(preg_match("~ON UPDATE (".driver()->onActions.")~",$B[4],$Pe)?$Pe[1]:'NO ACTION');$J[$K['conname']]=$K;}}return$J;}function
view($C){return
array("select"=>trim(get_val("SELECT pg_get_viewdef(".get_val("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = ".q($C)).")")));}function
collations(){return
array();}function
information_schema($k){return
get_schema()=="information_schema";}function
error(){$J=h(connection()->error);if(preg_match('~^(.*\n)?([^\n]*)\n( *)\^(\n.*)?$~s',$J,$B))$J=$B[1].preg_replace('~((?:[^&]|&[^;]*;){'.strlen($B[3]).'})(.*)~','\1<b>\2</b>',$B[2]).$B[4];return
nl_br($J);}function
create_database($k,$c){return
queries("CREATE DATABASE ".idf_escape($k).($c?" ENCODING ".idf_escape($c):""));}function
drop_databases($j){connection()->close();return
apply_queries("DROP DATABASE",$j,'Adminer\idf_escape');}function
rename_database($C,$c){connection()->close();return
queries("ALTER DATABASE ".idf_escape(DB)." RENAME TO ".idf_escape($C));}function
auto_increment(){return"";}function
alter_table($R,$C,$o,$id,$ob,$xc,$c,$Ba,$og){$b=array();$Og=array();if($R!=""&&$R!=$C)$Og[]="ALTER TABLE ".table($R)." RENAME TO ".table($C);$Bh="";foreach($o
as$n){$d=idf_escape($n[0]);$X=$n[1];if(!$X)$b[]="DROP $d";else{$pj=$X[5];unset($X[5]);if($n[0]==""){if(isset($X[6]))$X[1]=($X[1]==" bigint"?" big":($X[1]==" smallint"?" small":" "))."serial";$b[]=($R!=""?"ADD ":" ").implode($X);if(isset($X[6]))$b[]=($R!=""?"ADD":" ")." PRIMARY KEY ($X[0])";}else{if($d!=$X[0])$Og[]="ALTER TABLE ".table($C)." RENAME $d TO $X[0]";$b[]="ALTER $d TYPE$X[1]";$Ch=$R."_".idf_unescape($X[0])."_seq";$b[]="ALTER $d ".($X[3]?"SET".preg_replace('~GENERATED ALWAYS(.*) STORED~','EXPRESSION\1',$X[3]):(isset($X[6])?"SET DEFAULT nextval(".q($Ch).")":"DROP DEFAULT"));if(isset($X[6]))$Bh="CREATE SEQUENCE IF NOT EXISTS ".idf_escape($Ch)." OWNED BY ".idf_escape($R).".$X[0]";$b[]="ALTER $d ".($X[2]==" NULL"?"DROP NOT":"SET").$X[2];}if($n[0]!=""||$pj!="")$Og[]="COMMENT ON COLUMN ".table($C).".$X[0] IS ".($pj!=""?substr($pj,9):"''");}}$b=array_merge($b,$id);if($R=="")array_unshift($Og,"CREATE TABLE ".table($C)." (\n".implode(",\n",$b)."\n)");elseif($b)array_unshift($Og,"ALTER TABLE ".table($R)."\n".implode(",\n",$b));if($Bh)array_unshift($Og,$Bh);if($ob!==null)$Og[]="COMMENT ON TABLE ".table($C)." IS ".q($ob);foreach($Og
as$H){if(!queries($H))return
false;}return
true;}function
alter_indexes($R,$b){$i=array();$hc=array();$Og=array();foreach($b
as$X){if($X[0]!="INDEX")$i[]=($X[2]=="DROP"?"\nDROP CONSTRAINT ".idf_escape($X[1]):"\nADD".($X[1]!=""?" CONSTRAINT ".idf_escape($X[1]):"")." $X[0] ".($X[0]=="PRIMARY"?"KEY ":"")."(".implode(", ",$X[2]).")");elseif($X[2]=="DROP")$hc[]=idf_escape($X[1]);else$Og[]="CREATE INDEX ".idf_escape($X[1]!=""?$X[1]:uniqid($R."_"))." ON ".table($R)." (".implode(", ",$X[2]).")";}if($i)array_unshift($Og,"ALTER TABLE ".table($R).implode(",",$i));if($hc)array_unshift($Og,"DROP INDEX ".implode(", ",$hc));foreach($Og
as$H){if(!queries($H))return
false;}return
true;}function
truncate_tables($T){return
queries("TRUNCATE ".implode(", ",array_map('Adminer\table',$T)));}function
drop_views($vj){return
drop_tables($vj);}function
drop_tables($T){foreach($T
as$R){$P=table_status1($R);if(!queries("DROP ".strtoupper($P["Engine"])." ".table($R)))return
false;}return
true;}function
move_tables($T,$vj,$si){foreach(array_merge($T,$vj)as$R){$P=table_status1($R);if(!queries("ALTER ".strtoupper($P["Engine"])." ".table($R)." SET SCHEMA ".idf_escape($si)))return
false;}return
true;}function
trigger($C,$R){if($C=="")return
array("Statement"=>"EXECUTE PROCEDURE ()");$e=array();$Z="WHERE trigger_schema = current_schema() AND event_object_table = ".q($R)." AND trigger_name = ".q($C);foreach(get_rows("SELECT * FROM information_schema.triggered_update_columns $Z")as$K)$e[]=$K["event_object_column"];$J=array();foreach(get_rows('SELECT trigger_name AS "Trigger", action_timing AS "Timing", event_manipulation AS "Event", \'FOR EACH \' || action_orientation AS "Type", action_statement AS "Statement"
FROM information_schema.triggers'."
$Z
ORDER BY event_manipulation DESC")as$K){if($e&&$K["Event"]=="UPDATE")$K["Event"].=" OF";$K["Of"]=implode(", ",$e);if($J)$K["Event"].=" OR $J[Event]";$J=$K;}return$J;}function
triggers($R){$J=array();foreach(get_rows("SELECT * FROM information_schema.triggers WHERE trigger_schema = current_schema() AND event_object_table = ".q($R))as$K){$Qi=trigger($K["trigger_name"],$R);$J[$Qi["Trigger"]]=array($Qi["Timing"],$Qi["Event"]);}return$J;}function
trigger_options(){return
array("Timing"=>array("BEFORE","AFTER"),"Event"=>array("INSERT","UPDATE","UPDATE OF","DELETE","INSERT OR UPDATE","INSERT OR UPDATE OF","DELETE OR INSERT","DELETE OR UPDATE","DELETE OR UPDATE OF","DELETE OR INSERT OR UPDATE","DELETE OR INSERT OR UPDATE OF"),"Type"=>array("FOR EACH ROW","FOR EACH STATEMENT"),);}function
routine($C,$U){$L=get_rows('SELECT routine_definition AS definition, LOWER(external_language) AS language, *
FROM information_schema.routines
WHERE routine_schema = current_schema() AND specific_name = '.q($C));$J=idx($L,0,array());$J["returns"]=array("type"=>$J["type_udt_name"]);$J["fields"]=get_rows('SELECT parameter_name AS field, data_type AS type, character_maximum_length AS length, parameter_mode AS inout
FROM information_schema.parameters
WHERE specific_schema = current_schema() AND specific_name = '.q($C).'
ORDER BY ordinal_position');return$J;}function
routines(){return
get_rows('SELECT specific_name AS "SPECIFIC_NAME", routine_type AS "ROUTINE_TYPE", routine_name AS "ROUTINE_NAME", type_udt_name AS "DTD_IDENTIFIER"
FROM information_schema.routines
WHERE routine_schema = current_schema()
ORDER BY SPECIFIC_NAME');}function
routine_languages(){return
get_vals("SELECT LOWER(lanname) FROM pg_catalog.pg_language");}function
routine_id($C,$K){$J=array();foreach($K["fields"]as$n){$z=$n["length"];$J[]=$n["type"].($z?"($z)":"");}return
idf_escape($C)."(".implode(", ",$J).")";}function
last_id($I){$K=(is_object($I)?$I->fetch_row():array());return($K?$K[0]:0);}function
explain($g,$H){return$g->query("EXPLAIN $H");}function
found_rows($S,$Z){if(preg_match("~ rows=([0-9]+)~",get_val("EXPLAIN SELECT * FROM ".idf_escape($S["Name"]).($Z?" WHERE ".implode(" AND ",$Z):"")),$ah))return$ah[1];}function
types(){return
get_key_vals("SELECT oid, typname
FROM pg_type
WHERE typnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema())
AND typtype IN ('b','d','e')
AND typelem = 0");}function
type_values($u){$Bc=get_vals("SELECT enumlabel FROM pg_enum WHERE enumtypid = $u ORDER BY enumsortorder");return($Bc?"'".implode("', '",array_map('addslashes',$Bc))."'":"");}function
schemas(){return
get_vals("SELECT nspname FROM pg_namespace ORDER BY nspname");}function
get_schema(){return
get_val("SELECT current_schema()");}function
set_schema($qh,$h=null){if(!$h)$h=connection();$J=$h->query("SET search_path TO ".idf_escape($qh));driver()->setUserTypes(types());return$J;}function
foreign_keys_sql($R){$J="";$P=table_status1($R);$ed=foreign_keys($R);ksort($ed);foreach($ed
as$dd=>$cd)$J
.="ALTER TABLE ONLY ".idf_escape($P['nspname']).".".idf_escape($P['Name'])." ADD CONSTRAINT ".idf_escape($dd)." $cd[definition] ".($cd['deferrable']?'DEFERRABLE':'NOT DEFERRABLE').";\n";return($J?"$J\n":$J);}function
create_sql($R,$Ba,$bi){$gh=array();$Dh=array();$P=table_status1($R);if(is_view($P)){$uj=view($R);return
rtrim("CREATE VIEW ".idf_escape($R)." AS $uj[select]",";");}$o=fields($R);if(count($P)<2||empty($o))return
false;$J="CREATE TABLE ".idf_escape($P['nspname']).".".idf_escape($P['Name'])." (\n ";foreach($o
as$n){$lg=idf_escape($n['field']).' '.$n['full_type'].default_value($n).($n['null']?"":" NOT NULL");$gh[]=$lg;if(preg_match('~nextval\(\'([^\']+)\'\)~',$n['default'],$Re)){$Ch=$Re[1];$Qh=first(get_rows((min_version(10)?"SELECT *, cache_size AS cache_value FROM pg_sequences WHERE schemaname = current_schema() AND sequencename = ".q(idf_unescape($Ch)):"SELECT * FROM $Ch"),null,"-- "));$Dh[]=($bi=="DROP+CREATE"?"DROP SEQUENCE IF EXISTS $Ch;\n":"")."CREATE SEQUENCE $Ch INCREMENT $Qh[increment_by] MINVALUE $Qh[min_value] MAXVALUE $Qh[max_value]".($Ba&&$Qh['last_value']?" START ".($Qh["last_value"]+1):"")." CACHE $Qh[cache_value];";}}if(!empty($Dh))$J=implode("\n\n",$Dh)."\n\n$J";$G="";foreach(indexes($R)as$Xd=>$w){if($w['type']=='PRIMARY'){$G=$Xd;$gh[]="CONSTRAINT ".idf_escape($Xd)." PRIMARY KEY (".implode(', ',array_map('Adminer\idf_escape',$w['columns'])).")";}}foreach(driver()->checkConstraints($R)as$ub=>$wb)$gh[]="CONSTRAINT ".idf_escape($ub)." CHECK $wb";$J
.=implode(",\n ",$gh)."\n) WITH (oids = ".($P['Oid']?'true':'false').");";if($P['Comment'])$J
.="\n\nCOMMENT ON TABLE ".idf_escape($P['nspname']).".".idf_escape($P['Name'])." IS ".q($P['Comment']).";";foreach($o
as$Wc=>$n){if($n['comment'])$J
.="\n\nCOMMENT ON COLUMN ".idf_escape($P['nspname']).".".idf_escape($P['Name']).".".idf_escape($Wc)." IS ".q($n['comment']).";";}foreach(get_rows("SELECT indexdef FROM pg_catalog.pg_indexes WHERE schemaname = current_schema() AND tablename = ".q($R).($G?" AND indexname != ".q($G):""),null,"-- ")as$K)$J
.="\n\n$K[indexdef];";return
rtrim($J,';');}function
truncate_sql($R){return"TRUNCATE ".table($R);}function
trigger_sql($R){$P=table_status1($R);$J="";foreach(triggers($R)as$Pi=>$Oi){$Qi=trigger($Pi,$P['Name']);$J
.="\nCREATE TRIGGER ".idf_escape($Qi['Trigger'])." $Qi[Timing] $Qi[Event] ON ".idf_escape($P["nspname"]).".".idf_escape($P['Name'])." $Qi[Type] $Qi[Statement];;\n";}return$J;}function
use_sql($Nb){return"\connect ".idf_escape($Nb);}function
show_variables(){return
get_rows("SHOW ALL");}function
process_list(){return
get_rows("SELECT * FROM pg_stat_activity ORDER BY ".(min_version(9.2)?"pid":"procpid"));}function
convert_field($n){}function
unconvert_field($n,$J){return$J;}function
support($Uc){return
preg_match('~^(check|database|table|columns|sql|indexes|descidx|comment|view|'.(min_version(9.3)?'materializedview|':'').'scheme|'.(min_version(11)?'procedure|':'').'routine|sequence|trigger|type|variables|drop_col'.(connection()->flavor=='cockroach'?'':'|processlist').'|kill|dump)$~',$Uc);}function
kill_process($X){return
queries("SELECT pg_terminate_backend(".number($X).")");}function
connection_id(){return"SELECT pg_backend_pid()";}function
max_connections(){return
get_val("SHOW max_connections");}}add_driver("oracle","Oracle (beta)");if(isset($_GET["oracle"])){define('Adminer\DRIVER',"oracle");if(extension_loaded("oci8")&&$_GET["ext"]!="pdo"){class
Db
extends
SqlDb{var$extension="oci8";var$_current_db;private$link;function
_error($Cc,$m){if(ini_bool("html_errors"))$m=html_entity_decode(strip_tags($m));$m=preg_replace('~^[^:]*: ~','',$m);$this->error=$m;}function
attach($N,$V,$F){$this->link=@oci_new_connect($V,$F,$N,"AL32UTF8");if($this->link){$this->server_info=oci_server_version($this->link);return'';}$m=oci_error();return$m["message"];}function
quote($Q){return"'".str_replace("'","''",$Q)."'";}function
select_db($Nb){$this->_current_db=$Nb;return
true;}function
query($H,$Xi=false){$I=oci_parse($this->link,$H);$this->error="";if(!$I){$m=oci_error($this->link);$this->errno=$m["code"];$this->error=$m["message"];return
false;}set_error_handler(array($this,'_error'));$J=@oci_execute($I);restore_error_handler();if($J){if(oci_num_fields($I))return
new
Result($I);$this->affected_rows=oci_num_rows($I);oci_free_statement($I);}return$J;}}class
Result{var$num_rows;private$result,$offset=1;function
__construct($I){$this->result=$I;}private
function
convert($K){foreach((array)$K
as$y=>$X){if(is_a($X,'OCILob')||is_a($X,'OCI-Lob'))$K[$y]=$X->load();}return$K;}function
fetch_assoc(){return$this->convert(oci_fetch_assoc($this->result));}function
fetch_row(){return$this->convert(oci_fetch_row($this->result));}function
fetch_field(){$d=$this->offset++;$J=new
\stdClass;$J->name=oci_field_name($this->result,$d);$J->type=oci_field_type($this->result,$d);$J->charsetnr=(preg_match("~raw|blob|bfile~",$J->type)?63:0);return$J;}function
__destruct(){oci_free_statement($this->result);}}}elseif(extension_loaded("pdo_oci")){class
Db
extends
PdoDb{var$extension="PDO_OCI";var$_current_db;function
attach($N,$V,$F){return$this->dsn("oci:dbname=//$N;charset=AL32UTF8",$V,$F);}function
select_db($Nb){$this->_current_db=$Nb;return
true;}}}class
Driver
extends
SqlDriver{static$Pc=array("OCI8","PDO_OCI");static$re="oracle";var$insertFunctions=array("date"=>"current_date","timestamp"=>"current_timestamp",);var$editFunctions=array("number|float|double"=>"+/-","date|timestamp"=>"+ interval/- interval","char|clob"=>"||",);var$operators=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","IN","IS NULL","NOT LIKE","NOT IN","IS NOT NULL","SQL");var$functions=array("length","lower","round","upper");var$grouping=array("avg","count","count distinct","max","min","sum");function
__construct(Db$g){parent::__construct($g);$this->types=array(lang(25)=>array("number"=>38,"binary_float"=>12,"binary_double"=>21),lang(26)=>array("date"=>10,"timestamp"=>29,"interval year"=>12,"interval day"=>28),lang(27)=>array("char"=>2000,"varchar2"=>4000,"nchar"=>2000,"nvarchar2"=>4000,"clob"=>4294967295,"nclob"=>4294967295),lang(28)=>array("raw"=>2000,"long raw"=>2147483648,"blob"=>4294967295,"bfile"=>4294967296),);}function
begin(){return
true;}function
insertUpdate($R,array$L,array$G){foreach($L
as$O){$fj=array();$Z=array();foreach($O
as$y=>$X){$fj[]="$y = $X";if(isset($G[idf_unescape($y)]))$Z[]="$y = $X";}if(!(($Z&&queries("UPDATE ".table($R)." SET ".implode(", ",$fj)." WHERE ".implode(" AND ",$Z))&&connection()->affected_rows)||queries("INSERT INTO ".table($R)." (".implode(", ",array_keys($O)).") VALUES (".implode(", ",$O).")")))return
false;}return
true;}function
hasCStyleEscapes(){return
true;}}function
idf_escape($v){return'"'.str_replace('"','""',$v).'"';}function
table($v){return
idf_escape($v);}function
get_databases($gd){return
get_vals("SELECT DISTINCT tablespace_name FROM (
SELECT tablespace_name FROM user_tablespaces
UNION SELECT tablespace_name FROM all_tables WHERE tablespace_name IS NOT NULL
)
ORDER BY 1");}function
limit($H,$Z,$_,$D=0,$Ah=" "){return($D?" * FROM (SELECT t.*, rownum AS rnum FROM (SELECT $H$Z) t WHERE rownum <= ".($_+$D).") WHERE rnum > $D":($_?" * FROM (SELECT $H$Z) WHERE rownum <= ".($_+$D):" $H$Z"));}function
limit1($R,$H,$Z,$Ah="\n"){return" $H$Z";}function
db_collation($k,$jb){return
get_val("SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'");}function
logged_user(){return
get_val("SELECT USER FROM DUAL");}function
get_current_db(){$k=connection()->_current_db?:DB;unset(connection()->_current_db);return$k;}function
where_owner($Dg,$fg="owner"){if(!$_GET["ns"])return'';return"$Dg$fg = sys_context('USERENV', 'CURRENT_SCHEMA')";}function
views_table($e){$fg=where_owner('');return"(SELECT $e FROM all_views WHERE ".($fg?:"rownum < 0").")";}function
tables_list(){$uj=views_table("view_name");$fg=where_owner(" AND ");return
get_key_vals("SELECT table_name, 'table' FROM all_tables WHERE tablespace_name = ".q(DB)."$fg
UNION SELECT view_name, 'view' FROM $uj
ORDER BY 1");}function
count_tables($j){$J=array();foreach($j
as$k)$J[$k]=get_val("SELECT COUNT(*) FROM all_tables WHERE tablespace_name = ".q($k));return$J;}function
table_status($C=""){$J=array();$uh=q($C);$k=get_current_db();$uj=views_table("view_name");$fg=where_owner(" AND ");foreach(get_rows('SELECT table_name "Name", \'table\' "Engine", avg_row_len * num_rows "Data_length", num_rows "Rows" FROM all_tables WHERE tablespace_name = '.q($k).$fg.($C!=""?" AND table_name = $uh":"")."
UNION SELECT view_name, 'view', 0, 0 FROM $uj".($C!=""?" WHERE view_name = $uh":"")."
ORDER BY 1")as$K)$J[$K["Name"]]=$K;return$J;}function
is_view($S){return$S["Engine"]=="view";}function
fk_support($S){return
true;}function
fields($R){$J=array();$fg=where_owner(" AND ");foreach(get_rows("SELECT * FROM all_tab_columns WHERE table_name = ".q($R)."$fg ORDER BY column_id")as$K){$U=$K["DATA_TYPE"];$z="$K[DATA_PRECISION],$K[DATA_SCALE]";if($z==",")$z=$K["CHAR_COL_DECL_LENGTH"];$J[$K["COLUMN_NAME"]]=array("field"=>$K["COLUMN_NAME"],"full_type"=>$U.($z?"($z)":""),"type"=>strtolower($U),"length"=>$z,"default"=>$K["DATA_DEFAULT"],"null"=>($K["NULLABLE"]=="Y"),"privileges"=>array("insert"=>1,"select"=>1,"update"=>1,"where"=>1,"order"=>1),);}return$J;}function
indexes($R,$h=null){$J=array();$fg=where_owner(" AND ","aic.table_owner");foreach(get_rows("SELECT aic.*, ac.constraint_type, atc.data_default
FROM all_ind_columns aic
LEFT JOIN all_constraints ac ON aic.index_name = ac.constraint_name AND aic.table_name = ac.table_name AND aic.index_owner = ac.owner
LEFT JOIN all_tab_cols atc ON aic.column_name = atc.column_name AND aic.table_name = atc.table_name AND aic.index_owner = atc.owner
WHERE aic.table_name = ".q($R)."$fg
ORDER BY ac.constraint_type, aic.column_position",$h)as$K){$Xd=$K["INDEX_NAME"];$lb=$K["DATA_DEFAULT"];$lb=($lb?trim($lb,'"'):$K["COLUMN_NAME"]);$J[$Xd]["type"]=($K["CONSTRAINT_TYPE"]=="P"?"PRIMARY":($K["CONSTRAINT_TYPE"]=="U"?"UNIQUE":"INDEX"));$J[$Xd]["columns"][]=$lb;$J[$Xd]["lengths"][]=($K["CHAR_LENGTH"]&&$K["CHAR_LENGTH"]!=$K["COLUMN_LENGTH"]?$K["CHAR_LENGTH"]:null);$J[$Xd]["descs"][]=($K["DESCEND"]&&$K["DESCEND"]=="DESC"?'1':null);}return$J;}function
view($C){$uj=views_table("view_name, text");$L=get_rows('SELECT text "select" FROM '.$uj.' WHERE view_name = '.q($C));return
reset($L);}function
collations(){return
array();}function
information_schema($k){return
get_schema()=="INFORMATION_SCHEMA";}function
error(){return
h(connection()->error);}function
explain($g,$H){$g->query("EXPLAIN PLAN FOR $H");return$g->query("SELECT * FROM plan_table");}function
found_rows($S,$Z){}function
auto_increment(){return"";}function
alter_table($R,$C,$o,$id,$ob,$xc,$c,$Ba,$og){$b=$hc=array();$Yf=($R?fields($R):array());foreach($o
as$n){$X=$n[1];if($X&&$n[0]!=""&&idf_escape($n[0])!=$X[0])queries("ALTER TABLE ".table($R)." RENAME COLUMN ".idf_escape($n[0])." TO $X[0]");$Xf=$Yf[$n[0]];if($X&&$Xf){$Bf=process_field($Xf,$Xf);if($X[2]==$Bf[2])$X[2]="";}if($X)$b[]=($R!=""?($n[0]!=""?"MODIFY (":"ADD ("):" ").implode($X).($R!=""?")":"");else$hc[]=idf_escape($n[0]);}if($R=="")return
queries("CREATE TABLE ".table($C)." (\n".implode(",\n",$b)."\n)");return(!$b||queries("ALTER TABLE ".table($R)."\n".implode("\n",$b)))&&(!$hc||queries("ALTER TABLE ".table($R)." DROP (".implode(", ",$hc).")"))&&($R==$C||queries("ALTER TABLE ".table($R)." RENAME TO ".table($C)));}function
alter_indexes($R,$b){$hc=array();$Og=array();foreach($b
as$X){if($X[0]!="INDEX"){$X[2]=preg_replace('~ DESC$~','',$X[2]);$i=($X[2]=="DROP"?"\nDROP CONSTRAINT ".idf_escape($X[1]):"\nADD".($X[1]!=""?" CONSTRAINT ".idf_escape($X[1]):"")." $X[0] ".($X[0]=="PRIMARY"?"KEY ":"")."(".implode(", ",$X[2]).")");array_unshift($Og,"ALTER TABLE ".table($R).$i);}elseif($X[2]=="DROP")$hc[]=idf_escape($X[1]);else$Og[]="CREATE INDEX ".idf_escape($X[1]!=""?$X[1]:uniqid($R."_"))." ON ".table($R)." (".implode(", ",$X[2]).")";}if($hc)array_unshift($Og,"DROP INDEX ".implode(", ",$hc));foreach($Og
as$H){if(!queries($H))return
false;}return
true;}function
foreign_keys($R){$J=array();$H="SELECT c_list.CONSTRAINT_NAME as NAME,
c_src.COLUMN_NAME as SRC_COLUMN,
c_dest.OWNER as DEST_DB,
c_dest.TABLE_NAME as DEST_TABLE,
c_dest.COLUMN_NAME as DEST_COLUMN,
c_list.DELETE_RULE as ON_DELETE
FROM ALL_CONSTRAINTS c_list, ALL_CONS_COLUMNS c_src, ALL_CONS_COLUMNS c_dest
WHERE c_list.CONSTRAINT_NAME = c_src.CONSTRAINT_NAME
AND c_list.R_CONSTRAINT_NAME = c_dest.CONSTRAINT_NAME
AND c_list.CONSTRAINT_TYPE = 'R'
AND c_src.TABLE_NAME = ".q($R);foreach(get_rows($H)as$K)$J[$K['NAME']]=array("db"=>$K['DEST_DB'],"table"=>$K['DEST_TABLE'],"source"=>array($K['SRC_COLUMN']),"target"=>array($K['DEST_COLUMN']),"on_delete"=>$K['ON_DELETE'],"on_update"=>null,);return$J;}function
truncate_tables($T){return
apply_queries("TRUNCATE TABLE",$T);}function
drop_views($vj){return
apply_queries("DROP VIEW",$vj);}function
drop_tables($T){return
apply_queries("DROP TABLE",$T);}function
last_id($I){return
0;}function
schemas(){$J=get_vals("SELECT DISTINCT owner FROM dba_segments WHERE owner IN (SELECT username FROM dba_users WHERE default_tablespace NOT IN ('SYSTEM','SYSAUX')) ORDER BY 1");return($J?:get_vals("SELECT DISTINCT owner FROM all_tables WHERE tablespace_name = ".q(DB)." ORDER BY 1"));}function
get_schema(){return
get_val("SELECT sys_context('USERENV', 'SESSION_USER') FROM dual");}function
set_schema($sh,$h=null){if(!$h)$h=connection();return$h->query("ALTER SESSION SET CURRENT_SCHEMA = ".idf_escape($sh));}function
show_variables(){return
get_rows('SELECT name, display_value FROM v$parameter');}function
show_status(){$J=array();$L=get_rows('SELECT * FROM v$instance');foreach(reset($L)as$y=>$X)$J[]=array($y,$X);return$J;}function
process_list(){return
get_rows('SELECT
sess.process AS "process",
sess.username AS "user",
sess.schemaname AS "schema",
sess.status AS "status",
sess.wait_class AS "wait_class",
sess.seconds_in_wait AS "seconds_in_wait",
sql.sql_text AS "sql_text",
sess.machine AS "machine",
sess.port AS "port"
FROM v$session sess LEFT OUTER JOIN v$sql sql
ON sql.sql_id = sess.sql_id
WHERE sess.type = \'USER\'
ORDER BY PROCESS
');}function
convert_field($n){}function
unconvert_field($n,$J){return$J;}function
support($Uc){return
preg_match('~^(columns|database|drop_col|indexes|descidx|processlist|scheme|sql|status|table|variables|view)$~',$Uc);}}add_driver("mssql","MS SQL");if(isset($_GET["mssql"])){define('Adminer\DRIVER',"mssql");if(extension_loaded("sqlsrv")&&$_GET["ext"]!="pdo"){class
Db
extends
SqlDb{var$extension="sqlsrv";private$link,$result;private
function
get_error(){$this->error="";foreach(sqlsrv_errors()as$m){$this->errno=$m["code"];$this->error
.="$m[message]\n";}$this->error=rtrim($this->error);}function
attach($N,$V,$F){$vb=array("UID"=>$V,"PWD"=>$F,"CharacterSet"=>"UTF-8");$Wh=adminer()->connectSsl();if(isset($Wh["Encrypt"]))$vb["Encrypt"]=$Wh["Encrypt"];if(isset($Wh["TrustServerCertificate"]))$vb["TrustServerCertificate"]=$Wh["TrustServerCertificate"];$k=adminer()->database();if($k!="")$vb["Database"]=$k;$this->link=@sqlsrv_connect(preg_replace('~:~',',',$N),$vb);if($this->link){$be=sqlsrv_server_info($this->link);$this->server_info=$be['SQLServerVersion'];}else$this->get_error();return($this->link?'':$this->error);}function
quote($Q){$Yi=strlen($Q)!=strlen(utf8_decode($Q));return($Yi?"N":"")."'".str_replace("'","''",$Q)."'";}function
select_db($Nb){return$this->query(use_sql($Nb));}function
query($H,$Xi=false){$I=sqlsrv_query($this->link,$H);$this->error="";if(!$I){$this->get_error();return
false;}return$this->store_result($I);}function
multi_query($H){$this->result=sqlsrv_query($this->link,$H);$this->error="";if(!$this->result){$this->get_error();return
false;}return
true;}function
store_result($I=null){if(!$I)$I=$this->result;if(!$I)return
false;if(sqlsrv_field_metadata($I))return
new
Result($I);$this->affected_rows=sqlsrv_rows_affected($I);return
true;}function
next_result(){return$this->result?!!sqlsrv_next_result($this->result):false;}}class
Result{var$num_rows;private$result,$offset=0,$fields;function
__construct($I){$this->result=$I;}private
function
convert($K){foreach((array)$K
as$y=>$X){if(is_a($X,'DateTime'))$K[$y]=$X->format("Y-m-d H:i:s");}return$K;}function
fetch_assoc(){return$this->convert(sqlsrv_fetch_array($this->result,SQLSRV_FETCH_ASSOC));}function
fetch_row(){return$this->convert(sqlsrv_fetch_array($this->result,SQLSRV_FETCH_NUMERIC));}function
fetch_field(){if(!$this->fields)$this->fields=sqlsrv_field_metadata($this->result);$n=$this->fields[$this->offset++];$J=new
\stdClass;$J->name=$n["Name"];$J->type=($n["Type"]==1?254:15);$J->charsetnr=0;return$J;}function
seek($D){for($t=0;$t<$D;$t++)sqlsrv_fetch($this->result);}function
__destruct(){sqlsrv_free_stmt($this->result);}}function
last_id($I){return
get_val("SELECT SCOPE_IDENTITY()");}function
explain($g,$H){$g->query("SET SHOWPLAN_ALL ON");$J=$g->query($H);$g->query("SET SHOWPLAN_ALL OFF");return$J;}}else{abstract
class
MssqlDb
extends
PdoDb{function
select_db($Nb){return$this->query(use_sql($Nb));}function
lastInsertId(){return$this->pdo->lastInsertId();}}function
last_id($I){return
connection()->lastInsertId();}function
explain($g,$H){}if(extension_loaded("pdo_sqlsrv")){class
Db
extends
MssqlDb{var$extension="PDO_SQLSRV";function
attach($N,$V,$F){return$this->dsn("sqlsrv:Server=".str_replace(":",",",$N),$V,$F);}}}elseif(extension_loaded("pdo_dblib")){class
Db
extends
MssqlDb{var$extension="PDO_DBLIB";function
attach($N,$V,$F){return$this->dsn("dblib:charset=utf8;host=".str_replace(":",";unix_socket=",preg_replace('~:(\d)~',';port=\1',$N)),$V,$F);}}}}class
Driver
extends
SqlDriver{static$Pc=array("SQLSRV","PDO_SQLSRV","PDO_DBLIB");static$re="mssql";var$insertFunctions=array("date|time"=>"getdate");var$editFunctions=array("int|decimal|real|float|money|datetime"=>"+/-","char|text"=>"+",);var$operators=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","IN","IS NULL","NOT LIKE","NOT IN","IS NOT NULL");var$functions=array("len","lower","round","upper");var$grouping=array("avg","count","count distinct","max","min","sum");var$generated=array("PERSISTED","VIRTUAL");var$onActions="NO ACTION|CASCADE|SET NULL|SET DEFAULT";static
function
connect($N,$V,$F){if($N=="")$N="localhost:1433";return
parent::connect($N,$V,$F);}function
__construct(Db$g){parent::__construct($g);$this->types=array(lang(25)=>array("tinyint"=>3,"smallint"=>5,"int"=>10,"bigint"=>20,"bit"=>1,"decimal"=>0,"real"=>12,"float"=>53,"smallmoney"=>10,"money"=>20),lang(26)=>array("date"=>10,"smalldatetime"=>19,"datetime"=>19,"datetime2"=>19,"time"=>8,"datetimeoffset"=>10),lang(27)=>array("char"=>8000,"varchar"=>8000,"text"=>2147483647,"nchar"=>4000,"nvarchar"=>4000,"ntext"=>1073741823),lang(28)=>array("binary"=>8000,"varbinary"=>8000,"image"=>2147483647),);}function
insertUpdate($R,array$L,array$G){$o=fields($R);$fj=array();$Z=array();$O=reset($L);$e="c".implode(", c",range(1,count($O)));$Qa=0;$fe=array();foreach($O
as$y=>$X){$Qa++;$C=idf_unescape($y);if(!$o[$C]["auto_increment"])$fe[$y]="c$Qa";if(isset($G[$C]))$Z[]="$y = c$Qa";else$fj[]="$y = c$Qa";}$qj=array();foreach($L
as$O)$qj[]="(".implode(", ",$O).")";if($Z){$Qd=queries("SET IDENTITY_INSERT ".table($R)." ON");$J=queries("MERGE ".table($R)." USING (VALUES\n\t".implode(",\n\t",$qj)."\n) AS source ($e) ON ".implode(" AND ",$Z).($fj?"\nWHEN MATCHED THEN UPDATE SET ".implode(", ",$fj):"")."\nWHEN NOT MATCHED THEN INSERT (".implode(", ",array_keys($Qd?$O:$fe)).") VALUES (".($Qd?$e:implode(", ",$fe)).");");if($Qd)queries("SET IDENTITY_INSERT ".table($R)." OFF");}else$J=queries("INSERT INTO ".table($R)." (".implode(", ",array_keys($O)).") VALUES\n".implode(",\n",$qj));return$J;}function
begin(){return
queries("BEGIN TRANSACTION");}function
tableHelp($C,$pe=false){$Je=array("sys"=>"catalog-views/sys-","INFORMATION_SCHEMA"=>"information-schema-views/",);$A=$Je[get_schema()];if($A)return"relational-databases/system-$A".preg_replace('~_~','-',strtolower($C))."-transact-sql";}}function
idf_escape($v){return"[".str_replace("]","]]",$v)."]";}function
table($v){return($_GET["ns"]!=""?idf_escape($_GET["ns"]).".":"").idf_escape($v);}function
get_databases($gd){return
get_vals("SELECT name FROM sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb')");}function
limit($H,$Z,$_,$D=0,$Ah=" "){return($_?" TOP (".($_+$D).")":"")." $H$Z";}function
limit1($R,$H,$Z,$Ah="\n"){return
limit($H,$Z,1,0,$Ah);}function
db_collation($k,$jb){return
get_val("SELECT collation_name FROM sys.databases WHERE name = ".q($k));}function
logged_user(){return
get_val("SELECT SUSER_NAME()");}function
tables_list(){return
get_key_vals("SELECT name, type_desc FROM sys.all_objects WHERE schema_id = SCHEMA_ID(".q(get_schema()).") AND type IN ('S', 'U', 'V') ORDER BY name");}function
count_tables($j){$J=array();foreach($j
as$k){connection()->select_db($k);$J[$k]=get_val("SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES");}return$J;}function
table_status($C=""){$J=array();foreach(get_rows("SELECT ao.name AS Name, ao.type_desc AS Engine, (SELECT value FROM fn_listextendedproperty(default, 'SCHEMA', schema_name(schema_id), 'TABLE', ao.name, null, null)) AS Comment
FROM sys.all_objects AS ao
WHERE schema_id = SCHEMA_ID(".q(get_schema()).") AND type IN ('S', 'U', 'V') ".($C!=""?"AND name = ".q($C):"ORDER BY name"))as$K)$J[$K["Name"]]=$K;return$J;}function
is_view($S){return$S["Engine"]=="VIEW";}function
fk_support($S){return
true;}function
fields($R){$qb=get_key_vals("SELECT objname, cast(value as varchar(max)) FROM fn_listextendedproperty('MS_DESCRIPTION', 'schema', ".q(get_schema()).", 'table', ".q($R).", 'column', NULL)");$J=array();$ii=get_val("SELECT object_id FROM sys.all_objects WHERE schema_id = SCHEMA_ID(".q(get_schema()).") AND type IN ('S', 'U', 'V') AND name = ".q($R));foreach(get_rows("SELECT c.max_length, c.precision, c.scale, c.name, c.is_nullable, c.is_identity, c.collation_name, t.name type, d.definition [default], d.name default_constraint, i.is_primary_key
FROM sys.all_columns c
JOIN sys.types t ON c.user_type_id = t.user_type_id
LEFT JOIN sys.default_constraints d ON c.default_object_id = d.object_id
LEFT JOIN sys.index_columns ic ON c.object_id = ic.object_id AND c.column_id = ic.column_id
LEFT JOIN sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
WHERE c.object_id = ".q($ii))as$K){$U=$K["type"];$z=(preg_match("~char|binary~",$U)?intval($K["max_length"])/($U[0]=='n'?2:1):($U=="decimal"?"$K[precision],$K[scale]":""));$J[$K["name"]]=array("field"=>$K["name"],"full_type"=>$U.($z?"($z)":""),"type"=>$U,"length"=>$z,"default"=>(preg_match("~^\('(.*)'\)$~",$K["default"],$B)?str_replace("''","'",$B[1]):$K["default"]),"default_constraint"=>$K["default_constraint"],"null"=>$K["is_nullable"],"auto_increment"=>$K["is_identity"],"collation"=>$K["collation_name"],"privileges"=>array("insert"=>1,"select"=>1,"update"=>1,"where"=>1,"order"=>1),"primary"=>$K["is_primary_key"],"comment"=>$qb[$K["name"]],);}foreach(get_rows("SELECT * FROM sys.computed_columns WHERE object_id = ".q($ii))as$K){$J[$K["name"]]["generated"]=($K["is_persisted"]?"PERSISTED":"VIRTUAL");$J[$K["name"]]["default"]=$K["definition"];}return$J;}function
indexes($R,$h=null){$J=array();foreach(get_rows("SELECT i.name, key_ordinal, is_unique, is_primary_key, c.name AS column_name, is_descending_key
FROM sys.indexes i
INNER JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
INNER JOIN sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
WHERE OBJECT_NAME(i.object_id) = ".q($R),$h)as$K){$C=$K["name"];$J[$C]["type"]=($K["is_primary_key"]?"PRIMARY":($K["is_unique"]?"UNIQUE":"INDEX"));$J[$C]["lengths"]=array();$J[$C]["columns"][$K["key_ordinal"]]=$K["column_name"];$J[$C]["descs"][$K["key_ordinal"]]=($K["is_descending_key"]?'1':null);}return$J;}function
view($C){return
array("select"=>preg_replace('~^(?:[^[]|\[[^]]*])*\s+AS\s+~isU','',get_val("SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = SCHEMA_NAME() AND TABLE_NAME = ".q($C))));}function
collations(){$J=array();foreach(get_vals("SELECT name FROM fn_helpcollations()")as$c)$J[preg_replace('~_.*~','',$c)][]=$c;return$J;}function
information_schema($k){return
get_schema()=="INFORMATION_SCHEMA";}function
error(){return
nl_br(h(preg_replace('~^(\[[^]]*])+~m','',connection()->error)));}function
create_database($k,$c){return
queries("CREATE DATABASE ".idf_escape($k).(preg_match('~^[a-z0-9_]+$~i',$c)?" COLLATE $c":""));}function
drop_databases($j){return
queries("DROP DATABASE ".implode(", ",array_map('Adminer\idf_escape',$j)));}function
rename_database($C,$c){if(preg_match('~^[a-z0-9_]+$~i',$c))queries("ALTER DATABASE ".idf_escape(DB)." COLLATE $c");queries("ALTER DATABASE ".idf_escape(DB)." MODIFY NAME = ".idf_escape($C));return
true;}function
auto_increment(){return" IDENTITY".($_POST["Auto_increment"]!=""?"(".number($_POST["Auto_increment"]).",1)":"")." PRIMARY KEY";}function
alter_table($R,$C,$o,$id,$ob,$xc,$c,$Ba,$og){$b=array();$qb=array();$Yf=fields($R);foreach($o
as$n){$d=idf_escape($n[0]);$X=$n[1];if(!$X)$b["DROP"][]=" COLUMN $d";else{$X[1]=preg_replace("~( COLLATE )'(\\w+)'~",'\1\2',$X[1]);$qb[$n[0]]=$X[5];unset($X[5]);if(preg_match('~ AS ~',$X[3]))unset($X[1],$X[2]);if($n[0]=="")$b["ADD"][]="\n ".implode("",$X).($R==""?substr($id[$X[0]],16+strlen($X[0])):"");else{$l=$X[3];unset($X[3]);unset($X[6]);if($d!=$X[0])queries("EXEC sp_rename ".q(table($R).".$d").", ".q(idf_unescape($X[0])).", 'COLUMN'");$b["ALTER COLUMN ".implode("",$X)][]="";$Xf=$Yf[$n[0]];if(default_value($Xf)!=$l){if($Xf["default"]!==null)$b["DROP"][]=" ".idf_escape($Xf["default_constraint"]);if($l)$b["ADD"][]="\n $l FOR $d";}}}}if($R=="")return
queries("CREATE TABLE ".table($C)." (".implode(",",(array)$b["ADD"])."\n)");if($R!=$C)queries("EXEC sp_rename ".q(table($R)).", ".q($C));if($id)$b[""]=$id;foreach($b
as$y=>$X){if(!queries("ALTER TABLE ".table($C)." $y".implode(",",$X)))return
false;}foreach($qb
as$y=>$X){$ob=substr($X,9);queries("EXEC sp_dropextendedproperty @name = N'MS_Description', @level0type = N'Schema', @level0name = ".q(get_schema()).", @level1type = N'Table', @level1name = ".q($C).", @level2type = N'Column', @level2name = ".q($y));queries("EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = $ob,
@level0type = N'Schema',
@level0name = ".q(get_schema()).",
@level1type = N'Table',
@level1name = ".q($C).",
@level2type = N'Column',
@level2name = ".q($y));}return
true;}function
alter_indexes($R,$b){$w=array();$hc=array();foreach($b
as$X){if($X[2]=="DROP"){if($X[0]=="PRIMARY")$hc[]=idf_escape($X[1]);else$w[]=idf_escape($X[1])." ON ".table($R);}elseif(!queries(($X[0]!="PRIMARY"?"CREATE $X[0] ".($X[0]!="INDEX"?"INDEX ":"").idf_escape($X[1]!=""?$X[1]:uniqid($R."_"))." ON ".table($R):"ALTER TABLE ".table($R)." ADD PRIMARY KEY")." (".implode(", ",$X[2]).")"))return
false;}return(!$w||queries("DROP INDEX ".implode(", ",$w)))&&(!$hc||queries("ALTER TABLE ".table($R)." DROP ".implode(", ",$hc)));}function
found_rows($S,$Z){}function
foreign_keys($R){$J=array();$If=array("CASCADE","NO ACTION","SET NULL","SET DEFAULT");foreach(get_rows("EXEC sp_fkeys @fktable_name = ".q($R).", @fktable_owner = ".q(get_schema()))as$K){$q=&$J[$K["FK_NAME"]];$q["db"]=$K["PKTABLE_QUALIFIER"];$q["ns"]=$K["PKTABLE_OWNER"];$q["table"]=$K["PKTABLE_NAME"];$q["on_update"]=$If[$K["UPDATE_RULE"]];$q["on_delete"]=$If[$K["DELETE_RULE"]];$q["source"][]=$K["FKCOLUMN_NAME"];$q["target"][]=$K["PKCOLUMN_NAME"];}return$J;}function
truncate_tables($T){return
apply_queries("TRUNCATE TABLE",$T);}function
drop_views($vj){return
queries("DROP VIEW ".implode(", ",array_map('Adminer\table',$vj)));}function
drop_tables($T){return
queries("DROP TABLE ".implode(", ",array_map('Adminer\table',$T)));}function
move_tables($T,$vj,$si){return
apply_queries("ALTER SCHEMA ".idf_escape($si)." TRANSFER",array_merge($T,$vj));}function
trigger($C,$R){if($C=="")return
array();$L=get_rows("SELECT s.name [Trigger],
CASE WHEN OBJECTPROPERTY(s.id, 'ExecIsInsertTrigger') = 1 THEN 'INSERT' WHEN OBJECTPROPERTY(s.id, 'ExecIsUpdateTrigger') = 1 THEN 'UPDATE' WHEN OBJECTPROPERTY(s.id, 'ExecIsDeleteTrigger') = 1 THEN 'DELETE' END [Event],
CASE WHEN OBJECTPROPERTY(s.id, 'ExecIsInsteadOfTrigger') = 1 THEN 'INSTEAD OF' ELSE 'AFTER' END [Timing],
c.text
FROM sysobjects s
JOIN syscomments c ON s.id = c.id
WHERE s.xtype = 'TR' AND s.name = ".q($C));$J=reset($L);if($J)$J["Statement"]=preg_replace('~^.+\s+AS\s+~isU','',$J["text"]);return$J;}function
triggers($R){$J=array();foreach(get_rows("SELECT sys1.name,
CASE WHEN OBJECTPROPERTY(sys1.id, 'ExecIsInsertTrigger') = 1 THEN 'INSERT' WHEN OBJECTPROPERTY(sys1.id, 'ExecIsUpdateTrigger') = 1 THEN 'UPDATE' WHEN OBJECTPROPERTY(sys1.id, 'ExecIsDeleteTrigger') = 1 THEN 'DELETE' END [Event],
CASE WHEN OBJECTPROPERTY(sys1.id, 'ExecIsInsteadOfTrigger') = 1 THEN 'INSTEAD OF' ELSE 'AFTER' END [Timing]
FROM sysobjects sys1
JOIN sysobjects sys2 ON sys1.parent_obj = sys2.id
WHERE sys1.xtype = 'TR' AND sys2.name = ".q($R))as$K)$J[$K["name"]]=array($K["Timing"],$K["Event"]);return$J;}function
trigger_options(){return
array("Timing"=>array("AFTER","INSTEAD OF"),"Event"=>array("INSERT","UPDATE","DELETE"),"Type"=>array("AS"),);}function
schemas(){return
get_vals("SELECT name FROM sys.schemas");}function
get_schema(){if($_GET["ns"]!="")return$_GET["ns"];return
get_val("SELECT SCHEMA_NAME()");}function
set_schema($qh){$_GET["ns"]=$qh;return
true;}function
create_sql($R,$Ba,$bi){if(is_view(table_status1($R))){$uj=view($R);return"CREATE VIEW ".table($R)." AS $uj[select]";}$o=array();$G=false;foreach(fields($R)as$C=>$n){$X=process_field($n,$n);if($X[6])$G=true;$o[]=implode("",$X);}foreach(indexes($R)as$C=>$w){if(!$G||$w["type"]!="PRIMARY"){$e=array();foreach($w["columns"]as$y=>$X)$e[]=idf_escape($X).($w["descs"][$y]?" DESC":"");$C=idf_escape($C);$o[]=($w["type"]=="INDEX"?"INDEX $C":"CONSTRAINT $C ".($w["type"]=="UNIQUE"?"UNIQUE":"PRIMARY KEY"))." (".implode(", ",$e).")";}}foreach(driver()->checkConstraints($R)as$C=>$Xa)$o[]="CONSTRAINT ".idf_escape($C)." CHECK ($Xa)";return"CREATE TABLE ".table($R)." (\n\t".implode(",\n\t",$o)."\n)";}function
foreign_keys_sql($R){$o=array();foreach(foreign_keys($R)as$id)$o[]=ltrim(format_foreign_key($id));return($o?"ALTER TABLE ".table($R)." ADD\n\t".implode(",\n\t",$o).";\n\n":"");}function
truncate_sql($R){return"TRUNCATE TABLE ".table($R);}function
use_sql($Nb){return"USE ".idf_escape($Nb);}function
trigger_sql($R){$J="";foreach(triggers($R)as$C=>$Qi)$J
.=create_trigger(" ON ".table($R),trigger($C,$R)).";";return$J;}function
convert_field($n){}function
unconvert_field($n,$J){return$J;}function
support($Uc){return
preg_match('~^(check|comment|columns|database|drop_col|dump|indexes|descidx|scheme|sql|table|trigger|view|view_trigger)$~',$Uc);}}class
Adminer{static$he;var$error='';function
name(){return"<a href='https://www.adminer.org/'".target_blank()." id='h1'><img src='".h(preg_replace("~\\?.*~","",ME)."?file=logo.png&version=5.2.1")."' width='24' height='24' alt='' id='logo'>Adminer</a>";}function
credentials(){return
array(SERVER,$_GET["username"],get_password());}function
connectSsl(){}function
permanentLogin($i=false){return
password_file($i);}function
bruteForceKey(){return$_SERVER["REMOTE_ADDR"];}function
serverName($N){return
h($N);}function
database(){return
DB;}function
databases($gd=true){return
get_databases($gd);}function
pluginsLinks(){}function
operators(){return
driver()->operators;}function
schemas(){return
schemas();}function
queryTimeout(){return
2;}function
headers(){}function
csp(array$Gb){return$Gb;}function
head($Kb=null){return
true;}function
css(){$J=array();foreach(array("","-dark")as$jf){$p="adminer$jf.css";if(file_exists($p))$J[]="$p?v=".crc32(file_get_contents($p));}return$J;}function
loginForm(){echo"<table class='layout'>\n",adminer()->loginFormField('driver','<tr><th>'.lang(32).'<td>',html_select("auth[driver]",SqlDriver::$gc,DRIVER,"loginDriver(this);")),adminer()->loginFormField('server','<tr><th>'.lang(33).'<td>','<input name="auth[server]" value="'.h(SERVER).'" title="hostname[:port]" placeholder="localhost" autocapitalize="off">'),adminer()->loginFormField('username','<tr><th>'.lang(34).'<td>','<input name="auth[username]" id="username" autofocus value="'.h($_GET["username"]).'" autocomplete="username" autocapitalize="off">'.script("const authDriver = qs('#username').form['auth[driver]']; authDriver && authDriver.onchange();")),adminer()->loginFormField('password','<tr><th>'.lang(35).'<td>','<input type="password" name="auth[password]" autocomplete="current-password">'),adminer()->loginFormField('db','<tr><th>'.lang(36).'<td>','<input name="auth[db]" value="'.h($_GET["db"]).'" autocapitalize="off">'),"</table>\n","<p><input type='submit' value='".lang(37)."'>\n",checkbox("auth[permanent]",1,$_COOKIE["adminer_permanent"],lang(38))."\n";}function
loginFormField($C,$Gd,$Y){return$Gd.$Y."\n";}function
login($Le,$F){if($F=="")return
lang(39,target_blank());return
true;}function
tableName(array$hi){return
h($hi["Name"]);}function
fieldName(array$n,$Rf=0){$U=$n["full_type"];$ob=$n["comment"];return'<span title="'.h($U.($ob!=""?($U?": ":"").$ob:'')).'">'.h($n["field"]).'</span>';}function
selectLinks(array$hi,$O=""){echo'<p class="links">';$Je=array("select"=>lang(40));if(support("table")||support("indexes"))$Je["table"]=lang(41);$pe=false;if(support("table")){$pe=is_view($hi);if($pe)$Je["view"]=lang(42);else$Je["create"]=lang(43);}if($O!==null)$Je["edit"]=lang(44);$C=$hi["Name"];foreach($Je
as$y=>$X)echo" <a href='".h(ME)."$y=".urlencode($C).($y=="edit"?$O:"")."'".bold(isset($_GET[$y])).">$X</a>";echo
doc_link(array(JUSH=>driver()->tableHelp($C,$pe)),"?"),"\n";}function
foreignKeys($R){return
foreign_keys($R);}function
backwardKeys($R,$gi){return
array();}function
backwardKeysPrint(array$Fa,array$K){}function
selectQuery($H,$Xh,$Sc=false){$J="</p>\n";if(!$Sc&&($yj=driver()->warnings())){$u="warnings";$J=", <a href='#$u'>".lang(45)."</a>".script("qsl('a').onclick = partial(toggle, '$u');","")."$J<div id='$u' class='hidden'>\n$yj</div>\n";}return"<p><code class='jush-".JUSH."'>".h(str_replace("\n"," ",$H))."</code> <span class='time'>(".format_time($Xh).")</span>".(support("sql")?" <a href='".h(ME)."sql=".urlencode($H)."'>".lang(10)."</a>":"").$J;}function
sqlCommandQuery($H){return
shorten_utf8(trim($H),1000);}function
sqlPrintAfter(){}function
rowDescription($R){return"";}function
rowDescriptions(array$L,array$jd){return$L;}function
selectLink($X,array$n){}function
selectVal($X,$A,array$n,$bg){$J=($X===null?"<i>NULL</i>":(preg_match("~char|binary|boolean~",$n["type"])&&!preg_match("~var~",$n["type"])?"<code>$X</code>":(preg_match('~json~',$n["type"])?"<code class='jush-js'>$X</code>":$X)));if(preg_match('~blob|bytea|raw|file~',$n["type"])&&!is_utf8($X))$J="<i>".lang(46,strlen($bg))."</i>";return($A?"<a href='".h($A)."'".(is_url($A)?target_blank():"").">$J</a>":$J);}function
editVal($X,array$n){return$X;}function
config(){return
array();}function
tableStructurePrint(array$o,$hi=null){echo"<div class='scrollable'>\n","<table class='nowrap odds'>\n","<thead><tr><th>".lang(47)."<td>".lang(48).(support("comment")?"<td>".lang(49):"")."</thead>\n";$ai=driver()->structuredTypes();foreach($o
as$n){echo"<tr><th>".h($n["field"]);$U=h($n["full_type"]);$c=h($n["collation"]);echo"<td><span title='$c'>".(in_array($U,(array)$ai[lang(31)])?"<a href='".h(ME.'type='.urlencode($U))."'>$U</a>":$U.($c&&isset($hi["Collation"])&&$c!=$hi["Collation"]?" $c":""))."</span>",($n["null"]?" <i>NULL</i>":""),($n["auto_increment"]?" <i>".lang(50)."</i>":"");$l=h($n["default"]);echo(isset($n["default"])?" <span title='".lang(51)."'>[<b>".($n["generated"]?"<code class='jush-".JUSH."'>$l</code>":$l)."</b>]</span>":""),(support("comment")?"<td>".h($n["comment"]):""),"\n";}echo"</table>\n","</div>\n";}function
tableIndexesPrint(array$x){echo"<table>\n";foreach($x
as$C=>$w){ksort($w["columns"]);$Gg=array();foreach($w["columns"]as$y=>$X)$Gg[]="<i>".h($X)."</i>".($w["lengths"][$y]?"(".$w["lengths"][$y].")":"").($w["descs"][$y]?" DESC":"");echo"<tr title='".h($C)."'><th>$w[type]<td>".implode(", ",$Gg)."\n";}echo"</table>\n";}function
selectColumnsPrint(array$M,array$e){print_fieldset("select",lang(52),$M);$t=0;$M[""]=array();foreach($M
as$y=>$X){$X=idx($_GET["columns"],$y,array());$d=select_input(" name='columns[$t][col]'",$e,$X["col"],($y!==""?"selectFieldChange":"selectAddRow"));echo"<div>".(driver()->functions||driver()->grouping?html_select("columns[$t][fun]",array(-1=>"")+array_filter(array(lang(53)=>driver()->functions,lang(54)=>driver()->grouping)),$X["fun"]).on_help("event.target.value && event.target.value.replace(/ |\$/, '(') + ')'",1).script("qsl('select').onchange = function () { helpClose();".($y!==""?"":" qsl('select, input', this.parentNode).onchange();")." };","")."($d)":$d)."</div>\n";$t++;}echo"</div></fieldset>\n";}function
selectSearchPrint(array$Z,array$e,array$x){print_fieldset("search",lang(55),$Z);foreach($x
as$t=>$w){if($w["type"]=="FULLTEXT")echo"<div>(<i>".implode("</i>, <i>",array_map('Adminer\h',$w["columns"]))."</i>) AGAINST"," <input type='search' name='fulltext[$t]' value='".h($_GET["fulltext"][$t])."'>",script("qsl('input').oninput = selectFieldChange;",""),checkbox("boolean[$t]",1,isset($_GET["boolean"][$t]),"BOOL"),"</div>\n";}$Ua="this.parentNode.firstChild.onchange();";foreach(array_merge((array)$_GET["where"],array(array()))as$t=>$X){if(!$X||("$X[col]$X[val]"!=""&&in_array($X["op"],adminer()->operators())))echo"<div>".select_input(" name='where[$t][col]'",$e,$X["col"],($X?"selectFieldChange":"selectAddRow"),"(".lang(56).")"),html_select("where[$t][op]",adminer()->operators(),$X["op"],$Ua),"<input type='search' name='where[$t][val]' value='".h($X["val"])."'>",script("mixin(qsl('input'), {oninput: function () { $Ua }, onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});",""),"</div>\n";}echo"</div></fieldset>\n";}function
selectOrderPrint(array$Rf,array$e,array$x){print_fieldset("sort",lang(57),$Rf);$t=0;foreach((array)$_GET["order"]as$y=>$X){if($X!=""){echo"<div>".select_input(" name='order[$t]'",$e,$X,"selectFieldChange"),checkbox("desc[$t]",1,isset($_GET["desc"][$y]),lang(58))."</div>\n";$t++;}}echo"<div>".select_input(" name='order[$t]'",$e,"","selectAddRow"),checkbox("desc[$t]",1,false,lang(58))."</div>\n","</div></fieldset>\n";}function
selectLimitPrint($_){echo"<fieldset><legend>".lang(59)."</legend><div>","<input type='number' name='limit' class='size' value='".intval($_)."'>",script("qsl('input').oninput = selectFieldChange;",""),"</div></fieldset>\n";}function
selectLengthPrint($yi){if($yi!==null)echo"<fieldset><legend>".lang(60)."</legend><div>","<input type='number' name='text_length' class='size' value='".h($yi)."'>","</div></fieldset>\n";}function
selectActionPrint(array$x){echo"<fieldset><legend>".lang(61)."</legend><div>","<input type='submit' value='".lang(52)."'>"," <span id='noindex' title='".lang(62)."'></span>","<script".nonce().">\n","const indexColumns = ";$e=array();foreach($x
as$w){$Jb=reset($w["columns"]);if($w["type"]!="FULLTEXT"&&$Jb)$e[$Jb]=1;}$e[""]=1;foreach($e
as$y=>$X)json_row($y);echo";\n","selectFieldChange.call(qs('#form')['select']);\n","</script>\n","</div></fieldset>\n";}function
selectCommandPrint(){return!information_schema(DB);}function
selectImportPrint(){return!information_schema(DB);}function
selectEmailPrint(array$uc,array$e){}function
selectColumnsProcess(array$e,array$x){$M=array();$vd=array();foreach((array)$_GET["columns"]as$y=>$X){if($X["fun"]=="count"||($X["col"]!=""&&(!$X["fun"]||in_array($X["fun"],driver()->functions)||in_array($X["fun"],driver()->grouping)))){$M[$y]=apply_sql_function($X["fun"],($X["col"]!=""?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],driver()->grouping))$vd[]=$M[$y];}}return
array($M,$vd);}function
selectSearchProcess(array$o,array$x){$J=array();foreach($x
as$t=>$w){if($w["type"]=="FULLTEXT"&&$_GET["fulltext"][$t]!="")$J[]="MATCH (".implode(", ",array_map('Adminer\idf_escape',$w["columns"])).") AGAINST (".q($_GET["fulltext"][$t]).(isset($_GET["boolean"][$t])?" IN BOOLEAN MODE":"").")";}foreach((array)$_GET["where"]as$y=>$X){$hb=$X["col"];if("$hb$X[val]"!=""&&in_array($X["op"],adminer()->operators())){$sb=array();foreach(($hb!=""?array($hb=>$o[$hb]):$o)as$C=>$n){$Dg="";$rb=" $X[op]";if(preg_match('~IN$~',$X["op"])){$Ud=process_length($X["val"]);$rb
.=" ".($Ud!=""?$Ud:"(NULL)");}elseif($X["op"]=="SQL")$rb=" $X[val]";elseif(preg_match('~^(I?LIKE) %%$~',$X["op"],$B))$rb=" $B[1] ".adminer()->processInput($n,"%$X[val]%");elseif($X["op"]=="FIND_IN_SET"){$Dg="$X[op](".q($X["val"]).", ";$rb=")";}elseif(!preg_match('~NULL$~',$X["op"]))$rb
.=" ".adminer()->processInput($n,$X["val"]);if($hb!=""||(isset($n["privileges"]["where"])&&(preg_match('~^[-\d.'.(preg_match('~IN$~',$X["op"])?',':'').']+$~',$X["val"])||!preg_match('~'.number_type().'|bit~',$n["type"]))&&(!preg_match("~[\x80-\xFF]~",$X["val"])||preg_match('~char|text|enum|set~',$n["type"]))&&(!preg_match('~date|timestamp~',$n["type"])||preg_match('~^\d+-\d+-\d+~',$X["val"]))))$sb[]=$Dg.driver()->convertSearch(idf_escape($C),$X,$n).$rb;}$J[]=(count($sb)==1?$sb[0]:($sb?"(".implode(" OR ",$sb).")":"1 = 0"));}}return$J;}function
selectOrderProcess(array$o,array$x){$J=array();foreach((array)$_GET["order"]as$y=>$X){if($X!="")$J[]=(preg_match('~^((COUNT\(DISTINCT |[A-Z0-9_]+\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\)|COUNT\(\*\))$~',$X)?$X:idf_escape($X)).(isset($_GET["desc"][$y])?" DESC":"");}return$J;}function
selectLimitProcess(){return(isset($_GET["limit"])?intval($_GET["limit"]):50);}function
selectLengthProcess(){return(isset($_GET["text_length"])?"$_GET[text_length]":"100");}function
selectEmailProcess(array$Z,array$jd){return
false;}function
selectQueryBuild(array$M,array$Z,array$vd,array$Rf,$_,$E){return"";}function
messageQuery($H,$zi,$Sc=false){restart_session();$Id=&get_session("queries");if(!idx($Id,$_GET["db"]))$Id[$_GET["db"]]=array();if(strlen($H)>1e6)$H=preg_replace('~[\x80-\xFF]+$~','',substr($H,0,1e6))."\n…";$Id[$_GET["db"]][]=array($H,time(),$zi);$Th="sql-".count($Id[$_GET["db"]]);$J="<a href='#$Th' class='toggle'>".lang(63)."</a>\n";if(!$Sc&&($yj=driver()->warnings())){$u="warnings-".count($Id[$_GET["db"]]);$J="<a href='#$u' class='toggle'>".lang(45)."</a>, $J<div id='$u' class='hidden'>\n$yj</div>\n";}return" <span class='time'>".@date("H:i:s")."</span>"." $J<div id='$Th' class='hidden'><pre><code class='jush-".JUSH."'>".shorten_utf8($H,1000)."</code></pre>".($zi?" <span class='time'>($zi)</span>":'').(support("sql")?'<p><a href="'.h(str_replace("db=".urlencode(DB),"db=".urlencode($_GET["db"]),ME).'sql=&history='.(count($Id[$_GET["db"]])-1)).'">'.lang(10).'</a>':'').'</div>';}function
editRowPrint($R,array$o,$K,$fj){}function
editFunctions(array$n){$J=($n["null"]?"NULL/":"");$fj=isset($_GET["select"])||where($_GET);foreach(array(driver()->insertFunctions,driver()->editFunctions)as$y=>$qd){if(!$y||(!isset($_GET["call"])&&$fj)){foreach($qd
as$sg=>$X){if(!$sg||preg_match("~$sg~",$n["type"]))$J
.="/$X";}}if($y&&$qd&&!preg_match('~set|blob|bytea|raw|file|bool~',$n["type"]))$J
.="/SQL";}if($n["auto_increment"]&&!$fj)$J=lang(50);return
explode("/",$J);}function
editInput($R,array$n,$_a,$Y){if($n["type"]=="enum")return(isset($_GET["select"])?"<label><input type='radio'$_a value='-1' checked><i>".lang(8)."</i></label> ":"").($n["null"]?"<label><input type='radio'$_a value=''".($Y!==null||isset($_GET["select"])?"":" checked")."><i>NULL</i></label> ":"").enum_input("radio",$_a,$n,$Y,$Y===0?0:null);return"";}function
editHint($R,array$n,$Y){return"";}function
processInput(array$n,$Y,$s=""){if($s=="SQL")return$Y;$C=$n["field"];$J=q($Y);if(preg_match('~^(now|getdate|uuid)$~',$s))$J="$s()";elseif(preg_match('~^current_(date|timestamp)$~',$s))$J=$s;elseif(preg_match('~^([+-]|\|\|)$~',$s))$J=idf_escape($C)." $s $J";elseif(preg_match('~^[+-] interval$~',$s))$J=idf_escape($C)." $s ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+\$~i",$Y)?$Y:$J);elseif(preg_match('~^(addtime|subtime|concat)$~',$s))$J="$s(".idf_escape($C).", $J)";elseif(preg_match('~^(md5|sha1|password|encrypt)$~',$s))$J="$s($J)";return
unconvert_field($n,$J);}function
dumpOutput(){$J=array('text'=>lang(64),'file'=>lang(65));if(function_exists('gzencode'))$J['gz']='gzip';return$J;}function
dumpFormat(){return(support("dump")?array('sql'=>'SQL'):array())+array('csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function
dumpDatabase($k){}function
dumpTable($R,$bi,$pe=0){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($bi)dump_csv(array_keys(fields($R)));}else{if($pe==2){$o=array();foreach(fields($R)as$C=>$n)$o[]=idf_escape($C)." $n[full_type]";$i="CREATE TABLE ".table($R)." (".implode(", ",$o).")";}else$i=create_sql($R,$_POST["auto_increment"],$bi);set_utf8mb4($i);if($bi&&$i){if($bi=="DROP+CREATE"||$pe==1)echo"DROP ".($pe==2?"VIEW":"TABLE")." IF EXISTS ".table($R).";\n";if($pe==1)$i=remove_definer($i);echo"$i;\n\n";}}}function
dumpData($R,$bi,$H){if($bi){$Te=(JUSH=="sqlite"?0:1048576);$o=array();$Rd=false;if($_POST["format"]=="sql"){if($bi=="TRUNCATE+INSERT")echo
truncate_sql($R).";\n";$o=fields($R);if(JUSH=="mssql"){foreach($o
as$n){if($n["auto_increment"]){echo"SET IDENTITY_INSERT ".table($R)." ON;\n";$Rd=true;break;}}}}$I=connection()->query($H,1);if($I){$fe="";$Pa="";$ue=array();$rd=array();$di="";$Vc=($R!=''?'fetch_assoc':'fetch_row');$Cb=0;while($K=$I->$Vc()){if(!$ue){$qj=array();foreach($K
as$X){$n=$I->fetch_field();if(idx($o[$n->name],'generated')){$rd[$n->name]=true;continue;}$ue[]=$n->name;$y=idf_escape($n->name);$qj[]="$y = VALUES($y)";}$di=($bi=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$qj):"").";\n";}if($_POST["format"]!="sql"){if($bi=="table"){dump_csv($ue);$bi="INSERT";}dump_csv($K);}else{if(!$fe)$fe="INSERT INTO ".table($R)." (".implode(", ",array_map('Adminer\idf_escape',$ue)).") VALUES";foreach($K
as$y=>$X){if($rd[$y]){unset($K[$y]);continue;}$n=$o[$y];$K[$y]=($X!==null?unconvert_field($n,preg_match(number_type(),$n["type"])&&!preg_match('~\[~',$n["full_type"])&&is_numeric($X)?$X:q(($X===false?0:$X))):"NULL");}$oh=($Te?"\n":" ")."(".implode(",\t",$K).")";if(!$Pa)$Pa=$fe.$oh;elseif(JUSH=='mssql'?$Cb%1000!=0:strlen($Pa)+4+strlen($oh)+strlen($di)<$Te)$Pa
.=",$oh";else{echo$Pa.$di;$Pa=$fe.$oh;}}$Cb++;}if($Pa)echo$Pa.$di;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",connection()->error)."\n";if($Rd)echo"SET IDENTITY_INSERT ".table($R)." OFF;\n";}}function
dumpFilename($Pd){return
friendly_url($Pd!=""?$Pd:(SERVER!=""?SERVER:"localhost"));}function
dumpHeaders($Pd,$lf=false){$eg=$_POST["output"];$Nc=(preg_match('~sql~',$_POST["format"])?"sql":($lf?"tar":"csv"));header("Content-Type: ".($eg=="gz"?"application/x-gzip":($Nc=="tar"?"application/x-tar":($Nc=="sql"||$eg!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($eg=="gz"){ob_start(function($Q){return
gzencode($Q);},1e6);}return$Nc;}function
dumpFooter(){if($_POST["format"]=="sql")echo"-- ".gmdate("Y-m-d H:i:s e")."\n";}function
importServerPath(){return"adminer.sql";}function
homepage(){echo'<p class="links">'.($_GET["ns"]==""&&support("database")?'<a href="'.h(ME).'database=">'.lang(66)."</a>\n":""),(support("scheme")?"<a href='".h(ME)."scheme='>".($_GET["ns"]!=""?lang(67):lang(68))."</a>\n":""),($_GET["ns"]!==""?'<a href="'.h(ME).'schema=">'.lang(69)."</a>\n":""),(support("privileges")?"<a href='".h(ME)."privileges='>".lang(70)."</a>\n":"");return
true;}function
navigation($if){echo"<h1>".adminer()->name()." <span class='version'>".VERSION;$tf=$_COOKIE["adminer_version"];echo" <a href='https://www.adminer.org/#download'".target_blank()." id='version'>".(version_compare(VERSION,$tf)<0?h($tf):"")."</a>","</span></h1>\n";switch_lang();if($if=="auth"){$eg="";foreach((array)$_SESSION["pwds"]as$sj=>$Fh){foreach($Fh
as$N=>$nj){$C=h(get_setting("vendor-$sj-$N")?:get_driver($sj));foreach($nj
as$V=>$F){if($F!==null){$Qb=$_SESSION["db"][$sj][$N][$V];foreach(($Qb?array_keys($Qb):array(""))as$k)$eg
.="<li><a href='".h(auth_url($sj,$N,$V,$k))."'>($C) ".h($V.($N!=""?"@".adminer()->serverName($N):"").($k!=""?" - $k":""))."</a>\n";}}}}if($eg)echo"<ul id='logins'>\n$eg</ul>\n".script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});");}else{$T=array();if($_GET["ns"]!==""&&!$if&&DB!=""){connection()->select_db(DB);$T=table_status('',true);}adminer()->syntaxHighlighting($T);adminer()->databasesPrint($if);$ka=array();if(DB==""||!$if){if(support("sql")){$ka[]="<a href='".h(ME)."sql='".bold(isset($_GET["sql"])&&!isset($_GET["import"])).">".lang(63)."</a>";$ka[]="<a href='".h(ME)."import='".bold(isset($_GET["import"])).">".lang(71)."</a>";}$ka[]="<a href='".h(ME)."dump=".urlencode(isset($_GET["table"])?$_GET["table"]:$_GET["select"])."' id='dump'".bold(isset($_GET["dump"])).">".lang(72)."</a>";}$Vd=$_GET["ns"]!==""&&!$if&&DB!="";if($Vd)$ka[]='<a href="'.h(ME).'create="'.bold($_GET["create"]==="").">".lang(73)."</a>";echo($ka?"<p class='links'>\n".implode("\n",$ka)."\n":"");if($Vd){if($T)adminer()->tablesPrint($T);else
echo"<p class='message'>".lang(9)."</p>\n";}}}function
syntaxHighlighting(array$T){echo
script_src(preg_replace("~\\?.*~","",ME)."?file=jush.js&version=5.2.1",true);if(support("sql")){echo"<script".nonce().">\n";if($T){$Je=array();foreach($T
as$R=>$U)$Je[]=preg_quote($R,'/');echo"var jushLinks = { ".JUSH.": [ '".js_escape(ME).(support("table")?"table=":"select=")."\$&', /\\b(".implode("|",$Je).")\\b/g ] };\n";foreach(array("bac","bra","sqlite_quo","mssql_bra")as$X)echo"jushLinks.$X = jushLinks.".JUSH.";\n";if(isset($_GET["sql"])||isset($_GET["trigger"])||isset($_GET["check"])){$oi=array_fill_keys(array_keys($T),array());foreach(driver()->allFields()as$R=>$o){foreach($o
as$n)$oi[$R][]=$n["field"];}echo"addEventListener('DOMContentLoaded', () => { autocompleter = jush.autocompleteSql('".idf_escape("")."', ".json_encode($oi)."); });\n";}}echo"</script>\n";}echo
script("syntaxHighlighting('".preg_replace('~^(\d\.?\d).*~s','\1',connection()->server_info)."', '".connection()->flavor."');");}function
databasesPrint($if){$j=adminer()->databases();if(DB&&$j&&!in_array(DB,$j))array_unshift($j,DB);echo"<form action=''>\n<p id='dbs'>\n";hidden_fields_get();$Ob=script("mixin(qsl('select'), {onmousedown: dbMouseDown, onchange: dbChange});");echo"<label title='".lang(36)."'>".lang(74).": ".($j?html_select("db",array(""=>"")+$j,DB).$Ob:"<input name='db' value='".h(DB)."' autocapitalize='off' size='19'>\n")."</label>","<input type='submit' value='".lang(20)."'".($j?" class='hidden'":"").">\n";if(support("scheme")){if($if!="db"&&DB!=""&&connection()->select_db(DB)){echo"<br><label>".lang(75).": ".html_select("ns",array(""=>"")+adminer()->schemas(),$_GET["ns"])."$Ob</label>";if($_GET["ns"]!="")set_schema($_GET["ns"]);}}foreach(array("import","sql","schema","dump","privileges")as$X){if(isset($_GET[$X])){echo
input_hidden($X);break;}}echo"</p></form>\n";}function
tablesPrint(array$T){echo"<ul id='tables'>".script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($T
as$R=>$P){$R="$R";$C=adminer()->tableName($P);if($C!="")echo'<li><a href="'.h(ME).'select='.urlencode($R).'"'.bold($_GET["select"]==$R||$_GET["edit"]==$R,"select")." title='".lang(40)."'>".lang(76)."</a> ",(support("table")||support("indexes")?'<a href="'.h(ME).'table='.urlencode($R).'"'.bold(in_array($R,array($_GET["table"],$_GET["create"],$_GET["indexes"],$_GET["foreign"],$_GET["trigger"],$_GET["check"],$_GET["view"])),(is_view($P)?"view":"structure"))." title='".lang(41)."'>$C</a>":"<span>$C</span>")."\n";}echo"</ul>\n";}}class
Plugins{private
static$va=array('dumpFormat'=>true,'dumpOutput'=>true,'editRowPrint'=>true,'editFunctions'=>true,'config'=>true);var$plugins;var$error='';private$hooks=array();function
__construct($xg){if($xg===null){$xg=array();$Ja="adminer-plugins";if(is_dir($Ja)){foreach(glob("$Ja/*.php")as$p)$Wd=include_once"./$p";}$Hd=" href='https://www.adminer.org/plugins/#use'".target_blank();if(file_exists("$Ja.php")){$Wd=include_once"./$Ja.php";if(is_array($Wd)){foreach($Wd
as$wg)$xg[get_class($wg)]=$wg;}else$this->error
.=lang(77,"<b>$Ja.php</b>",$Hd)."<br>";}foreach(get_declared_classes()as$eb){if(!$xg[$eb]&&preg_match('~^Adminer\w~i',$eb)){$Yg=new
\ReflectionClass($eb);$xb=$Yg->getConstructor();if($xb&&$xb->getNumberOfRequiredParameters())$this->error
.=lang(78,$Hd,"<b>$eb</b>","<b>$Ja.php</b>")."<br>";else$xg[$eb]=new$eb;}}}$this->plugins=$xg;$na=new
Adminer;$xg[]=$na;$Yg=new
\ReflectionObject($na);foreach($Yg->getMethods()as$gf){foreach($xg
as$wg){$C=$gf->getName();if(method_exists($wg,$C))$this->hooks[$C][]=$wg;}}}function
__call($C,array$jg){$wa=array();foreach($jg
as$y=>$X)$wa[]=&$jg[$y];$J=null;foreach($this->hooks[$C]as$wg){$Y=call_user_func_array(array($wg,$C),$wa);if($Y!==null){if(!self::$va[$C])return$Y;$J=$Y+(array)$J;}}return$J;}}abstract
class
Plugin{protected$translations=array();function
description(){return$this->lang('');}function
screenshot(){return"";}protected
function
lang($v,$yf=null){$wa=func_get_args();$wa[0]=idx($this->translations[LANG],$v)?:$v;return
call_user_func_array('Adminer\lang_format',$wa);}}Adminer::$he=(function_exists('adminer_object')?adminer_object():(is_dir("adminer-plugins")||file_exists("adminer-plugins.php")?new
Plugins(null):new
Adminer));SqlDriver::$gc=array("server"=>"MySQL / MariaDB")+SqlDriver::$gc;if(!defined('Adminer\DRIVER')){define('Adminer\DRIVER',"server");if(extension_loaded("mysqli")&&$_GET["ext"]!="pdo"){class
Db
extends
\MySQLi{static$he;var$extension="MySQLi",$flavor='';function
__construct(){parent::init();}function
attach($N,$V,$F){mysqli_report(MYSQLI_REPORT_OFF);list($Ld,$yg)=explode(":",$N,2);$Wh=adminer()->connectSsl();if($Wh)$this->ssl_set($Wh['key'],$Wh['cert'],$Wh['ca'],'','');$J=@$this->real_connect(($N!=""?$Ld:ini_get("mysqli.default_host")),($N.$V!=""?$V:ini_get("mysqli.default_user")),($N.$V.$F!=""?$F:ini_get("mysqli.default_pw")),null,(is_numeric($yg)?intval($yg):ini_get("mysqli.default_port")),(is_numeric($yg)?$yg:null),($Wh?($Wh['verify']!==false?2048:64):0));$this->options(MYSQLI_OPT_LOCAL_INFILE,false);return($J?'':$this->error);}function
set_charset($Wa){if(parent::set_charset($Wa))return
true;parent::set_charset('utf8');return$this->query("SET NAMES $Wa");}function
next_result(){return
self::more_results()&&parent::next_result();}function
quote($Q){return"'".$this->escape_string($Q)."'";}}}elseif(extension_loaded("mysql")&&!((ini_bool("sql.safe_mode")||ini_bool("mysql.allow_local_infile"))&&extension_loaded("pdo_mysql"))){class
Db
extends
SqlDb{private$link;function
attach($N,$V,$F){if(ini_bool("mysql.allow_local_infile"))return
lang(79,"'mysql.allow_local_infile'","MySQLi","PDO_MySQL");$this->link=@mysql_connect(($N!=""?$N:ini_get("mysql.default_host")),("$N$V"!=""?$V:ini_get("mysql.default_user")),("$N$V$F"!=""?$F:ini_get("mysql.default_password")),true,131072);if(!$this->link)return
mysql_error();$this->server_info=mysql_get_server_info($this->link);return'';}function
set_charset($Wa){if(function_exists('mysql_set_charset')){if(mysql_set_charset($Wa,$this->link))return
true;mysql_set_charset('utf8',$this->link);}return$this->query("SET NAMES $Wa");}function
quote($Q){return"'".mysql_real_escape_string($Q,$this->link)."'";}function
select_db($Nb){return
mysql_select_db($Nb,$this->link);}function
query($H,$Xi=false){$I=@($Xi?mysql_unbuffered_query($H,$this->link):mysql_query($H,$this->link));$this->error="";if(!$I){$this->errno=mysql_errno($this->link);$this->error=mysql_error($this->link);return
false;}if($I===true){$this->affected_rows=mysql_affected_rows($this->link);$this->info=mysql_info($this->link);return
true;}return
new
Result($I);}}class
Result{var$num_rows;private$result;private$offset=0;function
__construct($I){$this->result=$I;$this->num_rows=mysql_num_rows($I);}function
fetch_assoc(){return
mysql_fetch_assoc($this->result);}function
fetch_row(){return
mysql_fetch_row($this->result);}function
fetch_field(){$J=mysql_fetch_field($this->result,$this->offset++);$J->orgtable=$J->table;$J->charsetnr=($J->blob?63:0);return$J;}function
__destruct(){mysql_free_result($this->result);}}}elseif(extension_loaded("pdo_mysql")){class
Db
extends
PdoDb{var$extension="PDO_MySQL";function
attach($N,$V,$F){$Pf=array(\PDO::MYSQL_ATTR_LOCAL_INFILE=>false);$Wh=adminer()->connectSsl();if($Wh){if($Wh['key'])$Pf[\PDO::MYSQL_ATTR_SSL_KEY]=$Wh['key'];if($Wh['cert'])$Pf[\PDO::MYSQL_ATTR_SSL_CERT]=$Wh['cert'];if($Wh['ca'])$Pf[\PDO::MYSQL_ATTR_SSL_CA]=$Wh['ca'];if(isset($Wh['verify']))$Pf[\PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT]=$Wh['verify'];}return$this->dsn("mysql:charset=utf8;host=".str_replace(":",";unix_socket=",preg_replace('~:(\d)~',';port=\1',$N)),$V,$F,$Pf);}function
set_charset($Wa){return$this->query("SET NAMES $Wa");}function
select_db($Nb){return$this->query("USE ".idf_escape($Nb));}function
query($H,$Xi=false){$this->pdo->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,!$Xi);return
parent::query($H,$Xi);}}}class
Driver
extends
SqlDriver{static$Pc=array("MySQLi","MySQL","PDO_MySQL");static$re="sql";var$unsigned=array("unsigned","zerofill","unsigned zerofill");var$operators=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","REGEXP","IN","FIND_IN_SET","IS NULL","NOT LIKE","NOT REGEXP","NOT IN","IS NOT NULL","SQL");var$functions=array("char_length","date","from_unixtime","lower","round","floor","ceil","sec_to_time","time_to_sec","upper");var$grouping=array("avg","count","count distinct","group_concat","max","min","sum");static
function
connect($N,$V,$F){$g=parent::connect($N,$V,$F);if(is_string($g)){if(function_exists('iconv')&&!is_utf8($g)&&strlen($oh=iconv("windows-1250","utf-8",$g))>strlen($g))$g=$oh;return$g;}$g->set_charset(charset($g));$g->query("SET sql_quote_show_create = 1, autocommit = 1");$g->flavor=(preg_match('~MariaDB~',$g->server_info)?'maria':'mysql');add_driver(DRIVER,($g->flavor=='maria'?"MariaDB":"MySQL"));return$g;}function
__construct(Db$g){parent::__construct($g);$this->types=array(lang(25)=>array("tinyint"=>3,"smallint"=>5,"mediumint"=>8,"int"=>10,"bigint"=>20,"decimal"=>66,"float"=>12,"double"=>21),lang(26)=>array("date"=>10,"datetime"=>19,"timestamp"=>19,"time"=>10,"year"=>4),lang(27)=>array("char"=>255,"varchar"=>65535,"tinytext"=>255,"text"=>65535,"mediumtext"=>16777215,"longtext"=>4294967295),lang(80)=>array("enum"=>65535,"set"=>64),lang(28)=>array("bit"=>20,"binary"=>255,"varbinary"=>65535,"tinyblob"=>255,"blob"=>65535,"mediumblob"=>16777215,"longblob"=>4294967295),lang(30)=>array("geometry"=>0,"point"=>0,"linestring"=>0,"polygon"=>0,"multipoint"=>0,"multilinestring"=>0,"multipolygon"=>0,"geometrycollection"=>0),);$this->insertFunctions=array("char"=>"md5/sha1/password/encrypt/uuid","binary"=>"md5/sha1","date|time"=>"now",);$this->editFunctions=array(number_type()=>"+/-","date"=>"+ interval/- interval","time"=>"addtime/subtime","char|text"=>"concat",);if(min_version('5.7.8',10.2,$g))$this->types[lang(27)]["json"]=4294967295;if(min_version('',10.7,$g)){$this->types[lang(27)]["uuid"]=128;$this->insertFunctions['uuid']='uuid';}if(min_version(9,'',$g)){$this->types[lang(25)]["vector"]=16383;$this->insertFunctions['vector']='string_to_vector';}if(min_version(5.7,10.2,$g))$this->generated=array("STORED","VIRTUAL");}function
unconvertFunction(array$n){return(preg_match("~binary~",$n["type"])?"<code class='jush-sql'>UNHEX</code>":($n["type"]=="bit"?doc_link(array('sql'=>'bit-value-literals.html'),"<code>b''</code>"):(preg_match("~geometry|point|linestring|polygon~",$n["type"])?"<code class='jush-sql'>GeomFromText</code>":"")));}function
insert($R,array$O){return($O?parent::insert($R,$O):queries("INSERT INTO ".table($R)." ()\nVALUES ()"));}function
insertUpdate($R,array$L,array$G){$e=array_keys(reset($L));$Dg="INSERT INTO ".table($R)." (".implode(", ",$e).") VALUES\n";$qj=array();foreach($e
as$y)$qj[$y]="$y = VALUES($y)";$di="\nON DUPLICATE KEY UPDATE ".implode(", ",$qj);$qj=array();$z=0;foreach($L
as$O){$Y="(".implode(", ",$O).")";if($qj&&(strlen($Dg)+$z+strlen($Y)+strlen($di)>1e6)){if(!queries($Dg.implode(",\n",$qj).$di))return
false;$qj=array();$z=0;}$qj[]=$Y;$z+=strlen($Y)+2;}return
queries($Dg.implode(",\n",$qj).$di);}function
slowQuery($H,$_i){if(min_version('5.7.8','10.1.2')){if($this->conn->flavor=='maria')return"SET STATEMENT max_statement_time=$_i FOR $H";elseif(preg_match('~^(SELECT\b)(.+)~is',$H,$B))return"$B[1] /*+ MAX_EXECUTION_TIME(".($_i*1000).") */ $B[2]";}}function
convertSearch($v,array$X,array$n){return(preg_match('~char|text|enum|set~',$n["type"])&&!preg_match("~^utf8~",$n["collation"])&&preg_match('~[\x80-\xFF]~',$X['val'])?"CONVERT($v USING ".charset($this->conn).")":$v);}function
warnings(){$I=$this->conn->query("SHOW WARNINGS");if($I&&$I->num_rows){ob_start();print_select_result($I);return
ob_get_clean();}}function
tableHelp($C,$pe=false){$Ne=($this->conn->flavor=='maria');if(information_schema(DB))return
strtolower("information-schema-".($Ne?"$C-table/":str_replace("_","-",$C)."-table.html"));if(DB=="mysql")return($Ne?"mysql$C-table/":"system-schema.html");}function
hasCStyleEscapes(){static$Ra;if($Ra===null){$Uh=get_val("SHOW VARIABLES LIKE 'sql_mode'",1,$this->conn);$Ra=(strpos($Uh,'NO_BACKSLASH_ESCAPES')===false);}return$Ra;}function
engines(){$J=array();foreach(get_rows("SHOW ENGINES")as$K){if(preg_match("~YES|DEFAULT~",$K["Support"]))$J[]=$K["Engine"];}return$J;}}function
idf_escape($v){return"`".str_replace("`","``",$v)."`";}function
table($v){return
idf_escape($v);}function
get_databases($gd){$J=get_session("dbs");if($J===null){$H="SELECT SCHEMA_NAME FROM information_schema.SCHEMATA ORDER BY SCHEMA_NAME";$J=($gd?slow_query($H):get_vals($H));restart_session();set_session("dbs",$J);stop_session();}return$J;}function
limit($H,$Z,$_,$D=0,$Ah=" "){return" $H$Z".($_?$Ah."LIMIT $_".($D?" OFFSET $D":""):"");}function
limit1($R,$H,$Z,$Ah="\n"){return
limit($H,$Z,1,0,$Ah);}function
db_collation($k,array$jb){$J=null;$i=get_val("SHOW CREATE DATABASE ".idf_escape($k),1);if(preg_match('~ COLLATE ([^ ]+)~',$i,$B))$J=$B[1];elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$i,$B))$J=$jb[$B[1]][-1];return$J;}function
logged_user(){return
get_val("SELECT USER()");}function
tables_list(){return
get_key_vals("SELECT TABLE_NAME, TABLE_TYPE FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ORDER BY TABLE_NAME");}function
count_tables(array$j){$J=array();foreach($j
as$k)$J[$k]=count(get_vals("SHOW TABLES IN ".idf_escape($k)));return$J;}function
table_status($C="",$Tc=false){$J=array();foreach(get_rows($Tc?"SELECT TABLE_NAME AS Name, ENGINE AS Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ".($C!=""?"AND TABLE_NAME = ".q($C):"ORDER BY Name"):"SHOW TABLE STATUS".($C!=""?" LIKE ".q(addcslashes($C,"%_\\")):""))as$K){if($K["Engine"]=="InnoDB")$K["Comment"]=preg_replace('~(?:(.+); )?InnoDB free: .*~','\1',$K["Comment"]);if(!isset($K["Engine"]))$K["Comment"]="";if($C!="")$K["Name"]=$C;$J[$K["Name"]]=$K;}return$J;}function
is_view(array$S){return$S["Engine"]===null;}function
fk_support(array$S){return
preg_match('~InnoDB|IBMDB2I'.(min_version(5.6)?'|NDB':'').'~i',$S["Engine"]);}function
fields($R){$Ne=(connection()->flavor=='maria');$J=array();foreach(get_rows("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ".q($R)." ORDER BY ORDINAL_POSITION")as$K){$n=$K["COLUMN_NAME"];$U=$K["COLUMN_TYPE"];$sd=$K["GENERATION_EXPRESSION"];$Qc=$K["EXTRA"];preg_match('~^(VIRTUAL|PERSISTENT|STORED)~',$Qc,$rd);preg_match('~^([^( ]+)(?:\((.+)\))?( unsigned)?( zerofill)?$~',$U,$Qe);$l=$K["COLUMN_DEFAULT"];if($l!=""){$oe=preg_match('~text|json~',$Qe[1]);if(!$Ne&&$oe)$l=preg_replace("~^(_\w+)?('.*')$~",'\2',stripslashes($l));if($Ne||$oe){$l=($l=="NULL"?null:preg_replace_callback("~^'(.*)'$~",function($B){return
stripslashes(str_replace("''","'",$B[1]));},$l));}if(!$Ne&&preg_match('~binary~',$Qe[1])&&preg_match('~^0x(\w*)$~',$l,$B))$l=pack("H*",$B[1]);}$J[$n]=array("field"=>$n,"full_type"=>$U,"type"=>$Qe[1],"length"=>$Qe[2],"unsigned"=>ltrim($Qe[3].$Qe[4]),"default"=>($rd?($Ne?$sd:stripslashes($sd)):$l),"null"=>($K["IS_NULLABLE"]=="YES"),"auto_increment"=>($Qc=="auto_increment"),"on_update"=>(preg_match('~\bon update (\w+)~i',$Qc,$B)?$B[1]:""),"collation"=>$K["COLLATION_NAME"],"privileges"=>array_flip(explode(",","$K[PRIVILEGES],where,order")),"comment"=>$K["COLUMN_COMMENT"],"primary"=>($K["COLUMN_KEY"]=="PRI"),"generated"=>($rd[1]=="PERSISTENT"?"STORED":$rd[1]),);}return$J;}function
indexes($R,$h=null){$J=array();foreach(get_rows("SHOW INDEX FROM ".table($R),$h)as$K){$C=$K["Key_name"];$J[$C]["type"]=($C=="PRIMARY"?"PRIMARY":($K["Index_type"]=="FULLTEXT"?"FULLTEXT":($K["Non_unique"]?($K["Index_type"]=="SPATIAL"?"SPATIAL":"INDEX"):"UNIQUE")));$J[$C]["columns"][]=$K["Column_name"];$J[$C]["lengths"][]=($K["Index_type"]=="SPATIAL"?null:$K["Sub_part"]);$J[$C]["descs"][]=null;}return$J;}function
foreign_keys($R){static$sg='(?:`(?:[^`]|``)+`|"(?:[^"]|"")+")';$J=array();$Db=get_val("SHOW CREATE TABLE ".table($R),1);if($Db){preg_match_all("~CONSTRAINT ($sg) FOREIGN KEY ?\\(((?:$sg,? ?)+)\\) REFERENCES ($sg)(?:\\.($sg))? \\(((?:$sg,? ?)+)\\)(?: ON DELETE (".driver()->onActions."))?(?: ON UPDATE (".driver()->onActions."))?~",$Db,$Re,PREG_SET_ORDER);foreach($Re
as$B){preg_match_all("~$sg~",$B[2],$Oh);preg_match_all("~$sg~",$B[5],$si);$J[idf_unescape($B[1])]=array("db"=>idf_unescape($B[4]!=""?$B[3]:$B[4]),"table"=>idf_unescape($B[4]!=""?$B[4]:$B[3]),"source"=>array_map('Adminer\idf_unescape',$Oh[0]),"target"=>array_map('Adminer\idf_unescape',$si[0]),"on_delete"=>($B[6]?:"RESTRICT"),"on_update"=>($B[7]?:"RESTRICT"),);}}return$J;}function
view($C){return
array("select"=>preg_replace('~^(?:[^`]|`[^`]*`)*\s+AS\s+~isU','',get_val("SHOW CREATE VIEW ".table($C),1)));}function
collations(){$J=array();foreach(get_rows("SHOW COLLATION")as$K){if($K["Default"])$J[$K["Charset"]][-1]=$K["Collation"];else$J[$K["Charset"]][]=$K["Collation"];}ksort($J);foreach($J
as$y=>$X)sort($J[$y]);return$J;}function
information_schema($k){return($k=="information_schema")||(min_version(5.5)&&$k=="performance_schema");}function
error(){return
h(preg_replace('~^You have an error.*syntax to use~U',"Syntax error",connection()->error));}function
create_database($k,$c){return
queries("CREATE DATABASE ".idf_escape($k).($c?" COLLATE ".q($c):""));}function
drop_databases(array$j){$J=apply_queries("DROP DATABASE",$j,'Adminer\idf_escape');restart_session();set_session("dbs",null);return$J;}function
rename_database($C,$c){$J=false;if(create_database($C,$c)){$T=array();$vj=array();foreach(tables_list()as$R=>$U){if($U=='VIEW')$vj[]=$R;else$T[]=$R;}$J=(!$T&&!$vj)||move_tables($T,$vj,$C);drop_databases($J?array(DB):array());}return$J;}function
auto_increment(){$Ca=" PRIMARY KEY";if($_GET["create"]!=""&&$_POST["auto_increment_col"]){foreach(indexes($_GET["create"])as$w){if(in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"],$w["columns"],true)){$Ca="";break;}if($w["type"]=="PRIMARY")$Ca=" UNIQUE";}}return" AUTO_INCREMENT$Ca";}function
alter_table($R,$C,array$o,array$id,$ob,$xc,$c,$Ba,$og){$b=array();foreach($o
as$n){if($n[1]){$l=$n[1][3];if(preg_match('~ GENERATED~',$l)){$n[1][3]=(connection()->flavor=='maria'?"":$n[1][2]);$n[1][2]=$l;}$b[]=($R!=""?($n[0]!=""?"CHANGE ".idf_escape($n[0]):"ADD"):" ")." ".implode($n[1]).($R!=""?$n[2]:"");}else$b[]="DROP ".idf_escape($n[0]);}$b=array_merge($b,$id);$P=($ob!==null?" COMMENT=".q($ob):"").($xc?" ENGINE=".q($xc):"").($c?" COLLATE ".q($c):"").($Ba!=""?" AUTO_INCREMENT=$Ba":"");if($R=="")return
queries("CREATE TABLE ".table($C)." (\n".implode(",\n",$b)."\n)$P$og");if($R!=$C)$b[]="RENAME TO ".table($C);if($P)$b[]=ltrim($P);return($b||$og?queries("ALTER TABLE ".table($R)."\n".implode(",\n",$b).$og):true);}function
alter_indexes($R,$b){$Va=array();foreach($b
as$X)$Va[]=($X[2]=="DROP"?"\nDROP INDEX ".idf_escape($X[1]):"\nADD $X[0] ".($X[0]=="PRIMARY"?"KEY ":"").($X[1]!=""?idf_escape($X[1])." ":"")."(".implode(", ",$X[2]).")");return
queries("ALTER TABLE ".table($R).implode(",",$Va));}function
truncate_tables(array$T){return
apply_queries("TRUNCATE TABLE",$T);}function
drop_views(array$vj){return
queries("DROP VIEW ".implode(", ",array_map('Adminer\table',$vj)));}function
drop_tables(array$T){return
queries("DROP TABLE ".implode(", ",array_map('Adminer\table',$T)));}function
move_tables(array$T,array$vj,$si){$ch=array();foreach($T
as$R)$ch[]=table($R)." TO ".idf_escape($si).".".table($R);if(!$ch||queries("RENAME TABLE ".implode(", ",$ch))){$Vb=array();foreach($vj
as$R)$Vb[table($R)]=view($R);connection()->select_db($si);$k=idf_escape(DB);foreach($Vb
as$C=>$uj){if(!queries("CREATE VIEW $C AS ".str_replace(" $k."," ",$uj["select"]))||!queries("DROP VIEW $k.$C"))return
false;}return
true;}return
false;}function
copy_tables(array$T,array$vj,$si){queries("SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'");foreach($T
as$R){$C=($si==DB?table("copy_$R"):idf_escape($si).".".table($R));if(($_POST["overwrite"]&&!queries("\nDROP TABLE IF EXISTS $C"))||!queries("CREATE TABLE $C LIKE ".table($R))||!queries("INSERT INTO $C SELECT * FROM ".table($R)))return
false;foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($R,"%_\\")))as$K){$Qi=$K["Trigger"];if(!queries("CREATE TRIGGER ".($si==DB?idf_escape("copy_$Qi"):idf_escape($si).".".idf_escape($Qi))." $K[Timing] $K[Event] ON $C FOR EACH ROW\n$K[Statement];"))return
false;}}foreach($vj
as$R){$C=($si==DB?table("copy_$R"):idf_escape($si).".".table($R));$uj=view($R);if(($_POST["overwrite"]&&!queries("DROP VIEW IF EXISTS $C"))||!queries("CREATE VIEW $C AS $uj[select]"))return
false;}return
true;}function
trigger($C,$R){if($C=="")return
array();$L=get_rows("SHOW TRIGGERS WHERE `Trigger` = ".q($C));return
reset($L);}function
triggers($R){$J=array();foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($R,"%_\\")))as$K)$J[$K["Trigger"]]=array($K["Timing"],$K["Event"]);return$J;}function
trigger_options(){return
array("Timing"=>array("BEFORE","AFTER"),"Event"=>array("INSERT","UPDATE","DELETE"),"Type"=>array("FOR EACH ROW"),);}function
routine($C,$U){$ta=array("bool","boolean","integer","double precision","real","dec","numeric","fixed","national char","national varchar");$Ph="(?:\\s|/\\*[\s\S]*?\\*/|(?:#|-- )[^\n]*\n?|--\r?\n)";$zc=driver()->enumLength;$Vi="((".implode("|",array_merge(array_keys(driver()->types()),$ta)).")\\b(?:\\s*\\(((?:[^'\")]|$zc)++)\\))?"."\\s*(zerofill\\s*)?(unsigned(?:\\s+zerofill)?)?)(?:\\s*(?:CHARSET|CHARACTER\\s+SET)\\s*['\"]?([^'\"\\s,]+)['\"]?)?";$sg="$Ph*(".($U=="FUNCTION"?"":driver()->inout).")?\\s*(?:`((?:[^`]|``)*)`\\s*|\\b(\\S+)\\s+)$Vi";$i=get_val("SHOW CREATE $U ".idf_escape($C),2);preg_match("~\\(((?:$sg\\s*,?)*)\\)\\s*".($U=="FUNCTION"?"RETURNS\\s+$Vi\\s+":"")."(.*)~is",$i,$B);$o=array();preg_match_all("~$sg\\s*,?~is",$B[1],$Re,PREG_SET_ORDER);foreach($Re
as$ig)$o[]=array("field"=>str_replace("``","`",$ig[2]).$ig[3],"type"=>strtolower($ig[5]),"length"=>preg_replace_callback("~$zc~s",'Adminer\normalize_enum',$ig[6]),"unsigned"=>strtolower(preg_replace('~\s+~',' ',trim("$ig[8] $ig[7]"))),"null"=>true,"full_type"=>$ig[4],"inout"=>strtoupper($ig[1]),"collation"=>strtolower($ig[9]),);return
array("fields"=>$o,"comment"=>get_val("SELECT ROUTINE_COMMENT FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = DATABASE() AND ROUTINE_NAME = ".q($C)),)+($U!="FUNCTION"?array("definition"=>$B[11]):array("returns"=>array("type"=>$B[12],"length"=>$B[13],"unsigned"=>$B[15],"collation"=>$B[16]),"definition"=>$B[17],"language"=>"SQL",));}function
routines(){return
get_rows("SELECT ROUTINE_NAME AS SPECIFIC_NAME, ROUTINE_NAME, ROUTINE_TYPE, DTD_IDENTIFIER FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = DATABASE()");}function
routine_languages(){return
array();}function
routine_id($C,array$K){return
idf_escape($C);}function
last_id($I){return
get_val("SELECT LAST_INSERT_ID()");}function
explain(Db$g,$H){return$g->query("EXPLAIN ".(min_version(5.1)&&!min_version(5.7)?"PARTITIONS ":"").$H);}function
found_rows(array$S,array$Z){return($Z||$S["Engine"]!="InnoDB"?null:$S["Rows"]);}function
create_sql($R,$Ba,$bi){$J=get_val("SHOW CREATE TABLE ".table($R),1);if(!$Ba)$J=preg_replace('~ AUTO_INCREMENT=\d+~','',$J);return$J;}function
truncate_sql($R){return"TRUNCATE ".table($R);}function
use_sql($Nb){return"USE ".idf_escape($Nb);}function
trigger_sql($R){$J="";foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($R,"%_\\")),null,"-- ")as$K)$J
.="\nCREATE TRIGGER ".idf_escape($K["Trigger"])." $K[Timing] $K[Event] ON ".table($K["Table"])." FOR EACH ROW\n$K[Statement];;\n";return$J;}function
show_variables(){return
get_rows("SHOW VARIABLES");}function
show_status(){return
get_rows("SHOW STATUS");}function
process_list(){return
get_rows("SHOW FULL PROCESSLIST");}function
convert_field(array$n){if(preg_match("~binary~",$n["type"]))return"HEX(".idf_escape($n["field"]).")";if($n["type"]=="bit")return"BIN(".idf_escape($n["field"])." + 0)";if(preg_match("~geometry|point|linestring|polygon~",$n["type"]))return(min_version(8)?"ST_":"")."AsWKT(".idf_escape($n["field"]).")";}function
unconvert_field(array$n,$J){if(preg_match("~binary~",$n["type"]))$J="UNHEX($J)";if($n["type"]=="bit")$J="CONVERT(b$J, UNSIGNED)";if(preg_match("~geometry|point|linestring|polygon~",$n["type"])){$Dg=(min_version(8)?"ST_":"");$J=$Dg."GeomFromText($J, $Dg"."SRID($n[field]))";}return$J;}function
support($Uc){return!preg_match("~scheme|sequence|type|view_trigger|materializedview".(min_version(8)?"":"|descidx".(min_version(5.1)?"":"|event|partitioning")).(min_version('8.0.16','10.2.1')?"":"|check")."~",$Uc);}function
kill_process($X){return
queries("KILL ".number($X));}function
connection_id(){return"SELECT CONNECTION_ID()";}function
max_connections(){return
get_val("SELECT @@max_connections");}function
types(){return
array();}function
type_values($u){return"";}function
schemas(){return
array();}function
get_schema(){return"";}function
set_schema($qh,$h=null){return
true;}}define('Adminer\JUSH',Driver::$re);define('Adminer\SERVER',$_GET[DRIVER]);define('Adminer\DB',$_GET["db"]);define('Adminer\ME',preg_replace('~\?.*~','',relative_uri()).'?'.(sid()?SID.'&':'').(SERVER!==null?DRIVER."=".urlencode(SERVER).'&':'').($_GET["ext"]?"ext=".urlencode($_GET["ext"]).'&':'').(isset($_GET["username"])?"username=".urlencode($_GET["username"]).'&':'').(DB!=""?'db='.urlencode(DB).'&'.(isset($_GET["ns"])?"ns=".urlencode($_GET["ns"])."&":""):''));function
page_header($Bi,$m="",$Oa=array(),$Ci=""){page_headers();if(is_ajax()&&$m){page_messages($m);exit;}if(!ob_get_level())ob_start('ob_gzhandler',4096);$Di=$Bi.($Ci!=""?": $Ci":"");$Ei=strip_tags($Di.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".adminer()->name());echo'<!DOCTYPE html>
<html lang="',LANG,'" dir="',lang(81),'">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>',$Ei,'</title>
<link rel="stylesheet" href="',h(preg_replace("~\\?.*~","",ME)."?file=default.css&version=5.2.1"),'">
';$Hb=adminer()->css();$Dd=false;$Bd=false;foreach($Hb
as$p){if(strpos($p,"adminer.css")!==false)$Dd=true;if(strpos($p,"adminer-dark.css")!==false)$Bd=true;}$Kb=($Dd?($Bd?null:false):($Bd?:null));$Ze=" media='(prefers-color-scheme: dark)'";if($Kb!==false)echo"<link rel='stylesheet'".($Kb?"":$Ze)." href='".h(preg_replace("~\\?.*~","",ME)."?file=dark.css&version=5.2.1")."'>\n";echo"<meta name='color-scheme' content='".($Kb===null?"light dark":($Kb?"dark":"light"))."'>\n",script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=5.2.1");if(adminer()->head($Kb))echo"<link rel='icon' href='data:image/gif;base64,R0lGODlhEAAQAJEAAAQCBPz+/PwCBAROZCH5BAEAAAAALAAAAAAQABAAAAI2hI+pGO1rmghihiUdvUBnZ3XBQA7f05mOak1RWXrNq5nQWHMKvuoJ37BhVEEfYxQzHjWQ5qIAADs='>\n","<link rel='apple-touch-icon' href='".h(preg_replace("~\\?.*~","",ME)."?file=logo.png&version=5.2.1")."'>\n";foreach($Hb
as$X)echo"<link rel='stylesheet'".(preg_match('~-dark\.~',$X)&&!$Kb?$Ze:"")." href='".h($X)."'>\n";echo"\n<body class='".lang(81)." nojs'>\n";$p=get_temp_dir()."/adminer.version";if(!$_COOKIE["adminer_version"]&&function_exists('openssl_verify')&&file_exists($p)&&filemtime($p)+86400>time()){$tj=unserialize(file_get_contents($p));$Mg="-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwqWOVuF5uw7/+Z70djoK
RlHIZFZPO0uYRezq90+7Amk+FDNd7KkL5eDve+vHRJBLAszF/7XKXe11xwliIsFs
DFWQlsABVZB3oisKCBEuI71J4kPH8dKGEWR9jDHFw3cWmoH3PmqImX6FISWbG3B8
h7FIx3jEaw5ckVPVTeo5JRm/1DZzJxjyDenXvBQ/6o9DgZKeNDgxwKzH+sw9/YCO
jHnq1cFpOIISzARlrHMa/43YfeNRAm/tsBXjSxembBPo7aQZLAWHmaj5+K19H10B
nCpz9Y++cipkVEiKRGih4ZEvjoFysEOdRLj6WiD/uUNky4xGeA6LaJqh5XpkFkcQ
fQIDAQAB
-----END PUBLIC KEY-----
";if(openssl_verify($tj["version"],base64_decode($tj["signature"]),$Mg)==1)$_COOKIE["adminer_version"]=$tj["version"];}echo
script("mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick".(isset($_COOKIE["adminer_version"])?"":", onload: partial(verifyVersion, '".VERSION."', '".js_escape(ME)."', '".get_token()."')")."});
document.body.classList.replace('nojs', 'js');
const offlineMessage = '".js_escape(lang(82))."';
const thousandsSeparator = '".js_escape(lang(4))."';"),"<div id='help' class='jush-".JUSH." jsonly hidden'></div>\n",script("mixin(qs('#help'), {onmouseover: () => { helpOpen = 1; }, onmouseout: helpMouseout});"),"<div id='content'>\n","<span id='menuopen' class='jsonly'>".icon("move","","menu","")."</span>".script("qs('#menuopen').onclick = event => { qs('#foot').classList.toggle('foot'); event.stopPropagation(); }");if($Oa!==null){$A=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'<p id="breadcrumb"><a href="'.h($A?:".").'">'.get_driver(DRIVER).'</a> » ';$A=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$N=adminer()->serverName(SERVER);$N=($N!=""?$N:lang(33));if($Oa===false)echo"$N\n";else{echo"<a href='".h($A)."' accesskey='1' title='Alt+Shift+1'>$N</a> » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Oa)))echo'<a href="'.h($A."&db=".urlencode(DB).(support("scheme")?"&ns=":"")).'">'.h(DB).'</a> » ';if(is_array($Oa)){if($_GET["ns"]!="")echo'<a href="'.h(substr(ME,0,-1)).'">'.h($_GET["ns"]).'</a> » ';foreach($Oa
as$y=>$X){$Xb=(is_array($X)?$X[1]:h($X));if($Xb!="")echo"<a href='".h(ME."$y=").urlencode(is_array($X)?$X[0]:$X)."'>$Xb</a> » ";}}echo"$Bi\n";}}echo"<h2>$Di</h2>\n","<div id='ajaxstatus' class='jsonly hidden'></div>\n";restart_session();page_messages($m);$j=&get_session("dbs");if(DB!=""&&$j&&!in_array(DB,$j,true))$j=null;stop_session();define('Adminer\PAGE_HEADER',1);}function
page_headers(){header("Content-Type: text/html; charset=utf-8");header("Cache-Control: no-cache");header("X-Frame-Options: deny");header("X-XSS-Protection: 0");header("X-Content-Type-Options: nosniff");header("Referrer-Policy: origin-when-cross-origin");foreach(adminer()->csp(csp())as$Gb){$Fd=array();foreach($Gb
as$y=>$X)$Fd[]="$y $X";header("Content-Security-Policy: ".implode("; ",$Fd));}adminer()->headers();}function
csp(){return
array(array("script-src"=>"'self' 'unsafe-inline' 'nonce-".get_nonce()."' 'strict-dynamic'","connect-src"=>"'self'","frame-src"=>"https://www.adminer.org","object-src"=>"'none'","base-uri"=>"'none'","form-action"=>"'self'",),);}function
get_nonce(){static$vf;if(!$vf)$vf=base64_encode(rand_string());return$vf;}function
page_messages($m){$gj=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$ff=idx($_SESSION["messages"],$gj);if($ff){echo"<div class='message'>".implode("</div>\n<div class='message'>",$ff)."</div>".script("messagesPrint();");unset($_SESSION["messages"][$gj]);}if($m)echo"<div class='error'>$m</div>\n";if(adminer()->error)echo"<div class='error'>".adminer()->error."</div>\n";}function
page_footer($if=""){echo"</div>\n\n<div id='foot' class='foot'>\n<div id='menu'>\n";adminer()->navigation($if);echo"</div>\n";if($if!="auth")echo'<form action="" method="post">
<p class="logout">
<span>',h($_GET["username"])."\n",'</span>
<input type="submit" name="logout" value="',lang(83),'" id="logout">
',input_token(),'</form>
';echo"</div>\n\n",script("setupSubmitHighlight(document);");}function
int32($nf){while($nf>=2147483648)$nf-=4294967296;while($nf<=-2147483649)$nf+=4294967296;return(int)$nf;}function
long2str(array$W,$xj){$oh='';foreach($W
as$X)$oh
.=pack('V',$X);if($xj)return
substr($oh,0,end($W));return$oh;}function
str2long($oh,$xj){$W=array_values(unpack('V*',str_pad($oh,4*ceil(strlen($oh)/4),"\0")));if($xj)$W[]=strlen($oh);return$W;}function
xxtea_mx($Dj,$Cj,$ei,$se){return
int32((($Dj>>5&0x7FFFFFF)^$Cj<<2)+(($Cj>>3&0x1FFFFFFF)^$Dj<<4))^int32(($ei^$Cj)+($se^$Dj));}function
encrypt_string($Zh,$y){if($Zh=="")return"";$y=array_values(unpack("V*",pack("H*",md5($y))));$W=str2long($Zh,true);$nf=count($W)-1;$Dj=$W[$nf];$Cj=$W[0];$Ng=floor(6+52/($nf+1));$ei=0;while($Ng-->0){$ei=int32($ei+0x9E3779B9);$oc=$ei>>2&3;for($gg=0;$gg<$nf;$gg++){$Cj=$W[$gg+1];$mf=xxtea_mx($Dj,$Cj,$ei,$y[$gg&3^$oc]);$Dj=int32($W[$gg]+$mf);$W[$gg]=$Dj;}$Cj=$W[0];$mf=xxtea_mx($Dj,$Cj,$ei,$y[$gg&3^$oc]);$Dj=int32($W[$nf]+$mf);$W[$nf]=$Dj;}return
long2str($W,false);}function
decrypt_string($Zh,$y){if($Zh=="")return"";if(!$y)return
false;$y=array_values(unpack("V*",pack("H*",md5($y))));$W=str2long($Zh,false);$nf=count($W)-1;$Dj=$W[$nf];$Cj=$W[0];$Ng=floor(6+52/($nf+1));$ei=int32($Ng*0x9E3779B9);while($ei){$oc=$ei>>2&3;for($gg=$nf;$gg>0;$gg--){$Dj=$W[$gg-1];$mf=xxtea_mx($Dj,$Cj,$ei,$y[$gg&3^$oc]);$Cj=int32($W[$gg]-$mf);$W[$gg]=$Cj;}$Dj=$W[$nf];$mf=xxtea_mx($Dj,$Cj,$ei,$y[$gg&3^$oc]);$Cj=int32($W[0]-$mf);$W[0]=$Cj;$ei=int32($ei-0x9E3779B9);}return
long2str($W,true);}$ug=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($y)=explode(":",$X);$ug[$y]=$X;}}function
add_invalid_login(){$Ha=get_temp_dir()."/adminer.invalid";foreach(glob("$Ha*")?:array($Ha)as$p){$r=file_open_lock($p);if($r)break;}if(!$r)$r=file_open_lock("$Ha-".rand_string());if(!$r)return;$ke=unserialize(stream_get_contents($r));$zi=time();if($ke){foreach($ke
as$le=>$X){if($X[0]<$zi)unset($ke[$le]);}}$je=&$ke[adminer()->bruteForceKey()];if(!$je)$je=array($zi+30*60,0);$je[1]++;file_write_unlock($r,serialize($ke));}function
check_invalid_login(array&$ug){$ke=array();foreach(glob(get_temp_dir()."/adminer.invalid*")as$p){$r=file_open_lock($p);if($r){$ke=unserialize(stream_get_contents($r));file_unlock($r);break;}}$je=idx($ke,adminer()->bruteForceKey(),array());$uf=($je[1]>29?$je[0]-time():0);if($uf>0)auth_error(lang(84,ceil($uf/60)),$ug);}$Aa=$_POST["auth"];if($Aa){session_regenerate_id();$sj=$Aa["driver"];$N=$Aa["server"];$V=$Aa["username"];$F=(string)$Aa["password"];$k=$Aa["db"];set_password($sj,$N,$V,$F);$_SESSION["db"][$sj][$N][$V][$k]=true;if($Aa["permanent"]){$y=implode("-",array_map('base64_encode',array($sj,$N,$V,$k)));$Hg=adminer()->permanentLogin(true);$ug[$y]="$y:".base64_encode($Hg?encrypt_string($F,$Hg):"");cookie("adminer_permanent",implode(" ",$ug));}if(count($_POST)==1||DRIVER!=$sj||SERVER!=$N||$_GET["username"]!==$V||DB!=$k)redirect(auth_url($sj,$N,$V,$k));}elseif($_POST["logout"]&&(!$_SESSION["token"]||verify_token())){foreach(array("pwds","db","dbs","queries")as$y)set_session($y,null);unset_permanent($ug);redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),lang(85).' '.lang(86));}elseif($ug&&!$_SESSION["pwds"]){session_regenerate_id();$Hg=adminer()->permanentLogin();foreach($ug
as$y=>$X){list(,$db)=explode(":",$X);list($sj,$N,$V,$k)=array_map('base64_decode',explode("-",$y));set_password($sj,$N,$V,decrypt_string(base64_decode($db),$Hg));$_SESSION["db"][$sj][$N][$V][$k]=true;}}function
unset_permanent(array&$ug){foreach($ug
as$y=>$X){list($sj,$N,$V,$k)=array_map('base64_decode',explode("-",$y));if($sj==DRIVER&&$N==SERVER&&$V==$_GET["username"]&&$k==DB)unset($ug[$y]);}cookie("adminer_permanent",implode(" ",$ug));}function
auth_error($m,array&$ug){$Gh=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$Gh]||$_GET[$Gh])&&!$_SESSION["token"])$m=lang(87);else{restart_session();add_invalid_login();$F=get_password();if($F!==null){if($F===false)$m
.=($m?'<br>':'').lang(88,target_blank(),'<code>permanentLogin()</code>');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent($ug);}}if(!$_COOKIE[$Gh]&&$_GET[$Gh]&&ini_bool("session.use_only_cookies"))$m=lang(89);$jg=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?:rand_string()),$jg["lifetime"]);if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);page_header(lang(37),$m,null);echo"<form action='' method='post'>\n","<div>";if(hidden_fields($_POST,array("auth")))echo"<p class='message'>".lang(90)."\n";echo"</div>\n";adminer()->loginForm();echo"</form>\n";page_footer("auth");exit;}if(isset($_GET["username"])&&!class_exists('Adminer\Db')){unset($_SESSION["pwds"][DRIVER]);unset_permanent($ug);page_header(lang(91),lang(92,implode(", ",Driver::$Pc)),false);page_footer("auth");exit;}$g='';if(isset($_GET["username"])&&is_string(get_password())){list($Ld,$yg)=explode(":",SERVER,2);if(preg_match('~^\s*([-+]?\d+)~',$yg,$B)&&($B[1]<1024||$B[1]>65535))auth_error(lang(93),$ug);check_invalid_login($ug);$Fb=adminer()->credentials();$g=Driver::connect($Fb[0],$Fb[1],$Fb[2]);if(is_object($g)){Db::$he=$g;Driver::$he=new
Driver($g);if($g->flavor)save_settings(array("vendor-".DRIVER."-".SERVER=>get_driver(DRIVER)));}}$Le=null;if(!is_object($g)||($Le=adminer()->login($_GET["username"],get_password()))!==true){$m=(is_string($g)?nl_br(h($g)):(is_string($Le)?$Le:lang(94))).(preg_match('~^ | $~',get_password())?'<br>'.lang(95):'');auth_error($m,$ug);}if($_POST["logout"]&&$_SESSION["token"]&&!verify_token()){page_header(lang(83),lang(96));page_footer("db");exit;}if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);stop_session(true);if($Aa&&$_POST["token"])$_POST["token"]=get_token();$m='';if($_POST){if(!verify_token()){$ce="max_input_vars";$Xe=ini_get($ce);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$y){$X=ini_get($y);if($X&&(!$Xe||$X<$Xe)){$ce=$y;$Xe=$X;}}}$m=(!$_POST["token"]&&$Xe?lang(97,"'$ce'"):lang(96).' '.lang(98));}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$m=lang(99,"'post_max_size'");if(isset($_GET["sql"]))$m
.=' '.lang(100);}function
print_select_result($I,$h=null,array$Vf=array(),$_=0){$Je=array();$x=array();$e=array();$Ma=array();$Wi=array();$J=array();for($t=0;(!$_||$t<$_)&&($K=$I->fetch_row());$t++){if(!$t){echo"<div class='scrollable'>\n","<table class='nowrap odds'>\n","<thead><tr>";for($qe=0;$qe<count($K);$qe++){$n=$I->fetch_field();$C=$n->name;$Uf=(isset($n->orgtable)?$n->orgtable:"");$Tf=(isset($n->orgname)?$n->orgname:$C);if($Vf&&JUSH=="sql")$Je[$qe]=($C=="table"?"table=":($C=="possible_keys"?"indexes=":null));elseif($Uf!=""){if(isset($n->table))$J[$n->table]=$Uf;if(!isset($x[$Uf])){$x[$Uf]=array();foreach(indexes($Uf,$h)as$w){if($w["type"]=="PRIMARY"){$x[$Uf]=array_flip($w["columns"]);break;}}$e[$Uf]=$x[$Uf];}if(isset($e[$Uf][$Tf])){unset($e[$Uf][$Tf]);$x[$Uf][$Tf]=$qe;$Je[$qe]=$Uf;}}if($n->charsetnr==63)$Ma[$qe]=true;$Wi[$qe]=$n->type;echo"<th".($Uf!=""||$n->name!=$Tf?" title='".h(($Uf!=""?"$Uf.":"").$Tf)."'":"").">".h($C).($Vf?doc_link(array('sql'=>"explain-output.html#explain_".strtolower($C),'mariadb'=>"explain/#the-columns-in-explain-select",)):"");}echo"</thead>\n";}echo"<tr>";foreach($K
as$y=>$X){$A="";if(isset($Je[$y])&&!$e[$Je[$y]]){if($Vf&&JUSH=="sql"){$R=$K[array_search("table=",$Je)];$A=ME.$Je[$y].urlencode($Vf[$R]!=""?$Vf[$R]:$R);}else{$A=ME."edit=".urlencode($Je[$y]);foreach($x[$Je[$y]]as$hb=>$qe)$A
.="&where".urlencode("[".bracket_escape($hb)."]")."=".urlencode($K[$qe]);}}elseif(is_url($X))$A=$X;if($X===null)$X="<i>NULL</i>";elseif($Ma[$y]&&!is_utf8($X))$X="<i>".lang(46,strlen($X))."</i>";else{$X=h($X);if($Wi[$y]==254)$X="<code>$X</code>";}if($A)$X="<a href='".h($A)."'".(is_url($A)?target_blank():'').">$X</a>";echo"<td".($Wi[$y]<=9||$Wi[$y]==246?" class='number'":"").">$X";}}echo($t?"</table>\n</div>":"<p class='message'>".lang(12))."\n";return$J;}function
referencable_primary($zh){$J=array();foreach(table_status('',true)as$ji=>$R){if($ji!=$zh&&fk_support($R)){foreach(fields($ji)as$n){if($n["primary"]){if($J[$ji]){unset($J[$ji]);break;}$J[$ji]=$n;}}}}return$J;}function
textarea($C,$Y,$L=10,$kb=80){echo"<textarea name='".h($C)."' rows='$L' cols='$kb' class='sqlarea jush-".JUSH."' spellcheck='false' wrap='off'>";if(is_array($Y)){foreach($Y
as$X)echo
h($X[0])."\n\n\n";}else
echo
h($Y);echo"</textarea>";}function
select_input($_a,array$Pf,$Y="",$Jf="",$vg=""){$ri=($Pf?"select":"input");return"<$ri$_a".($Pf?"><option value=''>$vg".optionlist($Pf,$Y,true)."</select>":" size='10' value='".h($Y)."' placeholder='$vg'>").($Jf?script("qsl('$ri').onchange = $Jf;",""):"");}function
json_row($y,$X=null){static$ad=true;if($ad)echo"{";if($y!=""){echo($ad?"":",")."\n\t\"".addcslashes($y,"\r\n\t\"\\/").'": '.($X!==null?'"'.addcslashes($X,"\r\n\"\\/").'"':'null');$ad=false;}else{echo"\n}\n";$ad=true;}}function
edit_type($y,array$n,array$jb,array$kd=array(),array$Rc=array()){$U=$n["type"];echo"<td><select name='".h($y)."[type]' class='type' aria-labelledby='label-type'>";if($U&&!array_key_exists($U,driver()->types())&&!isset($kd[$U])&&!in_array($U,$Rc))$Rc[]=$U;$ai=driver()->structuredTypes();if($kd)$ai[lang(101)]=$kd;echo
optionlist(array_merge($Rc,$ai),$U),"</select><td>","<input name='".h($y)."[length]' value='".h($n["length"])."' size='3'".(!$n["length"]&&preg_match('~var(char|binary)$~',$U)?" class='required'":"")." aria-labelledby='label-length'>","<td class='options'>",($jb?"<input list='collations' name='".h($y)."[collation]'".(preg_match('~(char|text|enum|set)$~',$U)?"":" class='hidden'")." value='".h($n["collation"])."' placeholder='(".lang(102).")'>":''),(driver()->unsigned?"<select name='".h($y)."[unsigned]'".(!$U||preg_match(number_type(),$U)?"":" class='hidden'").'><option>'.optionlist(driver()->unsigned,$n["unsigned"]).'</select>':''),(isset($n['on_update'])?"<select name='".h($y)."[on_update]'".(preg_match('~timestamp|datetime~',$U)?"":" class='hidden'").'>'.optionlist(array(""=>"(".lang(103).")","CURRENT_TIMESTAMP"),(preg_match('~^CURRENT_TIMESTAMP~i',$n["on_update"])?"CURRENT_TIMESTAMP":$n["on_update"])).'</select>':''),($kd?"<select name='".h($y)."[on_delete]'".(preg_match("~`~",$U)?"":" class='hidden'")."><option value=''>(".lang(104).")".optionlist(explode("|",driver()->onActions),$n["on_delete"])."</select> ":" ");}function
get_partitions_info($R){$od="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($R);$I=connection()->query("SELECT PARTITION_METHOD, PARTITION_EXPRESSION, PARTITION_ORDINAL_POSITION $od ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");$J=array();list($J["partition_by"],$J["partition"],$J["partitions"])=$I->fetch_row();$pg=get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $od AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");$J["partition_names"]=array_keys($pg);$J["partition_values"]=array_values($pg);return$J;}function
process_length($z){$Ac=driver()->enumLength;return(preg_match("~^\\s*\\(?\\s*$Ac(?:\\s*,\\s*$Ac)*+\\s*\\)?\\s*\$~",$z)&&preg_match_all("~$Ac~",$z,$Re)?"(".implode(",",$Re[0]).")":preg_replace('~^[0-9].*~','(\0)',preg_replace('~[^-0-9,+()[\]]~','',$z)));}function
process_type(array$n,$ib="COLLATE"){return" $n[type]".process_length($n["length"]).(preg_match(number_type(),$n["type"])&&in_array($n["unsigned"],driver()->unsigned)?" $n[unsigned]":"").(preg_match('~char|text|enum|set~',$n["type"])&&$n["collation"]?" $ib ".(JUSH=="mssql"?$n["collation"]:q($n["collation"])):"");}function
process_field(array$n,array$Ui){if($n["on_update"])$n["on_update"]=str_ireplace("current_timestamp()","CURRENT_TIMESTAMP",$n["on_update"]);return
array(idf_escape(trim($n["field"])),process_type($Ui),($n["null"]?" NULL":" NOT NULL"),default_value($n),(preg_match('~timestamp|datetime~',$n["type"])&&$n["on_update"]?" ON UPDATE $n[on_update]":""),(support("comment")&&$n["comment"]!=""?" COMMENT ".q($n["comment"]):""),($n["auto_increment"]?auto_increment():null),);}function
default_value(array$n){$l=$n["default"];$rd=$n["generated"];return($l===null?"":(in_array($rd,driver()->generated)?(JUSH=="mssql"?" AS ($l)".($rd=="VIRTUAL"?"":" $rd")."":" GENERATED ALWAYS AS ($l) $rd"):" DEFAULT ".(!preg_match('~^GENERATED ~i',$l)&&(preg_match('~char|binary|text|json|enum|set~',$n["type"])||preg_match('~^(?![a-z])~i',$l))?(JUSH=="sql"&&preg_match('~text|json~',$n["type"])?"(".q($l).")":q($l)):str_ireplace("current_timestamp()","CURRENT_TIMESTAMP",(JUSH=="sqlite"?"($l)":$l)))));}function
type_class($U){foreach(array('char'=>'text','date'=>'time|year','binary'=>'blob','enum'=>'set',)as$y=>$X){if(preg_match("~$y|$X~",$U))return" class='$y'";}}function
edit_fields(array$o,array$jb,$U="TABLE",array$kd=array()){$o=array_values($o);$Sb=(($_POST?$_POST["defaults"]:get_setting("defaults"))?"":" class='hidden'");$pb=(($_POST?$_POST["comments"]:get_setting("comments"))?"":" class='hidden'");echo"<thead><tr>\n",($U=="PROCEDURE"?"<td>":""),"<th id='label-name'>".($U=="TABLE"?lang(105):lang(106)),"<td id='label-type'>".lang(48)."<textarea id='enum-edit' rows='4' cols='12' wrap='off' style='display: none;'></textarea>".script("qs('#enum-edit').onblur = editingLengthBlur;"),"<td id='label-length'>".lang(107),"<td>".lang(108);if($U=="TABLE")echo"<td id='label-null'>NULL\n","<td><input type='radio' name='auto_increment_col' value=''><abbr id='label-ai' title='".lang(50)."'>AI</abbr>",doc_link(array('sql'=>"example-auto-increment.html",'mariadb'=>"auto_increment/",'sqlite'=>"autoinc.html",'pgsql'=>"datatype-numeric.html#DATATYPE-SERIAL",'mssql'=>"t-sql/statements/create-table-transact-sql-identity-property",)),"<td id='label-default'$Sb>".lang(51),(support("comment")?"<td id='label-comment'$pb>".lang(49):"");echo"<td>".icon("plus","add[".(support("move_col")?0:count($o))."]","+",lang(109)),"</thead>\n<tbody>\n",script("mixin(qsl('tbody'), {onclick: editingClick, onkeydown: editingKeydown, oninput: editingInput});");foreach($o
as$t=>$n){$t++;$Wf=$n[($_POST?"orig":"field")];$dc=(isset($_POST["add"][$t-1])||(isset($n["field"])&&!idx($_POST["drop_col"],$t)))&&(support("drop_col")||$Wf=="");echo"<tr".($dc?"":" style='display: none;'").">\n",($U=="PROCEDURE"?"<td>".html_select("fields[$t][inout]",explode("|",driver()->inout),$n["inout"]):"")."<th>";if($dc)echo"<input name='fields[$t][field]' value='".h($n["field"])."' data-maxlength='64' autocapitalize='off' aria-labelledby='label-name'>";echo
input_hidden("fields[$t][orig]",$Wf);edit_type("fields[$t]",$n,$jb,$kd);if($U=="TABLE")echo"<td>".checkbox("fields[$t][null]",1,$n["null"],"","","block","label-null"),"<td><label class='block'><input type='radio' name='auto_increment_col' value='$t'".($n["auto_increment"]?" checked":"")." aria-labelledby='label-ai'></label>","<td$Sb>".(driver()->generated?html_select("fields[$t][generated]",array_merge(array("","DEFAULT"),driver()->generated),$n["generated"])." ":checkbox("fields[$t][generated]",1,$n["generated"],"","","","label-default")),"<input name='fields[$t][default]' value='".h($n["default"])."' aria-labelledby='label-default'>",(support("comment")?"<td$pb><input name='fields[$t][comment]' value='".h($n["comment"])."' data-maxlength='".(min_version(5.5)?1024:255)."' aria-labelledby='label-comment'>":"");echo"<td>",(support("move_col")?icon("plus","add[$t]","+",lang(109))." ".icon("up","up[$t]","↑",lang(110))." ".icon("down","down[$t]","↓",lang(111))." ":""),($Wf==""||support("drop_col")?icon("cross","drop_col[$t]","x",lang(112)):"");}}function
process_fields(array&$o){$D=0;if($_POST["up"]){$Ae=0;foreach($o
as$y=>$n){if(key($_POST["up"])==$y){unset($o[$y]);array_splice($o,$Ae,0,array($n));break;}if(isset($n["field"]))$Ae=$D;$D++;}}elseif($_POST["down"]){$md=false;foreach($o
as$y=>$n){if(isset($n["field"])&&$md){unset($o[key($_POST["down"])]);array_splice($o,$D,0,array($md));break;}if(key($_POST["down"])==$y)$md=$n;$D++;}}elseif($_POST["add"]){$o=array_values($o);array_splice($o,key($_POST["add"]),0,array(array()));}elseif(!$_POST["drop_col"])return
false;return
true;}function
normalize_enum(array$B){$X=$B[0];return"'".str_replace("'","''",addcslashes(stripcslashes(str_replace($X[0].$X[0],$X[0],substr($X,1,-1))),'\\'))."'";}function
grant($td,array$Jg,$e,$Gf){if(!$Jg)return
true;if($Jg==array("ALL PRIVILEGES","GRANT OPTION"))return($td=="GRANT"?queries("$td ALL PRIVILEGES$Gf WITH GRANT OPTION"):queries("$td ALL PRIVILEGES$Gf")&&queries("$td GRANT OPTION$Gf"));return
queries("$td ".preg_replace('~(GRANT OPTION)\([^)]*\)~','\1',implode("$e, ",$Jg).$e).$Gf);}function
drop_create($hc,$i,$jc,$vi,$lc,$Ke,$ef,$cf,$df,$Df,$rf){if($_POST["drop"])query_redirect($hc,$Ke,$ef);elseif($Df=="")query_redirect($i,$Ke,$df);elseif($Df!=$rf){$Eb=queries($i);queries_redirect($Ke,$cf,$Eb&&queries($hc));if($Eb)queries($jc);}else
queries_redirect($Ke,$cf,queries($vi)&&queries($lc)&&queries($hc)&&queries($i));}function
create_trigger($Gf,array$K){$Ai=" $K[Timing] $K[Event]".(preg_match('~ OF~',$K["Event"])?" $K[Of]":"");return"CREATE TRIGGER ".idf_escape($K["Trigger"]).(JUSH=="mssql"?$Gf.$Ai:$Ai.$Gf).rtrim(" $K[Type]\n$K[Statement]",";").";";}function
create_routine($kh,array$K){$O=array();$o=(array)$K["fields"];ksort($o);foreach($o
as$n){if($n["field"]!="")$O[]=(preg_match("~^(".driver()->inout.")\$~",$n["inout"])?"$n[inout] ":"").idf_escape($n["field"]).process_type($n,"CHARACTER SET");}$Ub=rtrim($K["definition"],";");return"CREATE $kh ".idf_escape(trim($K["name"]))." (".implode(", ",$O).")".($kh=="FUNCTION"?" RETURNS".process_type($K["returns"],"CHARACTER SET"):"").($K["language"]?" LANGUAGE $K[language]":"").(JUSH=="pgsql"?" AS ".q($Ub):"\n$Ub;");}function
remove_definer($H){return
preg_replace('~^([A-Z =]+) DEFINER=`'.preg_replace('~@(.*)~','`@`(%|\1)',logged_user()).'`~','\1',$H);}function
format_foreign_key(array$q){$k=$q["db"];$wf=$q["ns"];return" FOREIGN KEY (".implode(", ",array_map('Adminer\idf_escape',$q["source"])).") REFERENCES ".($k!=""&&$k!=$_GET["db"]?idf_escape($k).".":"").($wf!=""&&$wf!=$_GET["ns"]?idf_escape($wf).".":"").idf_escape($q["table"])." (".implode(", ",array_map('Adminer\idf_escape',$q["target"])).")".(preg_match("~^(".driver()->onActions.")\$~",$q["on_delete"])?" ON DELETE $q[on_delete]":"").(preg_match("~^(".driver()->onActions.")\$~",$q["on_update"])?" ON UPDATE $q[on_update]":"");}function
tar_file($p,$Fi){$J=pack("a100a8a8a8a12a12",$p,644,0,0,decoct($Fi->size),decoct(time()));$cb=8*32;for($t=0;$t<strlen($J);$t++)$cb+=ord($J[$t]);$J
.=sprintf("%06o",$cb)."\0 ";echo$J,str_repeat("\0",512-strlen($J));$Fi->send();echo
str_repeat("\0",511-($Fi->size+511)%512);}function
ini_bytes($ce){$X=ini_get($ce);switch(strtolower(substr($X,-1))){case'g':$X=(int)$X*1024;case'm':$X=(int)$X*1024;case'k':$X=(int)$X*1024;}return$X;}function
doc_link(array$rg,$wi="<sup>?</sup>"){$Eh=connection()->server_info;$tj=preg_replace('~^(\d\.?\d).*~s','\1',$Eh);$ij=array('sql'=>"https://dev.mysql.com/doc/refman/$tj/en/",'sqlite'=>"https://www.sqlite.org/",'pgsql'=>"https://www.postgresql.org/docs/".(connection()->flavor=='cockroach'?"current":$tj)."/",'mssql'=>"https://learn.microsoft.com/en-us/sql/",'oracle'=>"https://www.oracle.com/pls/topic/lookup?ctx=db".preg_replace('~^.* (\d+)\.(\d+)\.\d+\.\d+\.\d+.*~s','\1\2',$Eh)."&id=",);if(connection()->flavor=='maria'){$ij['sql']="https://mariadb.com/kb/en/";$rg['sql']=(isset($rg['mariadb'])?$rg['mariadb']:str_replace(".html","/",$rg['sql']));}return($rg[JUSH]?"<a href='".h($ij[JUSH].$rg[JUSH].(JUSH=='mssql'?"?view=sql-server-ver$tj":""))."'".target_blank().">$wi</a>":"");}function
db_size($k){if(!connection()->select_db($k))return"?";$J=0;foreach(table_status()as$S)$J+=$S["Data_length"]+$S["Index_length"];return
format_number($J);}function
set_utf8mb4($i){static$O=false;if(!$O&&preg_match('~\butf8mb4~i',$i)){$O=true;echo"SET NAMES ".charset(connection()).";\n\n";}}if(isset($_GET["status"]))$_GET["variables"]=$_GET["status"];if(isset($_GET["import"]))$_GET["sql"]=$_GET["import"];if(!(DB!=""?connection()->select_db(DB):isset($_GET["sql"])||isset($_GET["dump"])||isset($_GET["database"])||isset($_GET["processlist"])||isset($_GET["privileges"])||isset($_GET["user"])||isset($_GET["variables"])||$_GET["script"]=="connect"||$_GET["script"]=="kill")){if(DB!=""||$_GET["refresh"]){restart_session();set_session("dbs",null);}if(DB!=""){header("HTTP/1.1 404 Not Found");page_header(lang(36).": ".h(DB),lang(113),true);}else{if($_POST["db"]&&!$m)queries_redirect(substr(ME,0,-1),lang(114),drop_databases($_POST["db"]));page_header(lang(115),$m,false);echo"<p class='links'>\n";foreach(array('database'=>lang(116),'privileges'=>lang(70),'processlist'=>lang(117),'variables'=>lang(118),'status'=>lang(119),)as$y=>$X){if(support($y))echo"<a href='".h(ME)."$y='>$X</a>\n";}echo"<p>".lang(120,get_driver(DRIVER),"<b>".h(connection()->server_info)."</b>","<b>".connection()->extension."</b>")."\n","<p>".lang(121,"<b>".h(logged_user())."</b>")."\n";$j=adminer()->databases();if($j){$sh=support("scheme");$jb=collations();echo"<form action='' method='post'>\n","<table class='checkable odds'>\n",script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"),"<thead><tr>".(support("database")?"<td>":"")."<th>".lang(36).(get_session("dbs")!==null?" - <a href='".h(ME)."refresh=1'>".lang(122)."</a>":"")."<td>".lang(123)."<td>".lang(124)."<td>".lang(125)." - <a href='".h(ME)."dbsize=1'>".lang(126)."</a>".script("qsl('a').onclick = partial(ajaxSetHtml, '".js_escape(ME)."script=connect');","")."</thead>\n";$j=($_GET["dbsize"]?count_tables($j):array_flip($j));foreach($j
as$k=>$T){$jh=h(ME)."db=".urlencode($k);$u=h("Db-".$k);echo"<tr>".(support("database")?"<td>".checkbox("db[]",$k,in_array($k,(array)$_POST["db"]),"","","",$u):""),"<th><a href='$jh' id='$u'>".h($k)."</a>";$c=h(db_collation($k,$jb));echo"<td>".(support("database")?"<a href='$jh".($sh?"&ns=":"")."&database=' title='".lang(66)."'>$c</a>":$c),"<td align='right'><a href='$jh&schema=' id='tables-".h($k)."' title='".lang(69)."'>".($_GET["dbsize"]?$T:"?")."</a>","<td align='right' id='size-".h($k)."'>".($_GET["dbsize"]?db_size($k):"?"),"\n";}echo"</table>\n",(support("database")?"<div class='footer'><div>\n"."<fieldset><legend>".lang(127)." <span id='selected'></span></legend><div>\n".input_hidden("all").script("qsl('input').onclick = function () { selectCount('selected', formChecked(this, /^db/)); };")."<input type='submit' name='drop' value='".lang(128)."'>".confirm()."\n"."</div></fieldset>\n"."</div></div>\n":""),input_token(),"</form>\n",script("tableCheck();");}if(!empty(adminer()->plugins)){echo"<div class='plugins'>\n","<h3>".lang(129)."</h3>\n<ul>\n";foreach(adminer()->plugins
as$wg){$Yb=(method_exists($wg,'description')?$wg->description():"");if(!$Yb){$Yg=new
\ReflectionObject($wg);if(preg_match('~^/[\s*]+(.+)~',$Yg->getDocComment(),$B))$Yb=$B[1];}$th=(method_exists($wg,'screenshot')?$wg->screenshot():"");echo"<li><b>".get_class($wg)."</b>".h($Yb?": $Yb":"").($th?" (<a href='".h($th)."'".target_blank().">".lang(130)."</a>)":"")."\n";}echo"</ul>\n";adminer()->pluginsLinks();echo"</div>\n";}}page_footer("db");exit;}if(support("scheme")){if(DB!=""&&$_GET["ns"]!==""){if(!isset($_GET["ns"]))redirect(preg_replace('~ns=[^&]*&~','',ME)."ns=".get_schema());if(!set_schema($_GET["ns"])){header("HTTP/1.1 404 Not Found");page_header(lang(75).": ".h($_GET["ns"]),lang(131),true);page_footer("ns");exit;}}}class
TmpFile{private$handler;var$size;function
__construct(){$this->handler=tmpfile();}function
write($zb){$this->size+=strlen($zb);fwrite($this->handler,$zb);}function
send(){fseek($this->handler,0);fpassthru($this->handler);fclose($this->handler);}}if(isset($_GET["select"])&&($_POST["edit"]||$_POST["clone"])&&!$_POST["save"])$_GET["edit"]=$_GET["select"];if(isset($_GET["callf"]))$_GET["call"]=$_GET["callf"];if(isset($_GET["function"]))$_GET["procedure"]=$_GET["function"];if(isset($_GET["download"])){$a=$_GET["download"];$o=fields($a);header("Content-Type: application/octet-stream");header("Content-Disposition: attachment; filename=".friendly_url("$a-".implode("_",$_GET["where"])).".".friendly_url($_GET["field"]));$M=array(idf_escape($_GET["field"]));$I=driver()->select($a,$M,array(where($_GET,$o)),$M);$K=($I?$I->fetch_row():array());echo
driver()->value($K[0],$o[$_GET["field"]]);exit;}elseif(isset($_GET["table"])){$a=$_GET["table"];$o=fields($a);if(!$o)$m=error()?:lang(9);$S=table_status1($a);$C=adminer()->tableName($S);page_header(($o&&is_view($S)?$S['Engine']=='materialized view'?lang(132):lang(133):lang(134)).": ".($C!=""?$C:h($a)),$m);$ih=array();foreach($o
as$y=>$n)$ih+=$n["privileges"];adminer()->selectLinks($S,(isset($ih["insert"])||!support("table")?"":null));$ob=$S["Comment"];if($ob!="")echo"<p class='nowrap'>".lang(49).": ".h($ob)."\n";if($o)adminer()->tableStructurePrint($o,$S);if(support("indexes")&&driver()->supportsIndex($S)){echo"<h3 id='indexes'>".lang(135)."</h3>\n";$x=indexes($a);if($x)adminer()->tableIndexesPrint($x);echo'<p class="links"><a href="'.h(ME).'indexes='.urlencode($a).'">'.lang(136)."</a>\n";}if(!is_view($S)){if(fk_support($S)){echo"<h3 id='foreign-keys'>".lang(101)."</h3>\n";$kd=foreign_keys($a);if($kd){echo"<table>\n","<thead><tr><th>".lang(137)."<td>".lang(138)."<td>".lang(104)."<td>".lang(103)."<td></thead>\n";foreach($kd
as$C=>$q){echo"<tr title='".h($C)."'>","<th><i>".implode("</i>, <i>",array_map('Adminer\h',$q["source"]))."</i>";$A=($q["db"]!=""?preg_replace('~db=[^&]*~',"db=".urlencode($q["db"]),ME):($q["ns"]!=""?preg_replace('~ns=[^&]*~',"ns=".urlencode($q["ns"]),ME):ME));echo"<td><a href='".h($A."table=".urlencode($q["table"]))."'>".($q["db"]!=""&&$q["db"]!=DB?"<b>".h($q["db"])."</b>.":"").($q["ns"]!=""&&$q["ns"]!=$_GET["ns"]?"<b>".h($q["ns"])."</b>.":"").h($q["table"])."</a>","(<i>".implode("</i>, <i>",array_map('Adminer\h',$q["target"]))."</i>)","<td>".h($q["on_delete"]),"<td>".h($q["on_update"]),'<td><a href="'.h(ME.'foreign='.urlencode($a).'&name='.urlencode($C)).'">'.lang(139).'</a>',"\n";}echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'foreign='.urlencode($a).'">'.lang(140)."</a>\n";}if(support("check")){echo"<h3 id='checks'>".lang(141)."</h3>\n";$Ya=driver()->checkConstraints($a);if($Ya){echo"<table>\n";foreach($Ya
as$y=>$X)echo"<tr title='".h($y)."'>","<td><code class='jush-".JUSH."'>".h($X),"<td><a href='".h(ME.'check='.urlencode($a).'&name='.urlencode($y))."'>".lang(139)."</a>","\n";echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'check='.urlencode($a).'">'.lang(142)."</a>\n";}}if(support(is_view($S)?"view_trigger":"trigger")){echo"<h3 id='triggers'>".lang(143)."</h3>\n";$Ti=triggers($a);if($Ti){echo"<table>\n";foreach($Ti
as$y=>$X)echo"<tr valign='top'><td>".h($X[0])."<td>".h($X[1])."<th>".h($y)."<td><a href='".h(ME.'trigger='.urlencode($a).'&name='.urlencode($y))."'>".lang(139)."</a>\n";echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'trigger='.urlencode($a).'">'.lang(144)."</a>\n";}}elseif(isset($_GET["schema"])){page_header(lang(69),"",array(),h(DB.($_GET["ns"]?".$_GET[ns]":"")));$li=array();$mi=array();$da=($_GET["schema"]?:$_COOKIE["adminer_schema-".str_replace(".","_",DB)]);preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',$da,$Re,PREG_SET_ORDER);foreach($Re
as$t=>$B){$li[$B[1]]=array($B[2],$B[3]);$mi[]="\n\t'".js_escape($B[1])."': [ $B[2], $B[3] ]";}$Ii=0;$Ia=-1;$qh=array();$Xg=array();$Ee=array();$ua=driver()->allFields();foreach(table_status('',true)as$R=>$S){if(is_view($S))continue;$zg=0;$qh[$R]["fields"]=array();foreach($ua[$R]as$n){$zg+=1.25;$n["pos"]=$zg;$qh[$R]["fields"][$n["field"]]=$n;}$qh[$R]["pos"]=($li[$R]?:array($Ii,0));foreach(adminer()->foreignKeys($R)as$X){if(!$X["db"]){$Ce=$Ia;if(idx($li[$R],1)||idx($li[$X["table"]],1))$Ce=min(idx($li[$R],1,0),idx($li[$X["table"]],1,0))-1;else$Ia-=.1;while($Ee[(string)$Ce])$Ce-=.0001;$qh[$R]["references"][$X["table"]][(string)$Ce]=array($X["source"],$X["target"]);$Xg[$X["table"]][$R][(string)$Ce]=$X["target"];$Ee[(string)$Ce]=true;}}$Ii=max($Ii,$qh[$R]["pos"][0]+2.5+$zg);}echo'<div id="schema" style="height: ',$Ii,'em;">
<script',nonce(),'>
qs(\'#schema\').onselectstart = () => false;
const tablePos = {',implode(",",$mi)."\n",'};
const em = qs(\'#schema\').offsetHeight / ',$Ii,';
document.onmousemove = schemaMousemove;
document.onmouseup = partialArg(schemaMouseup, \'',js_escape(DB),'\');
</script>
';foreach($qh
as$C=>$R){echo"<div class='table' style='top: ".$R["pos"][0]."em; left: ".$R["pos"][1]."em;'>",'<a href="'.h(ME).'table='.urlencode($C).'"><b>'.h($C)."</b></a>",script("qsl('div').onmousedown = schemaMousedown;");foreach($R["fields"]as$n){$X='<span'.type_class($n["type"]).' title="'.h($n["type"].($n["length"]?"($n[length])":"").($n["null"]?" NULL":'')).'">'.h($n["field"]).'</span>';echo"<br>".($n["primary"]?"<i>$X</i>":$X);}foreach((array)$R["references"]as$ti=>$Zg){foreach($Zg
as$Ce=>$Ug){$De=$Ce-idx($li[$C],1);$t=0;foreach($Ug[0]as$Oh)echo"\n<div class='references' title='".h($ti)."' id='refs$Ce-".($t++)."' style='left: $De"."em; top: ".$R["fields"][$Oh]["pos"]."em; padding-top: .5em;'>"."<div style='border-top: 1px solid gray; width: ".(-$De)."em;'></div></div>";}}foreach((array)$Xg[$C]as$ti=>$Zg){foreach($Zg
as$Ce=>$e){$De=$Ce-idx($li[$C],1);$t=0;foreach($e
as$si)echo"\n<div class='references arrow' title='".h($ti)."' id='refd$Ce-".($t++)."' style='left: $De"."em; top: ".$R["fields"][$si]["pos"]."em;'>"."<div style='height: .5em; border-bottom: 1px solid gray; width: ".(-$De)."em;'></div>"."</div>";}}echo"\n</div>\n";}foreach($qh
as$C=>$R){foreach((array)$R["references"]as$ti=>$Zg){foreach($Zg
as$Ce=>$Ug){$hf=$Ii;$Ve=-10;foreach($Ug[0]as$y=>$Oh){$_g=$R["pos"][0]+$R["fields"][$Oh]["pos"];$Ag=$qh[$ti]["pos"][0]+$qh[$ti]["fields"][$Ug[1][$y]]["pos"];$hf=min($hf,$_g,$Ag);$Ve=max($Ve,$_g,$Ag);}echo"<div class='references' id='refl$Ce' style='left: $Ce"."em; top: $hf"."em; padding: .5em 0;'><div style='border-right: 1px solid gray; margin-top: 1px; height: ".($Ve-$hf)."em;'></div></div>\n";}}}echo'</div>
<p class="links"><a href="',h(ME."schema=".urlencode($da)),'" id="schema-link">',lang(145),'</a>
';}elseif(isset($_GET["dump"])){$a=$_GET["dump"];if($_POST&&!$m){save_settings(array_intersect_key($_POST,array_flip(array("output","format","db_style","types","routines","events","table_style","auto_increment","triggers","data_style"))),"adminer_export");$T=array_flip((array)$_POST["tables"])+array_flip((array)$_POST["data"]);$Nc=dump_headers((count($T)==1?key($T):DB),(DB==""||count($T)>1));$ne=preg_match('~sql~',$_POST["format"]);if($ne){echo"-- Adminer ".VERSION." ".get_driver(DRIVER)." ".str_replace("\n"," ",connection()->server_info)." dump\n\n";if(JUSH=="sql"){echo"SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
".($_POST["data_style"]?"SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
":"")."
";connection()->query("SET time_zone = '+00:00'");connection()->query("SET sql_mode = ''");}}$bi=$_POST["db_style"];$j=array(DB);if(DB==""){$j=$_POST["databases"];if(is_string($j))$j=explode("\n",rtrim(str_replace("\r","",$j),"\n"));}foreach((array)$j
as$k){adminer()->dumpDatabase($k);if(connection()->select_db($k)){if($ne&&preg_match('~CREATE~',$bi)&&($i=get_val("SHOW CREATE DATABASE ".idf_escape($k),1))){set_utf8mb4($i);if($bi=="DROP+CREATE")echo"DROP DATABASE IF EXISTS ".idf_escape($k).";\n";echo"$i;\n";}if($ne){if($bi)echo
use_sql($k).";\n\n";$dg="";if($_POST["types"]){foreach(types()as$u=>$U){$Bc=type_values($u);if($Bc)$dg
.=($bi!='DROP+CREATE'?"DROP TYPE IF EXISTS ".idf_escape($U).";;\n":"")."CREATE TYPE ".idf_escape($U)." AS ENUM ($Bc);\n\n";else$dg
.="-- Could not export type $U\n\n";}}if($_POST["routines"]){foreach(routines()as$K){$C=$K["ROUTINE_NAME"];$kh=$K["ROUTINE_TYPE"];$i=create_routine($kh,array("name"=>$C)+routine($K["SPECIFIC_NAME"],$kh));set_utf8mb4($i);$dg
.=($bi!='DROP+CREATE'?"DROP $kh IF EXISTS ".idf_escape($C).";;\n":"")."$i;\n\n";}}if($_POST["events"]){foreach(get_rows("SHOW EVENTS",null,"-- ")as$K){$i=remove_definer(get_val("SHOW CREATE EVENT ".idf_escape($K["Name"]),3));set_utf8mb4($i);$dg
.=($bi!='DROP+CREATE'?"DROP EVENT IF EXISTS ".idf_escape($K["Name"]).";;\n":"")."$i;;\n\n";}}echo($dg&&JUSH=='sql'?"DELIMITER ;;\n\n$dg"."DELIMITER ;\n\n":$dg);}if($_POST["table_style"]||$_POST["data_style"]){$vj=array();foreach(table_status('',true)as$C=>$S){$R=(DB==""||in_array($C,(array)$_POST["tables"]));$Lb=(DB==""||in_array($C,(array)$_POST["data"]));if($R||$Lb){$Fi=null;if($Nc=="tar"){$Fi=new
TmpFile;ob_start(array($Fi,'write'),1e5);}adminer()->dumpTable($C,($R?$_POST["table_style"]:""),(is_view($S)?2:0));if(is_view($S))$vj[]=$C;elseif($Lb){$o=fields($C);adminer()->dumpData($C,$_POST["data_style"],"SELECT *".convert_fields($o,$o)." FROM ".table($C));}if($ne&&$_POST["triggers"]&&$R&&($Ti=trigger_sql($C)))echo"\nDELIMITER ;;\n$Ti\nDELIMITER ;\n";if($Nc=="tar"){ob_end_flush();tar_file((DB!=""?"":"$k/")."$C.csv",$Fi);}elseif($ne)echo"\n";}}if(function_exists('Adminer\foreign_keys_sql')){foreach(table_status('',true)as$C=>$S){$R=(DB==""||in_array($C,(array)$_POST["tables"]));if($R&&!is_view($S))echo
foreign_keys_sql($C);}}foreach($vj
as$uj)adminer()->dumpTable($uj,$_POST["table_style"],1);if($Nc=="tar")echo
pack("x512");}}}adminer()->dumpFooter();exit;}page_header(lang(72),$m,($_GET["export"]!=""?array("table"=>$_GET["export"]):array()),h(DB));echo'
<form action="" method="post">
<table class="layout">
';$Pb=array('','USE','DROP+CREATE','CREATE');$ni=array('','DROP+CREATE','CREATE');$Mb=array('','TRUNCATE+INSERT','INSERT');if(JUSH=="sql")$Mb[]='INSERT+UPDATE';$K=get_settings("adminer_export");if(!$K)$K=array("output"=>"text","format"=>"sql","db_style"=>(DB!=""?"":"CREATE"),"table_style"=>"DROP+CREATE","data_style"=>"INSERT");if(!isset($K["events"])){$K["routines"]=$K["events"]=($_GET["dump"]=="");$K["triggers"]=$K["table_style"];}echo"<tr><th>".lang(146)."<td>".html_radios("output",adminer()->dumpOutput(),$K["output"])."\n","<tr><th>".lang(147)."<td>".html_radios("format",adminer()->dumpFormat(),$K["format"])."\n",(JUSH=="sqlite"?"":"<tr><th>".lang(36)."<td>".html_select('db_style',$Pb,$K["db_style"]).(support("type")?checkbox("types",1,$K["types"],lang(31)):"").(support("routine")?checkbox("routines",1,$K["routines"],lang(148)):"").(support("event")?checkbox("events",1,$K["events"],lang(149)):"")),"<tr><th>".lang(124)."<td>".html_select('table_style',$ni,$K["table_style"]).checkbox("auto_increment",1,$K["auto_increment"],lang(50)).(support("trigger")?checkbox("triggers",1,$K["triggers"],lang(143)):""),"<tr><th>".lang(150)."<td>".html_select('data_style',$Mb,$K["data_style"]),'</table>
<p><input type="submit" value="',lang(72),'">
',input_token(),'
<table>
',script("qsl('table').onclick = dumpClick;");$Eg=array();if(DB!=""){$ab=($a!=""?"":" checked");echo"<thead><tr>","<th style='text-align: left;'><label class='block'><input type='checkbox' id='check-tables'$ab>".lang(124)."</label>".script("qs('#check-tables').onclick = partial(formCheck, /^tables\\[/);",""),"<th style='text-align: right;'><label class='block'>".lang(150)."<input type='checkbox' id='check-data'$ab></label>".script("qs('#check-data').onclick = partial(formCheck, /^data\\[/);",""),"</thead>\n";$vj="";$pi=tables_list();foreach($pi
as$C=>$U){$Dg=preg_replace('~_.*~','',$C);$ab=($a==""||$a==(substr($a,-1)=="%"?"$Dg%":$C));$Gg="<tr><td>".checkbox("tables[]",$C,$ab,$C,"","block");if($U!==null&&!preg_match('~table~i',$U))$vj
.="$Gg\n";else
echo"$Gg<td align='right'><label class='block'><span id='Rows-".h($C)."'></span>".checkbox("data[]",$C,$ab)."</label>\n";$Eg[$Dg]++;}echo$vj;if($pi)echo
script("ajaxSetHtml('".js_escape(ME)."script=db');");}else{echo"<thead><tr><th style='text-align: left;'>","<label class='block'><input type='checkbox' id='check-databases'".($a==""?" checked":"").">".lang(36)."</label>",script("qs('#check-databases').onclick = partial(formCheck, /^databases\\[/);",""),"</thead>\n";$j=adminer()->databases();if($j){foreach($j
as$k){if(!information_schema($k)){$Dg=preg_replace('~_.*~','',$k);echo"<tr><td>".checkbox("databases[]",$k,$a==""||$a=="$Dg%",$k,"","block")."\n";$Eg[$Dg]++;}}}else
echo"<tr><td><textarea name='databases' rows='10' cols='20'></textarea>";}echo'</table>
</form>
';$ad=true;foreach($Eg
as$y=>$X){if($y!=""&&$X>1){echo($ad?"<p>":" ")."<a href='".h(ME)."dump=".urlencode("$y%")."'>".h($y)."</a>";$ad=false;}}}elseif(isset($_GET["privileges"])){page_header(lang(70));echo'<p class="links"><a href="'.h(ME).'user=">'.lang(151)."</a>";$I=connection()->query("SELECT User, Host FROM mysql.".(DB==""?"user":"db WHERE ".q(DB)." LIKE Db")." ORDER BY Host, User");$td=$I;if(!$I)$I=connection()->query("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1) AS User, SUBSTRING_INDEX(CURRENT_USER, '@', -1) AS Host");echo"<form action=''><p>\n";hidden_fields_get();echo
input_hidden("db",DB),($td?"":input_hidden("grant")),"<table class='odds'>\n","<thead><tr><th>".lang(34)."<th>".lang(33)."<th></thead>\n";while($K=$I->fetch_assoc())echo'<tr><td>'.h($K["User"])."<td>".h($K["Host"]).'<td><a href="'.h(ME.'user='.urlencode($K["User"]).'&host='.urlencode($K["Host"])).'">'.lang(10)."</a>\n";if(!$td||DB!="")echo"<tr><td><input name='user' autocapitalize='off'><td><input name='host' value='localhost' autocapitalize='off'><td><input type='submit' value='".lang(10)."'>\n";echo"</table>\n","</form>\n";}elseif(isset($_GET["sql"])){if(!$m&&$_POST["export"]){save_settings(array("output"=>$_POST["output"],"format"=>$_POST["format"]),"adminer_import");dump_headers("sql");adminer()->dumpTable("","");adminer()->dumpData("","table",$_POST["query"]);adminer()->dumpFooter();exit;}restart_session();$Jd=&get_session("queries");$Id=&$Jd[DB];if(!$m&&$_POST["clear"]){$Id=array();redirect(remove_from_uri("history"));}stop_session();page_header((isset($_GET["import"])?lang(71):lang(63)),$m);$Ie='--'.(JUSH=='sql'?' ':'');if(!$m&&$_POST){$r=false;if(!isset($_GET["import"]))$H=$_POST["query"];elseif($_POST["webfile"]){$Sh=adminer()->importServerPath();$r=@fopen((file_exists($Sh)?$Sh:"compress.zlib://$Sh.gz"),"rb");$H=($r?fread($r,1e6):false);}else$H=get_file("sql_file",true,";");if(is_string($H)){if(function_exists('memory_get_usage')&&($af=ini_bytes("memory_limit"))!="-1")@ini_set("memory_limit",max($af,strval(2*strlen($H)+memory_get_usage()+8e6)));if($H!=""&&strlen($H)<1e6){$Ng=$H.(preg_match("~;[ \t\r\n]*\$~",$H)?"":";");if(!$Id||first(end($Id))!=$Ng){restart_session();$Id[]=array($Ng,time());set_session("queries",$Jd);stop_session();}}$Ph="(?:\\s|/\\*[\s\S]*?\\*/|(?:#|$Ie)[^\n]*\n?|--\r?\n)";$Wb=";";$D=0;$wc=true;$h=connect();if($h&&DB!=""){$h->select_db(DB);if($_GET["ns"]!="")set_schema($_GET["ns"],$h);}$nb=0;$Dc=array();$kg='[\'"'.(JUSH=="sql"?'`#':(JUSH=="sqlite"?'`[':(JUSH=="mssql"?'[':''))).']|/\*|'.$Ie.'|$'.(JUSH=="pgsql"?'|\$[^$]*\$':'');$Ji=microtime(true);$oa=get_settings("adminer_import");$nc=adminer()->dumpFormat();unset($nc["sql"]);while($H!=""){if(!$D&&preg_match("~^$Ph*+DELIMITER\\s+(\\S+)~i",$H,$B)){$Wb=preg_quote($B[1]);$H=substr($H,strlen($B[0]));}elseif(!$D&&JUSH=='pgsql'&&preg_match("~^($Ph*+COPY\\s+)[^;]+\\s+FROM\\s+stdin;~i",$H,$B)){$Wb="\n\\\\\\.\r?\n";$D=strlen($B[0]);}else{preg_match("($Wb\\s*|$kg)",$H,$B,PREG_OFFSET_CAPTURE,$D);list($md,$zg)=$B[0];if(!$md&&$r&&!feof($r))$H
.=fread($r,1e5);else{if(!$md&&rtrim($H)=="")break;$D=$zg+strlen($md);if($md&&!preg_match("(^$Wb)",$md)){$Sa=driver()->hasCStyleEscapes()||(JUSH=="pgsql"&&($zg>0&&strtolower($H[$zg-1])=="e"));$sg=($md=='/*'?'\*/':($md=='['?']':(preg_match("~^$Ie|^#~",$md)?"\n":preg_quote($md).($Sa?'|\\\\.':''))));while(preg_match("($sg|\$)s",$H,$B,PREG_OFFSET_CAPTURE,$D)){$oh=$B[0][0];if(!$oh&&$r&&!feof($r))$H
.=fread($r,1e5);else{$D=$B[0][1]+strlen($oh);if(!$oh||$oh[0]!="\\")break;}}}else{$wc=false;$Ng=substr($H,0,$zg+($Wb[0]=="\n"?3:0));$nb++;$Gg="<pre id='sql-$nb'><code class='jush-".JUSH."'>".adminer()->sqlCommandQuery($Ng)."</code></pre>\n";if(JUSH=="sqlite"&&preg_match("~^$Ph*+ATTACH\\b~i",$Ng,$B)){echo$Gg,"<p class='error'>".lang(152)."\n";$Dc[]=" <a href='#sql-$nb'>$nb</a>";if($_POST["error_stops"])break;}else{if(!$_POST["only_errors"]){echo$Gg;ob_flush();flush();}$Xh=microtime(true);if(connection()->multi_query($Ng)&&$h&&preg_match("~^$Ph*+USE\\b~i",$Ng))$h->query($Ng);do{$I=connection()->store_result();if(connection()->error){echo($_POST["only_errors"]?$Gg:""),"<p class='error'>".lang(153).(connection()->errno?" (".connection()->errno.")":"").": ".error()."\n";$Dc[]=" <a href='#sql-$nb'>$nb</a>";if($_POST["error_stops"])break
2;}else{$zi=" <span class='time'>(".format_time($Xh).")</span>".(strlen($Ng)<1000?" <a href='".h(ME)."sql=".urlencode(trim($Ng))."'>".lang(10)."</a>":"");$qa=connection()->affected_rows;$yj=($_POST["only_errors"]?"":driver()->warnings());$zj="warnings-$nb";if($yj)$zi
.=", <a href='#$zj'>".lang(45)."</a>".script("qsl('a').onclick = partial(toggle, '$zj');","");$Lc=null;$Vf=null;$Mc="explain-$nb";if(is_object($I)){$_=$_POST["limit"];$Vf=print_select_result($I,$h,array(),$_);if(!$_POST["only_errors"]){echo"<form action='' method='post'>\n";$xf=$I->num_rows;echo"<p class='sql-footer'>".($xf?($_&&$xf>$_?lang(154,$_):"").lang(155,$xf):""),$zi;if($h&&preg_match("~^($Ph|\\()*+SELECT\\b~i",$Ng)&&($Lc=explain($h,$Ng)))echo", <a href='#$Mc'>Explain</a>".script("qsl('a').onclick = partial(toggle, '$Mc');","");$u="export-$nb";echo", <a href='#$u'>".lang(72)."</a>".script("qsl('a').onclick = partial(toggle, '$u');","")."<span id='$u' class='hidden'>: ".html_select("output",adminer()->dumpOutput(),$oa["output"])." ".html_select("format",$nc,$oa["format"]).input_hidden("query",$Ng)."<input type='submit' name='export' value='".lang(72)."'>".input_token()."</span>\n"."</form>\n";}}else{if(preg_match("~^$Ph*+(CREATE|DROP|ALTER)$Ph++(DATABASE|SCHEMA)\\b~i",$Ng)){restart_session();set_session("dbs",null);stop_session();}if(!$_POST["only_errors"])echo"<p class='message' title='".h(connection()->info)."'>".lang(156,$qa)."$zi\n";}echo($yj?"<div id='$zj' class='hidden'>\n$yj</div>\n":"");if($Lc){echo"<div id='$Mc' class='hidden explain'>\n";print_select_result($Lc,$h,$Vf);echo"</div>\n";}}$Xh=microtime(true);}while(connection()->next_result());}$H=substr($H,$D);$D=0;}}}}if($wc)echo"<p class='message'>".lang(157)."\n";elseif($_POST["only_errors"])echo"<p class='message'>".lang(158,$nb-count($Dc))," <span class='time'>(".format_time($Ji).")</span>\n";elseif($Dc&&$nb>1)echo"<p class='error'>".lang(153).": ".implode("",$Dc)."\n";}else
echo"<p class='error'>".upload_error($H)."\n";}echo'
<form action="" method="post" enctype="multipart/form-data" id="form">
';$Jc="<input type='submit' value='".lang(159)."' title='Ctrl+Enter'>";if(!isset($_GET["import"])){$Ng=$_GET["sql"];if($_POST)$Ng=$_POST["query"];elseif($_GET["history"]=="all")$Ng=$Id;elseif($_GET["history"]!="")$Ng=idx($Id[$_GET["history"]],0);echo"<p>";textarea("query",$Ng,20);echo
script(($_POST?"":"qs('textarea').focus();\n")."qs('#form').onsubmit = partial(sqlSubmit, qs('#form'), '".js_escape(remove_from_uri("sql|limit|error_stops|only_errors|history"))."');"),"<p>";adminer()->sqlPrintAfter();echo"$Jc\n",lang(160).": <input type='number' name='limit' class='size' value='".h($_POST?$_POST["limit"]:$_GET["limit"])."'>\n";}else{echo"<fieldset><legend>".lang(161)."</legend><div>";$zd=(extension_loaded("zlib")?"[.gz]":"");echo(ini_bool("file_uploads")?"SQL$zd (< ".ini_get("upload_max_filesize")."B): <input type='file' name='sql_file[]' multiple>\n$Jc":lang(162)),"</div></fieldset>\n";$Td=adminer()->importServerPath();if($Td)echo"<fieldset><legend>".lang(163)."</legend><div>",lang(164,"<code>".h($Td)."$zd</code>"),' <input type="submit" name="webfile" value="'.lang(165).'">',"</div></fieldset>\n";echo"<p>";}echo
checkbox("error_stops",1,($_POST?$_POST["error_stops"]:isset($_GET["import"])||$_GET["error_stops"]),lang(166))."\n",checkbox("only_errors",1,($_POST?$_POST["only_errors"]:isset($_GET["import"])||$_GET["only_errors"]),lang(167))."\n",input_token();if(!isset($_GET["import"])&&$Id){print_fieldset("history",lang(168),$_GET["history"]!="");for($X=end($Id);$X;$X=prev($Id)){$y=key($Id);list($Ng,$zi,$rc)=$X;echo'<a href="'.h(ME."sql=&history=$y").'">'.lang(10)."</a>"." <span class='time' title='".@date('Y-m-d',$zi)."'>".@date("H:i:s",$zi)."</span>"." <code class='jush-".JUSH."'>".shorten_utf8(ltrim(str_replace("\n"," ",str_replace("\r","",preg_replace("~^(#|$Ie).*~m",'',$Ng)))),80,"</code>").($rc?" <span class='time'>($rc)</span>":"")."<br>\n";}echo"<input type='submit' name='clear' value='".lang(169)."'>\n","<a href='".h(ME."sql=&history=all")."'>".lang(170)."</a>\n","</div></fieldset>\n";}echo'</form>
';}elseif(isset($_GET["edit"])){$a=$_GET["edit"];$o=fields($a);$Z=(isset($_GET["select"])?($_POST["check"]&&count($_POST["check"])==1?where_check($_POST["check"][0],$o):""):where($_GET,$o));$fj=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($o
as$C=>$n){if(!isset($n["privileges"][$fj?"update":"insert"])||adminer()->fieldName($n)==""||$n["generated"])unset($o[$C]);}if($_POST&&!$m&&!isset($_GET["select"])){$Ke=$_POST["referer"];if($_POST["insert"])$Ke=($fj?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$Ke))$Ke=ME."select=".urlencode($a);$x=indexes($a);$aj=unique_array($_GET["where"],$x);$Qg="\nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($Ke,lang(171),driver()->delete($a,$Qg,$aj?0:1));else{$O=array();foreach($o
as$C=>$n){$X=process_input($n);if($X!==false&&$X!==null)$O[idf_escape($C)]=$X;}if($fj){if(!$O)redirect($Ke);queries_redirect($Ke,lang(172),driver()->update($a,$O,$Qg,$aj?0:1));if(is_ajax()){page_headers();page_messages($m);exit;}}else{$I=driver()->insert($a,$O);$Be=($I?last_id($I):0);queries_redirect($Ke,lang(173,($Be?" $Be":"")),$I);}}}$K=null;if($_POST["save"])$K=(array)$_POST["fields"];elseif($Z){$M=array();foreach($o
as$C=>$n){if(isset($n["privileges"]["select"])){$ya=($_POST["clone"]&&$n["auto_increment"]?"''":convert_field($n));$M[]=($ya?"$ya AS ":"").idf_escape($C);}}$K=array();if(!support("table"))$M=array("*");if($M){$I=driver()->select($a,$M,array($Z),$M,array(),(isset($_GET["select"])?2:1));if(!$I)$m=error();else{$K=$I->fetch_assoc();if(!$K)$K=false;}if(isset($_GET["select"])&&(!$K||$I->fetch_assoc()))$K=null;}}if(!support("table")&&!$o){if(!$Z){$I=driver()->select($a,array("*"),array(),array("*"));$K=($I?$I->fetch_assoc():false);if(!$K)$K=array(driver()->primary=>"");}if($K){foreach($K
as$y=>$X){if(!$Z)$K[$y]=null;$o[$y]=array("field"=>$y,"null"=>($y!=driver()->primary),"auto_increment"=>($y==driver()->primary));}}}edit_form($a,$o,$K,$fj,$m);}elseif(isset($_GET["create"])){$a=$_GET["create"];$mg=array();foreach(array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST')as$y)$mg[$y]=$y;$Wg=referencable_primary($a);$kd=array();foreach($Wg
as$ji=>$n)$kd[str_replace("`","``",$ji)."`".str_replace("`","``",$n["field"])]=$ji;$Yf=array();$S=array();if($a!=""){$Yf=fields($a);$S=table_status1($a);if(count($S)<2)$m=lang(9);}$K=$_POST;$K["fields"]=(array)$K["fields"];if($K["auto_increment_col"])$K["fields"][$K["auto_increment_col"]]["auto_increment"]=true;if($_POST)save_settings(array("comments"=>$_POST["comments"],"defaults"=>$_POST["defaults"]));if($_POST&&!process_fields($K["fields"])&&!$m){if($_POST["drop"])queries_redirect(substr(ME,0,-1),lang(174),drop_tables(array($a)));else{$o=array();$ua=array();$jj=false;$id=array();$Xf=reset($Yf);$sa=" FIRST";foreach($K["fields"]as$y=>$n){$q=$kd[$n["type"]];$Ui=($q!==null?$Wg[$q]:$n);if($n["field"]!=""){if(!$n["generated"])$n["default"]=null;$Lg=process_field($n,$Ui);$ua[]=array($n["orig"],$Lg,$sa);if(!$Xf||$Lg!==process_field($Xf,$Xf)){$o[]=array($n["orig"],$Lg,$sa);if($n["orig"]!=""||$sa)$jj=true;}if($q!==null)$id[idf_escape($n["field"])]=($a!=""&&JUSH!="sqlite"?"ADD":" ").format_foreign_key(array('table'=>$kd[$n["type"]],'source'=>array($n["field"]),'target'=>array($Ui["field"]),'on_delete'=>$n["on_delete"],));$sa=" AFTER ".idf_escape($n["field"]);}elseif($n["orig"]!=""){$jj=true;$o[]=array($n["orig"]);}if($n["orig"]!=""){$Xf=next($Yf);if(!$Xf)$sa="";}}$og="";if(support("partitioning")){if(isset($mg[$K["partition_by"]])){$jg=array();foreach($K
as$y=>$X){if(preg_match('~^partition~',$y))$jg[$y]=$X;}foreach($jg["partition_names"]as$y=>$C){if($C==""){unset($jg["partition_names"][$y]);unset($jg["partition_values"][$y]);}}if($jg!=get_partitions_info($a)){$pg=array();if($jg["partition_by"]=='RANGE'||$jg["partition_by"]=='LIST'){foreach($jg["partition_names"]as$y=>$C){$Y=$jg["partition_values"][$y];$pg[]="\n PARTITION ".idf_escape($C)." VALUES ".($jg["partition_by"]=='RANGE'?"LESS THAN":"IN").($Y!=""?" ($Y)":" MAXVALUE");}}$og
.="\nPARTITION BY $jg[partition_by]($jg[partition])";if($pg)$og
.=" (".implode(",",$pg)."\n)";elseif($jg["partitions"])$og
.=" PARTITIONS ".(+$jg["partitions"]);}}elseif(preg_match("~partitioned~",$S["Create_options"]))$og
.="\nREMOVE PARTITIONING";}$bf=lang(175);if($a==""){cookie("adminer_engine",$K["Engine"]);$bf=lang(176);}$C=trim($K["name"]);queries_redirect(ME.(support("table")?"table=":"select=").urlencode($C),$bf,alter_table($a,$C,(JUSH=="sqlite"&&($jj||$id)?$ua:$o),$id,($K["Comment"]!=$S["Comment"]?$K["Comment"]:null),($K["Engine"]&&$K["Engine"]!=$S["Engine"]?$K["Engine"]:""),($K["Collation"]&&$K["Collation"]!=$S["Collation"]?$K["Collation"]:""),($K["Auto_increment"]!=""?number($K["Auto_increment"]):""),$og));}}page_header(($a!=""?lang(43):lang(73)),$m,array("table"=>$a),h($a));if(!$_POST){$Wi=driver()->types();$K=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($Wi["int"])?"int":(isset($Wi["integer"])?"integer":"")),"on_update"=>"")),"partition_names"=>array(""),);if($a!=""){$K=$S;$K["name"]=$a;$K["fields"]=array();if(!$_GET["auto_increment"])$K["Auto_increment"]="";foreach($Yf
as$n){$n["generated"]=$n["generated"]?:(isset($n["default"])?"DEFAULT":"");$K["fields"][]=$n;}if(support("partitioning")){$K+=get_partitions_info($a);$K["partition_names"][]="";$K["partition_values"][]="";}}}$jb=collations();if(is_array(reset($jb)))$jb=call_user_func_array('array_merge',array_values($jb));$yc=driver()->engines();foreach($yc
as$xc){if(!strcasecmp($xc,$K["Engine"])){$K["Engine"]=$xc;break;}}echo'
<form action="" method="post" id="form">
<p>
';if(support("columns")||$a==""){echo
lang(177).": <input name='name'".($a==""&&!$_POST?" autofocus":"")." data-maxlength='64' value='".h($K["name"])."' autocapitalize='off'>\n",($yc?html_select("Engine",array(""=>"(".lang(178).")")+$yc,$K["Engine"]).on_help("event.target.value",1).script("qsl('select').onchange = helpClose;")."\n":"");if($jb)echo"<datalist id='collations'>".optionlist($jb)."</datalist>\n",(preg_match("~sqlite|mssql~",JUSH)?"":"<input list='collations' name='Collation' value='".h($K["Collation"])."' placeholder='(".lang(102).")'>\n");echo"<input type='submit' value='".lang(14)."'>\n";}if(support("columns")){echo"<div class='scrollable'>\n","<table id='edit-fields' class='nowrap'>\n";edit_fields($K["fields"],$jb,"TABLE",$kd);echo"</table>\n",script("editFields();"),"</div>\n<p>\n",lang(50).": <input type='number' name='Auto_increment' class='size' value='".h($K["Auto_increment"])."'>\n",checkbox("defaults",1,($_POST?$_POST["defaults"]:get_setting("defaults")),lang(179),"columnShow(this.checked, 5)","jsonly");$qb=($_POST?$_POST["comments"]:get_setting("comments"));echo(support("comment")?checkbox("comments",1,$qb,lang(49),"editingCommentsClick(this, true);","jsonly").' '.(preg_match('~\n~',$K["Comment"])?"<textarea name='Comment' rows='2' cols='20'".($qb?"":" class='hidden'").">".h($K["Comment"])."</textarea>":'<input name="Comment" value="'.h($K["Comment"]).'" data-maxlength="'.(min_version(5.5)?2048:60).'"'.($qb?"":" class='hidden'").'>'):''),'<p>
<input type="submit" value="',lang(14),'">
';}echo'
';if($a!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(180,$a));if(support("partitioning")){$ng=preg_match('~RANGE|LIST~',$K["partition_by"]);print_fieldset("partition",lang(181),$K["partition_by"]);echo"<p>".html_select("partition_by",array(""=>"")+$mg,$K["partition_by"]).on_help("event.target.value.replace(/./, 'PARTITION BY \$&')",1).script("qsl('select').onchange = partitionByChange;"),"(<input name='partition' value='".h($K["partition"])."'>)\n",lang(182).": <input type='number' name='partitions' class='size".($ng||!$K["partition_by"]?" hidden":"")."' value='".h($K["partitions"])."'>\n","<table id='partition-table'".($ng?"":" class='hidden'").">\n","<thead><tr><th>".lang(183)."<th>".lang(184)."</thead>\n";foreach($K["partition_names"]as$y=>$X)echo'<tr>','<td><input name="partition_names[]" value="'.h($X).'" autocapitalize="off">',($y==count($K["partition_names"])-1?script("qsl('input').oninput = partitionNameChange;"):''),'<td><input name="partition_values[]" value="'.h(idx($K["partition_values"],$y)).'">';echo"</table>\n</div></fieldset>\n";}echo
input_token(),'</form>
';}elseif(isset($_GET["indexes"])){$a=$_GET["indexes"];$Yd=array("PRIMARY","UNIQUE","INDEX");$S=table_status1($a,true);if(preg_match('~MyISAM|M?aria'.(min_version(5.6,'10.0.5')?'|InnoDB':'').'~i',$S["Engine"]))$Yd[]="FULLTEXT";if(preg_match('~MyISAM|M?aria'.(min_version(5.7,'10.2.2')?'|InnoDB':'').'~i',$S["Engine"]))$Yd[]="SPATIAL";$x=indexes($a);$G=array();if(JUSH=="mongo"){$G=$x["_id_"];unset($Yd[0]);unset($x["_id_"]);}$K=$_POST;if($K)save_settings(array("index_options"=>$K["options"]));if($_POST&&!$m&&!$_POST["add"]&&!$_POST["drop_col"]){$b=array();foreach($K["indexes"]as$w){$C=$w["name"];if(in_array($w["type"],$Yd)){$e=array();$Ge=array();$Zb=array();$O=array();ksort($w["columns"]);foreach($w["columns"]as$y=>$d){if($d!=""){$z=idx($w["lengths"],$y);$Xb=idx($w["descs"],$y);$O[]=idf_escape($d).($z?"(".(+$z).")":"").($Xb?" DESC":"");$e[]=$d;$Ge[]=($z?:null);$Zb[]=$Xb;}}$Kc=$x[$C];if($Kc){ksort($Kc["columns"]);ksort($Kc["lengths"]);ksort($Kc["descs"]);if($w["type"]==$Kc["type"]&&array_values($Kc["columns"])===$e&&(!$Kc["lengths"]||array_values($Kc["lengths"])===$Ge)&&array_values($Kc["descs"])===$Zb){unset($x[$C]);continue;}}if($e)$b[]=array($w["type"],$C,$O);}}foreach($x
as$C=>$Kc)$b[]=array($Kc["type"],$C,"DROP");if(!$b)redirect(ME."table=".urlencode($a));queries_redirect(ME."table=".urlencode($a),lang(185),alter_indexes($a,$b));}page_header(lang(135),$m,array("table"=>$a),h($a));$o=array_keys(fields($a));if($_POST["add"]){foreach($K["indexes"]as$y=>$w){if($w["columns"][count($w["columns"])]!="")$K["indexes"][$y]["columns"][]="";}$w=end($K["indexes"]);if($w["type"]||array_filter($w["columns"],'strlen'))$K["indexes"][]=array("columns"=>array(1=>""));}if(!$K){foreach($x
as$y=>$w){$x[$y]["name"]=$y;$x[$y]["columns"][]="";}$x[]=array("columns"=>array(1=>""));$K["indexes"]=$x;}$Ge=(JUSH=="sql"||JUSH=="mssql");$Jh=($_POST?$_POST["options"]:get_setting("index_options"));echo'
<form action="" method="post">
<div class="scrollable">
<table class="nowrap">
<thead><tr>
<th id="label-type">',lang(186),'<th><input type="submit" class="wayoff">',lang(187).($Ge?"<span class='idxopts".($Jh?"":" hidden")."'> (".lang(188).")</span>":"");if($Ge||support("descidx"))echo
checkbox("options",1,$Jh,lang(108),"indexOptionsShow(this.checked)","jsonly")."\n";echo'<th id="label-name">',lang(189),'<th><noscript>',icon("plus","add[0]","+",lang(109)),'</noscript>
</thead>
';if($G){echo"<tr><td>PRIMARY<td>";foreach($G["columns"]as$y=>$d)echo
select_input(" disabled",$o,$d),"<label><input disabled type='checkbox'>".lang(58)."</label> ";echo"<td><td>\n";}$qe=1;foreach($K["indexes"]as$w){if(!$_POST["drop_col"]||$qe!=key($_POST["drop_col"])){echo"<tr><td>".html_select("indexes[$qe][type]",array(-1=>"")+$Yd,$w["type"],($qe==count($K["indexes"])?"indexesAddRow.call(this);":""),"label-type"),"<td>";ksort($w["columns"]);$t=1;foreach($w["columns"]as$y=>$d){echo"<span>".select_input(" name='indexes[$qe][columns][$t]' title='".lang(47)."'",($o?array_combine($o,$o):$o),$d,"partial(".($t==count($w["columns"])?"indexesAddColumn":"indexesChangeColumn").", '".js_escape(JUSH=="sql"?"":$_GET["indexes"]."_")."')"),"<span class='idxopts".($Jh?"":" hidden")."'>",($Ge?"<input type='number' name='indexes[$qe][lengths][$t]' class='size' value='".h(idx($w["lengths"],$y))."' title='".lang(107)."'>":""),(support("descidx")?checkbox("indexes[$qe][descs][$t]",1,idx($w["descs"],$y),lang(58)):""),"</span> </span>";$t++;}echo"<td><input name='indexes[$qe][name]' value='".h($w["name"])."' autocapitalize='off' aria-labelledby='label-name'>\n","<td>".icon("cross","drop_col[$qe]","x",lang(112)).script("qsl('button').onclick = partial(editingRemoveRow, 'indexes\$1[type]');");}$qe++;}echo'</table>
</div>
<p>
<input type="submit" value="',lang(14),'">
',input_token(),'</form>
';}elseif(isset($_GET["database"])){$K=$_POST;if($_POST&&!$m&&!$_POST["add"]){$C=trim($K["name"]);if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),lang(190),drop_databases(array(DB)));}elseif(DB!==$C){if(DB!=""){$_GET["db"]=$C;queries_redirect(preg_replace('~\bdb=[^&]*&~','',ME)."db=".urlencode($C),lang(191),rename_database($C,$K["collation"]));}else{$j=explode("\n",str_replace("\r","",$C));$ci=true;$Ae="";foreach($j
as$k){if(count($j)==1||$k!=""){if(!create_database($k,$K["collation"]))$ci=false;$Ae=$k;}}restart_session();set_session("dbs",null);queries_redirect(ME."db=".urlencode($Ae),lang(192),$ci);}}else{if(!$K["collation"])redirect(substr(ME,0,-1));query_redirect("ALTER DATABASE ".idf_escape($C).(preg_match('~^[a-z0-9_]+$~i',$K["collation"])?" COLLATE $K[collation]":""),substr(ME,0,-1),lang(193));}}page_header(DB!=""?lang(66):lang(116),$m,array(),h(DB));$jb=collations();$C=DB;if($_POST)$C=$K["name"];elseif(DB!="")$K["collation"]=db_collation(DB,$jb);elseif(JUSH=="sql"){foreach(get_vals("SHOW GRANTS")as$td){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\.\*)?~',$td,$B)&&$B[1]){$C=stripcslashes(idf_unescape("`$B[2]`"));break;}}}echo'
<form action="" method="post">
<p>
',($_POST["add"]||strpos($C,"\n")?'<textarea autofocus name="name" rows="10" cols="40">'.h($C).'</textarea><br>':'<input name="name" autofocus value="'.h($C).'" data-maxlength="64" autocapitalize="off">')."\n".($jb?html_select("collation",array(""=>"(".lang(102).")")+$jb,$K["collation"]).doc_link(array('sql'=>"charset-charsets.html",'mariadb'=>"supported-character-sets-and-collations/",'mssql'=>"relational-databases/system-functions/sys-fn-helpcollations-transact-sql",)):""),'<input type="submit" value="',lang(14),'">
';if(DB!="")echo"<input type='submit' name='drop' value='".lang(128)."'>".confirm(lang(180,DB))."\n";elseif(!$_POST["add"]&&$_GET["db"]=="")echo
icon("plus","add[0]","+",lang(109))."\n";echo
input_token(),'</form>
';}elseif(isset($_GET["scheme"])){$K=$_POST;if($_POST&&!$m){$A=preg_replace('~ns=[^&]*&~','',ME)."ns=";if($_POST["drop"])query_redirect("DROP SCHEMA ".idf_escape($_GET["ns"]),$A,lang(194));else{$C=trim($K["name"]);$A
.=urlencode($C);if($_GET["ns"]=="")query_redirect("CREATE SCHEMA ".idf_escape($C),$A,lang(195));elseif($_GET["ns"]!=$C)query_redirect("ALTER SCHEMA ".idf_escape($_GET["ns"])." RENAME TO ".idf_escape($C),$A,lang(196));else
redirect($A);}}page_header($_GET["ns"]!=""?lang(67):lang(68),$m);if(!$K)$K["name"]=$_GET["ns"];echo'
<form action="" method="post">
<p><input name="name" autofocus value="',h($K["name"]),'" autocapitalize="off">
<input type="submit" value="',lang(14),'">
';if($_GET["ns"]!="")echo"<input type='submit' name='drop' value='".lang(128)."'>".confirm(lang(180,$_GET["ns"]))."\n";echo
input_token(),'</form>
';}elseif(isset($_GET["call"])){$ca=($_GET["name"]?:$_GET["call"]);page_header(lang(197).": ".h($ca),$m);$kh=routine($_GET["call"],(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$Ud=array();$dg=array();foreach($kh["fields"]as$t=>$n){if(substr($n["inout"],-3)=="OUT")$dg[$t]="@".idf_escape($n["field"])." AS ".idf_escape($n["field"]);if(!$n["inout"]||substr($n["inout"],0,2)=="IN")$Ud[]=$t;}if(!$m&&$_POST){$Ta=array();foreach($kh["fields"]as$y=>$n){$X="";if(in_array($y,$Ud)){$X=process_input($n);if($X===false)$X="''";if(isset($dg[$y]))connection()->query("SET @".idf_escape($n["field"])." = $X");}$Ta[]=(isset($dg[$y])?"@".idf_escape($n["field"]):$X);}$H=(isset($_GET["callf"])?"SELECT":"CALL")." ".table($ca)."(".implode(", ",$Ta).")";$Xh=microtime(true);$I=connection()->multi_query($H);$qa=connection()->affected_rows;echo
adminer()->selectQuery($H,$Xh,!$I);if(!$I)echo"<p class='error'>".error()."\n";else{$h=connect();if($h)$h->select_db(DB);do{$I=connection()->store_result();if(is_object($I))print_select_result($I,$h);else
echo"<p class='message'>".lang(198,$qa)." <span class='time'>".@date("H:i:s")."</span>\n";}while(connection()->next_result());if($dg)print_select_result(connection()->query("SELECT ".implode(", ",$dg)));}}echo'
<form action="" method="post">
';if($Ud){echo"<table class='layout'>\n";foreach($Ud
as$y){$n=$kh["fields"][$y];$C=$n["field"];echo"<tr><th>".adminer()->fieldName($n);$Y=idx($_POST["fields"],$C);if($Y!=""){if($n["type"]=="set")$Y=implode(",",$Y);}input($n,$Y,idx($_POST["function"],$C,""));echo"\n";}echo"</table>\n";}echo'<p>
<input type="submit" value="',lang(197),'">
',input_token(),'</form>
<pre>
';function
pre_tr($oh){return
preg_replace('~^~m','<tr>',preg_replace('~\|~','<td>',preg_replace('~\|$~m',"",rtrim($oh))));}$R='(\+--[-+]+\+\n)';$K='(\| .* \|\n)';echo
preg_replace_callback("~^$R?$K$R?($K*)$R?~m",function($B){$bd=pre_tr($B[2]);return"<table>\n".($B[1]?"<thead>$bd</thead>\n":$bd).pre_tr($B[4])."\n</table>";},preg_replace('~(\n( -|mysql)> )(.+)~',"\\1<code class='jush-sql'>\\3</code>",preg_replace('~(.+)\n---+\n~',"<b>\\1</b>\n",h($kh['comment']))));echo'</pre>
';}elseif(isset($_GET["foreign"])){$a=$_GET["foreign"];$C=$_GET["name"];$K=$_POST;if($_POST&&!$m&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){if(!$_POST["drop"]){$K["source"]=array_filter($K["source"],'strlen');ksort($K["source"]);$si=array();foreach($K["source"]as$y=>$X)$si[$y]=$K["target"][$y];$K["target"]=$si;}if(JUSH=="sqlite")$I=recreate_table($a,$a,array(),array(),array(" $C"=>($K["drop"]?"":" ".format_foreign_key($K))));else{$b="ALTER TABLE ".table($a);$I=($C==""||queries("$b DROP ".(JUSH=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($C)));if(!$K["drop"])$I=queries("$b ADD".format_foreign_key($K));}queries_redirect(ME."table=".urlencode($a),($K["drop"]?lang(199):($C!=""?lang(200):lang(201))),$I);if(!$K["drop"])$m=lang(202);}page_header(lang(203),$m,array("table"=>$a),h($a));if($_POST){ksort($K["source"]);if($_POST["add"])$K["source"][]="";elseif($_POST["change"]||$_POST["change-js"])$K["target"]=array();}elseif($C!=""){$kd=foreign_keys($a);$K=$kd[$C];$K["source"][]="";}else{$K["table"]=$a;$K["source"]=array("");}echo'
<form action="" method="post">
';$Oh=array_keys(fields($a));if($K["db"]!="")connection()->select_db($K["db"]);if($K["ns"]!=""){$Zf=get_schema();set_schema($K["ns"]);}$Vg=array_keys(array_filter(table_status('',true),'Adminer\fk_support'));$si=array_keys(fields(in_array($K["table"],$Vg)?$K["table"]:reset($Vg)));$Jf="this.form['change-js'].value = '1'; this.form.submit();";echo"<p><label>".lang(204).": ".html_select("table",$Vg,$K["table"],$Jf)."</label>\n";if(support("scheme")){$rh=array_filter(adminer()->schemas(),function($qh){return!preg_match('~^information_schema$~i',$qh);});echo"<label>".lang(75).": ".html_select("ns",$rh,$K["ns"]!=""?$K["ns"]:$_GET["ns"],$Jf)."</label>";if($K["ns"]!="")set_schema($Zf);}elseif(JUSH!="sqlite"){$Qb=array();foreach(adminer()->databases()as$k){if(!information_schema($k))$Qb[]=$k;}echo"<label>".lang(74).": ".html_select("db",$Qb,$K["db"]!=""?$K["db"]:$_GET["db"],$Jf)."</label>";}echo
input_hidden("change-js"),'<noscript><p><input type="submit" name="change" value="',lang(205),'"></noscript>
<table>
<thead><tr><th id="label-source">',lang(137),'<th id="label-target">',lang(138),'</thead>
';$qe=0;foreach($K["source"]as$y=>$X){echo"<tr>","<td>".html_select("source[".(+$y)."]",array(-1=>"")+$Oh,$X,($qe==count($K["source"])-1?"foreignAddRow.call(this);":""),"label-source"),"<td>".html_select("target[".(+$y)."]",$si,idx($K["target"],$y),"","label-target");$qe++;}echo'</table>
<p>
<label>',lang(104),': ',html_select("on_delete",array(-1=>"")+explode("|",driver()->onActions),$K["on_delete"]),'</label>
<label>',lang(103),': ',html_select("on_update",array(-1=>"")+explode("|",driver()->onActions),$K["on_update"]),'</label>
',doc_link(array('sql'=>"innodb-foreign-key-constraints.html",'mariadb'=>"foreign-keys/",'pgsql'=>"sql-createtable.html#SQL-CREATETABLE-REFERENCES",'mssql'=>"t-sql/statements/create-table-transact-sql",'oracle'=>"SQLRF01111",)),'<p>
<input type="submit" value="',lang(14),'">
<noscript><p><input type="submit" name="add" value="',lang(206),'"></noscript>
';if($C!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(180,$C));echo
input_token(),'</form>
';}elseif(isset($_GET["view"])){$a=$_GET["view"];$K=$_POST;$ag="VIEW";if(JUSH=="pgsql"&&$a!=""){$P=table_status1($a);$ag=strtoupper($P["Engine"]);}if($_POST&&!$m){$C=trim($K["name"]);$ya=" AS\n$K[select]";$Ke=ME."table=".urlencode($C);$bf=lang(207);$U=($_POST["materialized"]?"MATERIALIZED VIEW":"VIEW");if(!$_POST["drop"]&&$a==$C&&JUSH!="sqlite"&&$U=="VIEW"&&$ag=="VIEW")query_redirect((JUSH=="mssql"?"ALTER":"CREATE OR REPLACE")." VIEW ".table($C).$ya,$Ke,$bf);else{$ui=$C."_adminer_".uniqid();drop_create("DROP $ag ".table($a),"CREATE $U ".table($C).$ya,"DROP $U ".table($C),"CREATE $U ".table($ui).$ya,"DROP $U ".table($ui),($_POST["drop"]?substr(ME,0,-1):$Ke),lang(208),$bf,lang(209),$a,$C);}}if(!$_POST&&$a!=""){$K=view($a);$K["name"]=$a;$K["materialized"]=($ag!="VIEW");if(!$m)$m=error();}page_header(($a!=""?lang(42):lang(210)),$m,array("table"=>$a),h($a));echo'
<form action="" method="post">
<p>',lang(189),': <input name="name" value="',h($K["name"]),'" data-maxlength="64" autocapitalize="off">
',(support("materializedview")?" ".checkbox("materialized",1,$K["materialized"],lang(132)):""),'<p>';textarea("select",$K["select"]);echo'<p>
<input type="submit" value="',lang(14),'">
';if($a!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(180,$a));echo
input_token(),'</form>
';}elseif(isset($_GET["event"])){$aa=$_GET["event"];$ie=array("YEAR","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND");$Yh=array("ENABLED"=>"ENABLE","DISABLED"=>"DISABLE","SLAVESIDE_DISABLED"=>"DISABLE ON SLAVE");$K=$_POST;if($_POST&&!$m){if($_POST["drop"])query_redirect("DROP EVENT ".idf_escape($aa),substr(ME,0,-1),lang(211));elseif(in_array($K["INTERVAL_FIELD"],$ie)&&isset($Yh[$K["STATUS"]])){$ph="\nON SCHEDULE ".($K["INTERVAL_VALUE"]?"EVERY ".q($K["INTERVAL_VALUE"])." $K[INTERVAL_FIELD]".($K["STARTS"]?" STARTS ".q($K["STARTS"]):"").($K["ENDS"]?" ENDS ".q($K["ENDS"]):""):"AT ".q($K["STARTS"]))." ON COMPLETION".($K["ON_COMPLETION"]?"":" NOT")." PRESERVE";queries_redirect(substr(ME,0,-1),($aa!=""?lang(212):lang(213)),queries(($aa!=""?"ALTER EVENT ".idf_escape($aa).$ph.($aa!=$K["EVENT_NAME"]?"\nRENAME TO ".idf_escape($K["EVENT_NAME"]):""):"CREATE EVENT ".idf_escape($K["EVENT_NAME"]).$ph)."\n".$Yh[$K["STATUS"]]." COMMENT ".q($K["EVENT_COMMENT"]).rtrim(" DO\n$K[EVENT_DEFINITION]",";").";"));}}page_header(($aa!=""?lang(214).": ".h($aa):lang(215)),$m);if(!$K&&$aa!=""){$L=get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = ".q(DB)." AND EVENT_NAME = ".q($aa));$K=reset($L);}echo'
<form action="" method="post">
<table class="layout">
<tr><th>',lang(189),'<td><input name="EVENT_NAME" value="',h($K["EVENT_NAME"]),'" data-maxlength="64" autocapitalize="off">
<tr><th title="datetime">',lang(216),'<td><input name="STARTS" value="',h("$K[EXECUTE_AT]$K[STARTS]"),'">
<tr><th title="datetime">',lang(217),'<td><input name="ENDS" value="',h($K["ENDS"]),'">
<tr><th>',lang(218),'<td><input type="number" name="INTERVAL_VALUE" value="',h($K["INTERVAL_VALUE"]),'" class="size"> ',html_select("INTERVAL_FIELD",$ie,$K["INTERVAL_FIELD"]),'<tr><th>',lang(119),'<td>',html_select("STATUS",$Yh,$K["STATUS"]),'<tr><th>',lang(49),'<td><input name="EVENT_COMMENT" value="',h($K["EVENT_COMMENT"]),'" data-maxlength="64">
<tr><th><td>',checkbox("ON_COMPLETION","PRESERVE",$K["ON_COMPLETION"]=="PRESERVE",lang(219)),'</table>
<p>';textarea("EVENT_DEFINITION",$K["EVENT_DEFINITION"]);echo'<p>
<input type="submit" value="',lang(14),'">
';if($aa!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(180,$aa));echo
input_token(),'</form>
';}elseif(isset($_GET["procedure"])){$ca=($_GET["name"]?:$_GET["procedure"]);$kh=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$K=$_POST;$K["fields"]=(array)$K["fields"];if($_POST&&!process_fields($K["fields"])&&!$m){$Wf=routine($_GET["procedure"],$kh);$ui="$K[name]_adminer_".uniqid();foreach($K["fields"]as$y=>$n){if($n["field"]=="")unset($K["fields"][$y]);}drop_create("DROP $kh ".routine_id($ca,$Wf),create_routine($kh,$K),"DROP $kh ".routine_id($K["name"],$K),create_routine($kh,array("name"=>$ui)+$K),"DROP $kh ".routine_id($ui,$K),substr(ME,0,-1),lang(220),lang(221),lang(222),$ca,$K["name"]);}page_header(($ca!=""?(isset($_GET["function"])?lang(223):lang(224)).": ".h($ca):(isset($_GET["function"])?lang(225):lang(226))),$m);if(!$_POST){if($ca=="")$K["language"]="sql";else{$K=routine($_GET["procedure"],$kh);$K["name"]=$ca;}}$jb=get_vals("SHOW CHARACTER SET");sort($jb);$lh=routine_languages();echo($jb?"<datalist id='collations'>".optionlist($jb)."</datalist>":""),'
<form action="" method="post" id="form">
<p>',lang(189),': <input name="name" value="',h($K["name"]),'" data-maxlength="64" autocapitalize="off">
',($lh?"<label>".lang(19).": ".html_select("language",$lh,$K["language"])."</label>\n":""),'<input type="submit" value="',lang(14),'">
<div class="scrollable">
<table class="nowrap">
';edit_fields($K["fields"],$jb,$kh);if(isset($_GET["function"])){echo"<tr><td>".lang(227);edit_type("returns",$K["returns"],$jb,array(),(JUSH=="pgsql"?array("void","trigger"):array()));}echo'</table>
',script("editFields();"),'</div>
<p>';textarea("definition",$K["definition"]);echo'<p>
<input type="submit" value="',lang(14),'">
';if($ca!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(180,$ca));echo
input_token(),'</form>
';}elseif(isset($_GET["sequence"])){$ea=$_GET["sequence"];$K=$_POST;if($_POST&&!$m){$A=substr(ME,0,-1);$C=trim($K["name"]);if($_POST["drop"])query_redirect("DROP SEQUENCE ".idf_escape($ea),$A,lang(228));elseif($ea=="")query_redirect("CREATE SEQUENCE ".idf_escape($C),$A,lang(229));elseif($ea!=$C)query_redirect("ALTER SEQUENCE ".idf_escape($ea)." RENAME TO ".idf_escape($C),$A,lang(230));else
redirect($A);}page_header($ea!=""?lang(231).": ".h($ea):lang(232),$m);if(!$K)$K["name"]=$ea;echo'
<form action="" method="post">
<p><input name="name" value="',h($K["name"]),'" autocapitalize="off">
<input type="submit" value="',lang(14),'">
';if($ea!="")echo"<input type='submit' name='drop' value='".lang(128)."'>".confirm(lang(180,$ea))."\n";echo
input_token(),'</form>
';}elseif(isset($_GET["type"])){$fa=$_GET["type"];$K=$_POST;if($_POST&&!$m){$A=substr(ME,0,-1);if($_POST["drop"])query_redirect("DROP TYPE ".idf_escape($fa),$A,lang(233));else
query_redirect("CREATE TYPE ".idf_escape(trim($K["name"]))." $K[as]",$A,lang(234));}page_header($fa!=""?lang(235).": ".h($fa):lang(236),$m);if(!$K)$K["as"]="AS ";echo'
<form action="" method="post">
<p>
';if($fa!=""){$Wi=driver()->types();$Bc=type_values($Wi[$fa]);if($Bc)echo"<code class='jush-".JUSH."'>ENUM (".h($Bc).")</code>\n<p>";echo"<input type='submit' name='drop' value='".lang(128)."'>".confirm(lang(180,$fa))."\n";}else{echo
lang(189).": <input name='name' value='".h($K['name'])."' autocapitalize='off'>\n",doc_link(array('pgsql'=>"datatype-enum.html",),"?");textarea("as",$K["as"]);echo"<p><input type='submit' value='".lang(14)."'>\n";}echo
input_token(),'</form>
';}elseif(isset($_GET["check"])){$a=$_GET["check"];$C=$_GET["name"];$K=$_POST;if($K&&!$m){if(JUSH=="sqlite")$I=recreate_table($a,$a,array(),array(),array(),"",array(),"$C",($K["drop"]?"":$K["clause"]));else{$I=($C==""||queries("ALTER TABLE ".table($a)." DROP CONSTRAINT ".idf_escape($C)));if(!$K["drop"])$I=queries("ALTER TABLE ".table($a)." ADD".($K["name"]!=""?" CONSTRAINT ".idf_escape($K["name"]):"")." CHECK ($K[clause])");}queries_redirect(ME."table=".urlencode($a),($K["drop"]?lang(237):($C!=""?lang(238):lang(239))),$I);}page_header(($C!=""?lang(240).": ".h($C):lang(142)),$m,array("table"=>$a));if(!$K){$bb=driver()->checkConstraints($a);$K=array("name"=>$C,"clause"=>$bb[$C]);}echo'
<form action="" method="post">
<p>';if(JUSH!="sqlite")echo
lang(189).': <input name="name" value="'.h($K["name"]).'" data-maxlength="64" autocapitalize="off"> ';echo
doc_link(array('sql'=>"create-table-check-constraints.html",'mariadb'=>"constraint/",'pgsql'=>"ddl-constraints.html#DDL-CONSTRAINTS-CHECK-CONSTRAINTS",'mssql'=>"relational-databases/tables/create-check-constraints",'sqlite'=>"lang_createtable.html#check_constraints",),"?"),'<p>';textarea("clause",$K["clause"]);echo'<p><input type="submit" value="',lang(14),'">
';if($C!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(180,$C));echo
input_token(),'</form>
';}elseif(isset($_GET["trigger"])){$a=$_GET["trigger"];$C="$_GET[name]";$Si=trigger_options();$K=(array)trigger($C,$a)+array("Trigger"=>$a."_bi");if($_POST){if(!$m&&in_array($_POST["Timing"],$Si["Timing"])&&in_array($_POST["Event"],$Si["Event"])&&in_array($_POST["Type"],$Si["Type"])){$Gf=" ON ".table($a);$hc="DROP TRIGGER ".idf_escape($C).(JUSH=="pgsql"?$Gf:"");$Ke=ME."table=".urlencode($a);if($_POST["drop"])query_redirect($hc,$Ke,lang(241));else{if($C!="")queries($hc);queries_redirect($Ke,($C!=""?lang(242):lang(243)),queries(create_trigger($Gf,$_POST)));if($C!="")queries(create_trigger($Gf,$K+array("Type"=>reset($Si["Type"]))));}}$K=$_POST;}page_header(($C!=""?lang(244).": ".h($C):lang(245)),$m,array("table"=>$a));echo'
<form action="" method="post" id="form">
<table class="layout">
<tr><th>',lang(246),'<td>',html_select("Timing",$Si["Timing"],$K["Timing"],"triggerChange(/^".preg_quote($a,"/")."_[ba][iud]$/, '".js_escape($a)."', this.form);"),'<tr><th>',lang(247),'<td>',html_select("Event",$Si["Event"],$K["Event"],"this.form['Timing'].onchange();"),(in_array("UPDATE OF",$Si["Event"])?" <input name='Of' value='".h($K["Of"])."' class='hidden'>":""),'<tr><th>',lang(48),'<td>',html_select("Type",$Si["Type"],$K["Type"]),'</table>
<p>',lang(189),': <input name="Trigger" value="',h($K["Trigger"]),'" data-maxlength="64" autocapitalize="off">
',script("qs('#form')['Timing'].onchange();"),'<p>';textarea("Statement",$K["Statement"]);echo'<p>
<input type="submit" value="',lang(14),'">
';if($C!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(180,$C));echo
input_token(),'</form>
';}elseif(isset($_GET["user"])){$ga=$_GET["user"];$Jg=array(""=>array("All privileges"=>""));foreach(get_rows("SHOW PRIVILEGES")as$K){foreach(explode(",",($K["Privilege"]=="Grant option"?"":$K["Context"]))as$_b)$Jg[$_b][$K["Privilege"]]=$K["Comment"];}$Jg["Server Admin"]+=$Jg["File access on server"];$Jg["Databases"]["Create routine"]=$Jg["Procedures"]["Create routine"];unset($Jg["Procedures"]["Create routine"]);$Jg["Columns"]=array();foreach(array("Select","Insert","Update","References")as$X)$Jg["Columns"][$X]=$Jg["Tables"][$X];unset($Jg["Server Admin"]["Usage"]);foreach($Jg["Tables"]as$y=>$X)unset($Jg["Databases"][$y]);$qf=array();if($_POST){foreach($_POST["objects"]as$y=>$X)$qf[$X]=(array)$qf[$X]+idx($_POST["grants"],$y,array());}$ud=array();$Ef="";if(isset($_GET["host"])&&($I=connection()->query("SHOW GRANTS FOR ".q($ga)."@".q($_GET["host"])))){while($K=$I->fetch_row()){if(preg_match('~GRANT (.*) ON (.*) TO ~',$K[0],$B)&&preg_match_all('~ *([^(,]*[^ ,(])( *\([^)]+\))?~',$B[1],$Re,PREG_SET_ORDER)){foreach($Re
as$X){if($X[1]!="USAGE")$ud["$B[2]$X[2]"][$X[1]]=true;if(preg_match('~ WITH GRANT OPTION~',$K[0]))$ud["$B[2]$X[2]"]["GRANT OPTION"]=true;}}if(preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~",$K[0],$B))$Ef=$B[1];}}if($_POST&&!$m){$Ff=(isset($_GET["host"])?q($ga)."@".q($_GET["host"]):"''");if($_POST["drop"])query_redirect("DROP USER $Ff",ME."privileges=",lang(248));else{$sf=q($_POST["user"])."@".q($_POST["host"]);$qg=$_POST["pass"];if($qg!=''&&!$_POST["hashed"]&&!min_version(8)){$qg=get_val("SELECT PASSWORD(".q($qg).")");$m=!$qg;}$Eb=false;if(!$m){if($Ff!=$sf){$Eb=queries((min_version(5)?"CREATE USER":"GRANT USAGE ON *.* TO")." $sf IDENTIFIED BY ".(min_version(8)?"":"PASSWORD ").q($qg));$m=!$Eb;}elseif($qg!=$Ef)queries("SET PASSWORD FOR $sf = ".q($qg));}if(!$m){$hh=array();foreach($qf
as$zf=>$td){if(isset($_GET["grant"]))$td=array_filter($td);$td=array_keys($td);if(isset($_GET["grant"]))$hh=array_diff(array_keys(array_filter($qf[$zf],'strlen')),$td);elseif($Ff==$sf){$Cf=array_keys((array)$ud[$zf]);$hh=array_diff($Cf,$td);$td=array_diff($td,$Cf);unset($ud[$zf]);}if(preg_match('~^(.+)\s*(\(.*\))?$~U',$zf,$B)&&(!grant("REVOKE",$hh,$B[2]," ON $B[1] FROM $sf")||!grant("GRANT",$td,$B[2]," ON $B[1] TO $sf"))){$m=true;break;}}}if(!$m&&isset($_GET["host"])){if($Ff!=$sf)queries("DROP USER $Ff");elseif(!isset($_GET["grant"])){foreach($ud
as$zf=>$hh){if(preg_match('~^(.+)(\(.*\))?$~U',$zf,$B))grant("REVOKE",array_keys($hh),$B[2]," ON $B[1] FROM $sf");}}}queries_redirect(ME."privileges=",(isset($_GET["host"])?lang(249):lang(250)),!$m);if($Eb)connection()->query("DROP USER $sf");}}page_header((isset($_GET["host"])?lang(34).": ".h("$ga@$_GET[host]"):lang(151)),$m,array("privileges"=>array('',lang(70))));$K=$_POST;if($K)$ud=$qf;else{$K=$_GET+array("host"=>get_val("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)"));$K["pass"]=$Ef;if($Ef!="")$K["hashed"]=true;$ud[(DB==""||$ud?"":idf_escape(addcslashes(DB,"%_\\"))).".*"]=array();}echo'<form action="" method="post">
<table class="layout">
<tr><th>',lang(33),'<td><input name="host" data-maxlength="60" value="',h($K["host"]),'" autocapitalize="off">
<tr><th>',lang(34),'<td><input name="user" data-maxlength="80" value="',h($K["user"]),'" autocapitalize="off">
<tr><th>',lang(35),'<td><input name="pass" id="pass" value="',h($K["pass"]),'" autocomplete="new-password">
',($K["hashed"]?"":script("typePassword(qs('#pass'));")),(min_version(8)?"":checkbox("hashed",1,$K["hashed"],lang(251),"typePassword(this.form['pass'], this.checked);")),'</table>
',"<table class='odds'>\n","<thead><tr><th colspan='2'>".lang(70).doc_link(array('sql'=>"grant.html#priv_level"));$t=0;foreach($ud
as$zf=>$td){echo'<th>'.($zf!="*.*"?"<input name='objects[$t]' value='".h($zf)."' size='10' autocapitalize='off'>":input_hidden("objects[$t]","*.*")."*.*");$t++;}echo"</thead>\n";foreach(array(""=>"","Server Admin"=>lang(33),"Databases"=>lang(36),"Tables"=>lang(134),"Columns"=>lang(47),"Procedures"=>lang(252),)as$_b=>$Xb){foreach((array)$Jg[$_b]as$Ig=>$ob){echo"<tr><td".($Xb?">$Xb<td":" colspan='2'").' lang="en" title="'.h($ob).'">'.h($Ig);$t=0;foreach($ud
as$zf=>$td){$C="'grants[$t][".h(strtoupper($Ig))."]'";$Y=$td[strtoupper($Ig)];if($_b=="Server Admin"&&$zf!=(isset($ud["*.*"])?"*.*":".*"))echo"<td>";elseif(isset($_GET["grant"]))echo"<td><select name=$C><option><option value='1'".($Y?" selected":"").">".lang(253)."<option value='0'".($Y=="0"?" selected":"").">".lang(254)."</select>";else
echo"<td align='center'><label class='block'>","<input type='checkbox' name=$C value='1'".($Y?" checked":"").($Ig=="All privileges"?" id='grants-$t-all'>":">".($Ig=="Grant option"?"":script("qsl('input').onclick = function () { if (this.checked) formUncheck('grants-$t-all'); };"))),"</label>";$t++;}}}echo"</table>\n",'<p>
<input type="submit" value="',lang(14),'">
';if(isset($_GET["host"]))echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(180,"$ga@$_GET[host]"));echo
input_token(),'</form>
';}elseif(isset($_GET["processlist"])){if(support("kill")){if($_POST&&!$m){$we=0;foreach((array)$_POST["kill"]as$X){if(kill_process($X))$we++;}queries_redirect(ME."processlist=",lang(255,$we),$we||!$_POST["kill"]);}}page_header(lang(117),$m);echo'
<form action="" method="post">
<div class="scrollable">
<table class="nowrap checkable odds">
',script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});");$t=-1;foreach(process_list()as$t=>$K){if(!$t){echo"<thead><tr lang='en'>".(support("kill")?"<th>":"");foreach($K
as$y=>$X)echo"<th>$y".doc_link(array('sql'=>"show-processlist.html#processlist_".strtolower($y),'pgsql'=>"monitoring-stats.html#PG-STAT-ACTIVITY-VIEW",'oracle'=>"REFRN30223",));echo"</thead>\n";}echo"<tr>".(support("kill")?"<td>".checkbox("kill[]",$K[JUSH=="sql"?"Id":"pid"],0):"");foreach($K
as$y=>$X)echo"<td>".((JUSH=="sql"&&$y=="Info"&&preg_match("~Query|Killed~",$K["Command"])&&$X!="")||(JUSH=="pgsql"&&$y=="current_query"&&$X!="<IDLE>")||(JUSH=="oracle"&&$y=="sql_text"&&$X!="")?"<code class='jush-".JUSH."'>".shorten_utf8($X,100,"</code>").' <a href="'.h(ME.($K["db"]!=""?"db=".urlencode($K["db"])."&":"")."sql=".urlencode($X)).'">'.lang(256).'</a>':h($X));echo"\n";}echo'</table>
</div>
<p>
';if(support("kill"))echo($t+1)."/".lang(257,max_connections()),"<p><input type='submit' value='".lang(258)."'>\n";echo
input_token(),'</form>
',script("tableCheck();");}elseif(isset($_GET["select"])){$a=$_GET["select"];$S=table_status1($a);$x=indexes($a);$o=fields($a);$kd=column_foreign_keys($a);$Af=$S["Oid"];$pa=get_settings("adminer_import");$ih=array();$e=array();$vh=array();$Sf=array();$yi="";foreach($o
as$y=>$n){$C=adminer()->fieldName($n);$of=html_entity_decode(strip_tags($C),ENT_QUOTES);if(isset($n["privileges"]["select"])&&$C!=""){$e[$y]=$of;if(is_shortable($n))$yi=adminer()->selectLengthProcess();}if(isset($n["privileges"]["where"])&&$C!="")$vh[$y]=$of;if(isset($n["privileges"]["order"])&&$C!="")$Sf[$y]=$of;$ih+=$n["privileges"];}list($M,$vd)=adminer()->selectColumnsProcess($e,$x);$M=array_unique($M);$vd=array_unique($vd);$me=count($vd)<count($M);$Z=adminer()->selectSearchProcess($o,$x);$Rf=adminer()->selectOrderProcess($o,$x);$_=adminer()->selectLimitProcess();if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$bj=>$K){$ya=convert_field($o[key($K)]);$M=array($ya?:idf_escape(key($K)));$Z[]=where_check($bj,$o);$J=driver()->select($a,$M,$Z,$M);if($J)echo
first($J->fetch_row());}exit;}$G=$dj=array();foreach($x
as$w){if($w["type"]=="PRIMARY"){$G=array_flip($w["columns"]);$dj=($M?$G:array());foreach($dj
as$y=>$X){if(in_array(idf_escape($y),$M))unset($dj[$y]);}break;}}if($Af&&!$G){$G=$dj=array($Af=>0);$x[]=array("type"=>"PRIMARY","columns"=>array($Af));}if($_POST&&!$m){$Aj=$Z;if(!$_POST["all"]&&is_array($_POST["check"])){$bb=array();foreach($_POST["check"]as$Xa)$bb[]=where_check($Xa,$o);$Aj[]="((".implode(") OR (",$bb)."))";}$Aj=($Aj?"\nWHERE ".implode(" AND ",$Aj):"");if($_POST["export"]){save_settings(array("output"=>$_POST["output"],"format"=>$_POST["format"]),"adminer_import");dump_headers($a);adminer()->dumpTable($a,"");$od=($M?implode(", ",$M):"*").convert_fields($e,$o,$M)."\nFROM ".table($a);$xd=($vd&&$me?"\nGROUP BY ".implode(", ",$vd):"").($Rf?"\nORDER BY ".implode(", ",$Rf):"");$H="SELECT $od$Aj$xd";if(is_array($_POST["check"])&&!$G){$Zi=array();foreach($_POST["check"]as$X)$Zi[]="(SELECT".limit($od,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$o).$xd,1).")";$H=implode(" UNION ALL ",$Zi);}adminer()->dumpData($a,"table",$H);adminer()->dumpFooter();exit;}if(!adminer()->selectEmailProcess($Z,$kd)){if($_POST["save"]||$_POST["delete"]){$I=true;$qa=0;$O=array();if(!$_POST["delete"]){foreach($_POST["fields"]as$C=>$X){$X=process_input($o[$C]);if($X!==null&&($_POST["clone"]||$X!==false))$O[idf_escape($C)]=($X!==false?$X:idf_escape($C));}}if($_POST["delete"]||$O){$H=($_POST["clone"]?"INTO ".table($a)." (".implode(", ",array_keys($O)).")\nSELECT ".implode(", ",$O)."\nFROM ".table($a):"");if($_POST["all"]||($G&&is_array($_POST["check"]))||$me){$I=($_POST["delete"]?driver()->delete($a,$Aj):($_POST["clone"]?queries("INSERT $H$Aj".driver()->insertReturning($a)):driver()->update($a,$O,$Aj)));$qa=connection()->affected_rows;if(is_object($I))$qa+=$I->num_rows;}else{foreach((array)$_POST["check"]as$X){$_j="\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$o);$I=($_POST["delete"]?driver()->delete($a,$_j,1):($_POST["clone"]?queries("INSERT".limit1($a,$H,$_j)):driver()->update($a,$O,$_j,1)));if(!$I)break;$qa+=connection()->affected_rows;}}}$bf=lang(259,$qa);if($_POST["clone"]&&$I&&$qa==1){$Be=last_id($I);if($Be)$bf=lang(173," $Be");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$bf,$I);if(!$_POST["delete"]){$Bg=(array)$_POST["fields"];edit_form($a,array_intersect_key($o,$Bg),$Bg,!$_POST["clone"],$m);page_footer();exit;}}elseif(!$_POST["import"]){if(!$_POST["val"])$m=lang(260);else{$I=true;$qa=0;foreach($_POST["val"]as$bj=>$K){$O=array();foreach($K
as$y=>$X){$y=bracket_escape($y,true);$O[idf_escape($y)]=(preg_match('~char|text~',$o[$y]["type"])||$X!=""?adminer()->processInput($o[$y],$X):"NULL");}$I=driver()->update($a,$O," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($bj,$o),($me||$G?0:1)," ");if(!$I)break;$qa+=connection()->affected_rows;}queries_redirect(remove_from_uri(),lang(259,$qa),$I);}}elseif(!is_string($Yc=get_file("csv_file",true)))$m=upload_error($Yc);elseif(!preg_match('~~u',$Yc))$m=lang(261);else{save_settings(array("output"=>$pa["output"],"format"=>$_POST["separator"]),"adminer_import");$I=true;$kb=array_keys($o);preg_match_all('~(?>"[^"]*"|[^"\r\n]+)+~',$Yc,$Re);$qa=count($Re[0]);driver()->begin();$Ah=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));$L=array();foreach($Re[0]as$y=>$X){preg_match_all("~((?>\"[^\"]*\")+|[^$Ah]*)$Ah~",$X.$Ah,$Se);if(!$y&&!array_diff($Se[1],$kb)){$kb=$Se[1];$qa--;}else{$O=array();foreach($Se[1]as$t=>$hb)$O[idf_escape($kb[$t])]=($hb==""&&$o[$kb[$t]]["null"]?"NULL":q(preg_match('~^".*"$~s',$hb)?str_replace('""','"',substr($hb,1,-1)):$hb));$L[]=$O;}}$I=(!$L||driver()->insertUpdate($a,$L,$G));if($I)driver()->commit();queries_redirect(remove_from_uri("page"),lang(262,$qa),$I);driver()->rollback();}}}$ji=adminer()->tableName($S);if(is_ajax()){page_headers();ob_start();}else
page_header(lang(52).": $ji",$m);$O=null;if(isset($ih["insert"])||!support("table")){$jg=array();foreach((array)$_GET["where"]as$X){if(isset($kd[$X["col"]])&&count($kd[$X["col"]])==1&&($X["op"]=="="||(!$X["op"]&&(is_array($X["val"])||!preg_match('~[_%]~',$X["val"])))))$jg["set"."[".bracket_escape($X["col"])."]"]=$X["val"];}$O=$jg?"&".http_build_query($jg):"";}adminer()->selectLinks($S,$O);if(!$e&&support("table"))echo"<p class='error'>".lang(263).($o?".":": ".error())."\n";else{echo"<form action='' id='form'>\n","<div style='display: none;'>";hidden_fields_get();echo(DB!=""?input_hidden("db",DB).(isset($_GET["ns"])?input_hidden("ns",$_GET["ns"]):""):""),input_hidden("select",$a),"</div>\n";adminer()->selectColumnsPrint($M,$e);adminer()->selectSearchPrint($Z,$vh,$x);adminer()->selectOrderPrint($Rf,$Sf,$x);adminer()->selectLimitPrint($_);adminer()->selectLengthPrint($yi);adminer()->selectActionPrint($x);echo"</form>\n";$E=$_GET["page"];$nd=null;if($E=="last"){$nd=get_val(count_rows($a,$Z,$me,$vd));$E=floor(max(0,intval($nd)-1)/$_);}$wh=$M;$wd=$vd;if(!$wh){$wh[]="*";$Ab=convert_fields($e,$o,$M);if($Ab)$wh[]=substr($Ab,2);}foreach($M
as$y=>$X){$n=$o[idf_unescape($X)];if($n&&($ya=convert_field($n)))$wh[$y]="$ya AS $X";}if(!$me&&$dj){foreach($dj
as$y=>$X){$wh[]=idf_escape($y);if($wd)$wd[]=idf_escape($y);}}$I=driver()->select($a,$wh,$Z,$wd,$Rf,$_,$E,true);if(!$I)echo"<p class='error'>".error()."\n";else{if(JUSH=="mssql"&&$E)$I->seek($_*$E);$vc=array();echo"<form action='' method='post' enctype='multipart/form-data'>\n";$L=array();while($K=$I->fetch_assoc()){if($E&&JUSH=="oracle")unset($K["RNUM"]);$L[]=$K;}if($_GET["page"]!="last"&&$_&&$vd&&$me&&JUSH=="sql")$nd=get_val(" SELECT FOUND_ROWS()");if(!$L)echo"<p class='message'>".lang(12)."\n";else{$Ga=adminer()->backwardKeys($a,$ji);echo"<div class='scrollable'>","<table id='table' class='nowrap checkable odds'>",script("mixin(qs('#table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true), onkeydown: editingKeydown});"),"<thead><tr>".(!$vd&&$M?"":"<td><input type='checkbox' id='all-page' class='jsonly'>".script("qs('#all-page').onclick = partial(formCheck, /check/);","")." <a href='".h($_GET["modify"]?remove_from_uri("modify"):$_SERVER["REQUEST_URI"]."&modify=1")."'>".lang(264)."</a>");$pf=array();$qd=array();reset($M);$Sg=1;foreach($L[0]as$y=>$X){if(!isset($dj[$y])){$X=idx($_GET["columns"],key($M))?:array();$n=$o[$M?($X?$X["col"]:current($M)):$y];$C=($n?adminer()->fieldName($n,$Sg):($X["fun"]?"*":h($y)));if($C!=""){$Sg++;$pf[$y]=$C;$d=idf_escape($y);$Md=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($y);$Xb="&desc%5B0%5D=1";echo"<th id='th[".h(bracket_escape($y))."]'>".script("mixin(qsl('th'), {onmouseover: partial(columnMouse), onmouseout: partial(columnMouse, ' hidden')});","");$pd=apply_sql_function($X["fun"],$C);$Nh=isset($n["privileges"]["order"])||$pd;echo($Nh?'<a href="'.h($Md.($Rf[0]==$d||$Rf[0]==$y||(!$Rf&&$me&&$vd[0]==$d)?$Xb:'')).'">'."$pd</a>":$pd),"<span class='column hidden'>";if($Nh)echo"<a href='".h($Md.$Xb)."' title='".lang(58)."' class='text'> ↓</a>";if(!$X["fun"]&&isset($n["privileges"]["where"]))echo'<a href="#fieldset-search" title="'.lang(55).'" class="text jsonly"> =</a>',script("qsl('a').onclick = partial(selectSearch, '".js_escape($y)."');");echo"</span>";}$qd[$y]=$X["fun"];next($M);}}$Ge=array();if($_GET["modify"]){foreach($L
as$K){foreach($K
as$y=>$X)$Ge[$y]=max($Ge[$y],min(40,strlen(utf8_decode($X))));}}echo($Ga?"<th>".lang(265):"")."</thead>\n";if(is_ajax())ob_end_clean();foreach(adminer()->rowDescriptions($L,$kd)as$nf=>$K){$aj=unique_array($L[$nf],$x);if(!$aj){$aj=array();foreach($L[$nf]as$y=>$X){if(!preg_match('~^(COUNT\((\*|(DISTINCT )?`(?:[^`]|``)+`)\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\(`(?:[^`]|``)+`\))$~',$y))$aj[$y]=$X;}}$bj="";foreach($aj
as$y=>$X){$n=(array)$o[$y];if((JUSH=="sql"||JUSH=="pgsql")&&preg_match('~char|text|enum|set~',$n["type"])&&strlen($X)>64){$y=(strpos($y,'(')?$y:idf_escape($y));$y="MD5(".(JUSH!='sql'||preg_match("~^utf8~",$n["collation"])?$y:"CONVERT($y USING ".charset(connection()).")").")";$X=md5($X);}$bj
.="&".($X!==null?urlencode("where[".bracket_escape($y)."]")."=".urlencode($X===false?"f":$X):"null%5B%5D=".urlencode($y));}echo"<tr>".(!$vd&&$M?"":"<td>".checkbox("check[]",substr($bj,1),in_array(substr($bj,1),(array)$_POST["check"])).($me||information_schema(DB)?"":" <a href='".h(ME."edit=".urlencode($a).$bj)."' class='edit'>".lang(266)."</a>"));foreach($K
as$y=>$X){if(isset($pf[$y])){$n=(array)$o[$y];$X=driver()->value($X,$n);if($X!=""&&(!isset($vc[$y])||$vc[$y]!=""))$vc[$y]=(is_mail($X)?$pf[$y]:"");$A="";if(preg_match('~blob|bytea|raw|file~',$n["type"])&&$X!="")$A=ME.'download='.urlencode($a).'&field='.urlencode($y).$bj;if(!$A&&$X!==null){foreach((array)$kd[$y]as$q){if(count($kd[$y])==1||end($q["source"])==$y){$A="";foreach($q["source"]as$t=>$Oh)$A
.=where_link($t,$q["target"][$t],$L[$nf][$Oh]);$A=($q["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\1'.urlencode($q["db"]),ME):ME).'select='.urlencode($q["table"]).$A;if($q["ns"])$A=preg_replace('~([?&]ns=)[^&]+~','\1'.urlencode($q["ns"]),$A);if(count($q["source"])==1)break;}}}if($y=="COUNT(*)"){$A=ME."select=".urlencode($a);$t=0;foreach((array)$_GET["where"]as$W){if(!array_key_exists($W["col"],$aj))$A
.=where_link($t++,$W["col"],$W["val"],$W["op"]);}foreach($aj
as$se=>$W)$A
.=where_link($t++,$se,$W);}$Nd=select_value($X,$A,$n,$yi);$u=h("val[$bj][".bracket_escape($y)."]");$Cg=idx(idx($_POST["val"],$bj),bracket_escape($y));$qc=!is_array($K[$y])&&is_utf8($Nd)&&$L[$nf][$y]==$K[$y]&&!$qd[$y]&&!$n["generated"];$wi=preg_match('~text|json|lob~',$n["type"]);echo"<td id='$u'".(preg_match(number_type(),$n["type"])&&($X===null||is_numeric(strip_tags($Nd)))?" class='number'":"");if(($_GET["modify"]&&$qc&&$X!==null)||$Cg!==null){$_d=h($Cg!==null?$Cg:$K[$y]);echo">".($wi?"<textarea name='$u' cols='30' rows='".(substr_count($K[$y],"\n")+1)."'>$_d</textarea>":"<input name='$u' value='$_d' size='$Ge[$y]'>");}else{$Me=strpos($Nd,"<i>…</i>");echo" data-text='".($Me?2:($wi?1:0))."'".($qc?"":" data-warning='".h(lang(267))."'").">$Nd";}}}if($Ga)echo"<td>";adminer()->backwardKeysPrint($Ga,$L[$nf]);echo"</tr>\n";}if(is_ajax())exit;echo"</table>\n","</div>\n";}if(!is_ajax()){if($L||$E){$Ic=true;if($_GET["page"]!="last"){if(!$_||(count($L)<$_&&($L||!$E)))$nd=($E?$E*$_:0)+count($L);elseif(JUSH!="sql"||!$me){$nd=($me?false:found_rows($S,$Z));if(intval($nd)<max(1e4,2*($E+1)*$_))$nd=first(slow_query(count_rows($a,$Z,$me,$vd)));else$Ic=false;}}$hg=($_&&($nd===false||$nd>$_||$E));if($hg)echo(($nd===false?count($L)+1:$nd-$E*$_)>$_?'<p><a href="'.h(remove_from_uri("page")."&page=".($E+1)).'" class="loadmore">'.lang(268).'</a>'.script("qsl('a').onclick = partial(selectLoadMore, $_, '".lang(269)."…');",""):''),"\n";echo"<div class='footer'><div>\n";if($hg){$Ue=($nd===false?$E+(count($L)>=$_?2:1):floor(($nd-1)/$_));echo"<fieldset>";if(JUSH!="simpledb"){echo"<legend><a href='".h(remove_from_uri("page"))."'>".lang(270)."</a></legend>",script("qsl('a').onclick = function () { pageClick(this.href, +prompt('".lang(270)."', '".($E+1)."')); return false; };"),pagination(0,$E).($E>5?" …":"");for($t=max(1,$E-4);$t<min($Ue,$E+5);$t++)echo
pagination($t,$E);if($Ue>0)echo($E+5<$Ue?" …":""),($Ic&&$nd!==false?pagination($Ue,$E):" <a href='".h(remove_from_uri("page")."&page=last")."' title='~$Ue'>".lang(271)."</a>");}else
echo"<legend>".lang(270)."</legend>",pagination(0,$E).($E>1?" …":""),($E?pagination($E,$E):""),($Ue>$E?pagination($E+1,$E).($Ue>$E+1?" …":""):"");echo"</fieldset>\n";}echo"<fieldset>","<legend>".lang(272)."</legend>";$ec=($Ic?"":"~ ").$nd;$Kf="const checked = formChecked(this, /check/); selectCount('selected', this.checked ? '$ec' : checked); selectCount('selected2', this.checked || !checked ? '$ec' : checked);";echo
checkbox("all",1,0,($nd!==false?($Ic?"":"~ ").lang(155,$nd):""),$Kf)."\n","</fieldset>\n";if(adminer()->selectCommandPrint())echo'<fieldset',($_GET["modify"]?'':' class="jsonly"'),'><legend>',lang(264),'</legend><div>
<input type="submit" value="',lang(14),'"',($_GET["modify"]?'':' title="'.lang(260).'"'),'>
</div></fieldset>
<fieldset><legend>',lang(127),' <span id="selected"></span></legend><div>
<input type="submit" name="edit" value="',lang(10),'">
<input type="submit" name="clone" value="',lang(256),'">
<input type="submit" name="delete" value="',lang(18),'">',confirm(),'</div></fieldset>
';$ld=adminer()->dumpFormat();foreach((array)$_GET["columns"]as$d){if($d["fun"]){unset($ld['sql']);break;}}if($ld){print_fieldset("export",lang(72)." <span id='selected2'></span>");$eg=adminer()->dumpOutput();echo($eg?html_select("output",$eg,$pa["output"])." ":""),html_select("format",$ld,$pa["format"])," <input type='submit' name='export' value='".lang(72)."'>\n","</div></fieldset>\n";}adminer()->selectEmailPrint(array_filter($vc,'strlen'),$e);echo"</div></div>\n";}if(adminer()->selectImportPrint())echo"<p>","<a href='#import'>".lang(71)."</a>",script("qsl('a').onclick = partial(toggle, 'import');",""),"<span id='import'".($_POST["import"]?"":" class='hidden'").">: ","<input type='file' name='csv_file'> ",html_select("separator",array("csv"=>"CSV,","csv;"=>"CSV;","tsv"=>"TSV"),$pa["format"])," <input type='submit' name='import' value='".lang(71)."'>","</span>";echo
input_token(),"</form>\n",(!$vd&&$M?"":script("tableCheck();"));}}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["variables"])){$P=isset($_GET["status"]);page_header($P?lang(119):lang(118));$rj=($P?show_status():show_variables());if(!$rj)echo"<p class='message'>".lang(12)."\n";else{echo"<table>\n";foreach($rj
as$K){echo"<tr>";$y=array_shift($K);echo"<th><code class='jush-".JUSH.($P?"status":"set")."'>".h($y)."</code>";foreach($K
as$X)echo"<td>".nl_br(h($X));}echo"</table>\n";}}elseif(isset($_GET["script"])){header("Content-Type: text/javascript; charset=utf-8");if($_GET["script"]=="db"){$fi=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$C=>$S){json_row("Comment-$C",h($S["Comment"]));if(!is_view($S)){foreach(array("Engine","Collation")as$y)json_row("$y-$C",h($S[$y]));foreach($fi+array("Auto_increment"=>0,"Rows"=>0)as$y=>$X){if($S[$y]!=""){$X=format_number($S[$y]);if($X>=0)json_row("$y-$C",($y=="Rows"&&$X&&$S["Engine"]==(JUSH=="pgsql"?"table":"InnoDB")?"~ $X":$X));if(isset($fi[$y]))$fi[$y]+=($S["Engine"]!="InnoDB"||$y!="Data_free"?$S[$y]:0);}elseif(array_key_exists($y,$S))json_row("$y-$C","?");}}}foreach($fi
as$y=>$X)json_row("sum-$y",format_number($X));json_row("");}elseif($_GET["script"]=="kill")connection()->query("KILL ".number($_POST["kill"]));else{foreach(count_tables(adminer()->databases())as$k=>$X){json_row("tables-$k",$X);json_row("size-$k",db_size($k));}json_row("");}exit;}else{$qi=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($qi&&!$m&&!$_POST["search"]){$I=true;$bf="";if(JUSH=="sql"&&$_POST["tables"]&&count($_POST["tables"])>1&&($_POST["drop"]||$_POST["truncate"]||$_POST["copy"]))queries("SET foreign_key_checks = 0");if($_POST["truncate"]){if($_POST["tables"])$I=truncate_tables($_POST["tables"]);$bf=lang(273);}elseif($_POST["move"]){$I=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$bf=lang(274);}elseif($_POST["copy"]){$I=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$bf=lang(275);}elseif($_POST["drop"]){if($_POST["views"])$I=drop_views($_POST["views"]);if($I&&$_POST["tables"])$I=drop_tables($_POST["tables"]);$bf=lang(276);}elseif(JUSH=="sqlite"&&$_POST["check"]){foreach((array)$_POST["tables"]as$R){foreach(get_rows("PRAGMA integrity_check(".q($R).")")as$K)$bf
.="<b>".h($R)."</b>: ".h($K["integrity_check"])."<br>";}}elseif(JUSH!="sql"){$I=(JUSH=="sqlite"?queries("VACUUM"):apply_queries("VACUUM".($_POST["optimize"]?"":" ANALYZE"),$_POST["tables"]));$bf=lang(277);}elseif(!$_POST["tables"])$bf=lang(9);elseif($I=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('Adminer\idf_escape',$_POST["tables"])))){while($K=$I->fetch_assoc())$bf
.="<b>".h($K["Table"])."</b>: ".h($K["Msg_text"])."<br>";}queries_redirect(substr(ME,0,-1),$bf,$I);}page_header(($_GET["ns"]==""?lang(36).": ".h(DB):lang(75).": ".h($_GET["ns"])),$m,true);if(adminer()->homepage()){if($_GET["ns"]!==""){echo"<h3 id='tables-views'>".lang(278)."</h3>\n";$pi=tables_list();if(!$pi)echo"<p class='message'>".lang(9)."\n";else{echo"<form action='' method='post'>\n";if(support("table")){echo"<fieldset><legend>".lang(279)." <span id='selected2'></span></legend><div>","<input type='search' name='query' value='".h($_POST["query"])."'>",script("qsl('input').onkeydown = partialArg(bodyKeydown, 'search');","")," <input type='submit' name='search' value='".lang(55)."'>\n","</div></fieldset>\n";if($_POST["search"]&&$_POST["query"]!=""){$_GET["where"][0]["op"]=driver()->convertOperator("LIKE %%");search_tables();}}echo"<div class='scrollable'>\n","<table class='nowrap checkable odds'>\n",script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"),'<thead><tr class="wrap">','<td><input id="check-all" type="checkbox" class="jsonly">'.script("qs('#check-all').onclick = partial(formCheck, /^(tables|views)\[/);",""),'<th>'.lang(134),'<td>'.lang(280).doc_link(array('sql'=>'storage-engines.html')),'<td>'.lang(123).doc_link(array('sql'=>'charset-charsets.html','mariadb'=>'supported-character-sets-and-collations/')),'<td>'.lang(281).doc_link(array('sql'=>'show-table-status.html','pgsql'=>'functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT','oracle'=>'REFRN20286')),'<td>'.lang(282).doc_link(array('sql'=>'show-table-status.html','pgsql'=>'functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT')),'<td>'.lang(283).doc_link(array('sql'=>'show-table-status.html')),'<td>'.lang(50).doc_link(array('sql'=>'example-auto-increment.html','mariadb'=>'auto_increment/')),'<td>'.lang(284).doc_link(array('sql'=>'show-table-status.html','pgsql'=>'catalog-pg-class.html#CATALOG-PG-CLASS','oracle'=>'REFRN20286')),(support("comment")?'<td>'.lang(49).doc_link(array('sql'=>'show-table-status.html','pgsql'=>'functions-info.html#FUNCTIONS-INFO-COMMENT-TABLE')):''),"</thead>\n";$T=0;foreach($pi
as$C=>$U){$uj=($U!==null&&!preg_match('~table|sequence~i',$U));$u=h("Table-".$C);echo'<tr><td>'.checkbox(($uj?"views[]":"tables[]"),$C,in_array("$C",$qi,true),"","","",$u),'<th>'.(support("table")||support("indexes")?"<a href='".h(ME)."table=".urlencode($C)."' title='".lang(41)."' id='$u'>".h($C).'</a>':h($C));if($uj)echo'<td colspan="6"><a href="'.h(ME)."view=".urlencode($C).'" title="'.lang(42).'">'.(preg_match('~materialized~i',$U)?lang(132):lang(133)).'</a>','<td align="right"><a href="'.h(ME)."select=".urlencode($C).'" title="'.lang(40).'">?</a>';else{foreach(array("Engine"=>array(),"Collation"=>array(),"Data_length"=>array("create",lang(43)),"Index_length"=>array("indexes",lang(136)),"Data_free"=>array("edit",lang(44)),"Auto_increment"=>array("auto_increment=1&create",lang(43)),"Rows"=>array("select",lang(40)),)as$y=>$A){$u=" id='$y-".h($C)."'";echo($A?"<td align='right'>".(support("table")||$y=="Rows"||(support("indexes")&&$y!="Data_length")?"<a href='".h(ME."$A[0]=").urlencode($C)."'$u title='$A[1]'>?</a>":"<span$u>?</span>"):"<td id='$y-".h($C)."'>");}$T++;}echo(support("comment")?"<td id='Comment-".h($C)."'>":""),"\n";}echo"<tr><td><th>".lang(257,count($pi)),"<td>".h(JUSH=="sql"?get_val("SELECT @@default_storage_engine"):""),"<td>".h(db_collation(DB,collations()));foreach(array("Data_length","Index_length","Data_free")as$y)echo"<td align='right' id='sum-$y'>";echo"\n","</table>\n","</div>\n";if(!information_schema(DB)){echo"<div class='footer'><div>\n";$oj="<input type='submit' value='".lang(285)."'> ".on_help("'VACUUM'");$Nf="<input type='submit' name='optimize' value='".lang(286)."'> ".on_help(JUSH=="sql"?"'OPTIMIZE TABLE'":"'VACUUM OPTIMIZE'");echo"<fieldset><legend>".lang(127)." <span id='selected'></span></legend><div>".(JUSH=="sqlite"?$oj."<input type='submit' name='check' value='".lang(287)."'> ".on_help("'PRAGMA integrity_check'"):(JUSH=="pgsql"?$oj.$Nf:(JUSH=="sql"?"<input type='submit' value='".lang(288)."'> ".on_help("'ANALYZE TABLE'").$Nf."<input type='submit' name='check' value='".lang(287)."'> ".on_help("'CHECK TABLE'")."<input type='submit' name='repair' value='".lang(289)."'> ".on_help("'REPAIR TABLE'"):"")))."<input type='submit' name='truncate' value='".lang(290)."'> ".on_help(JUSH=="sqlite"?"'DELETE'":"'TRUNCATE".(JUSH=="pgsql"?"'":" TABLE'")).confirm()."<input type='submit' name='drop' value='".lang(128)."'>".on_help("'DROP TABLE'").confirm()."\n";$j=(support("scheme")?adminer()->schemas():adminer()->databases());if(count($j)!=1&&JUSH!="sqlite"){$k=(isset($_POST["target"])?$_POST["target"]:(support("scheme")?$_GET["ns"]:DB));echo"<p><label>".lang(291).": ",($j?html_select("target",$j,$k):'<input name="target" value="'.h($k).'" autocapitalize="off">'),"</label> <input type='submit' name='move' value='".lang(292)."'>",(support("copy")?" <input type='submit' name='copy' value='".lang(293)."'> ".checkbox("overwrite",1,$_POST["overwrite"],lang(294)):""),"\n";}echo"<input type='hidden' name='all' value=''>",script("qsl('input').onclick = function () { selectCount('selected', formChecked(this, /^(tables|views)\[/));".(support("table")?" selectCount('selected2', formChecked(this, /^tables\[/) || $T);":"")." }"),input_token(),"</div></fieldset>\n","</div></div>\n";}echo"</form>\n",script("tableCheck();");}echo"<p class='links'><a href='".h(ME)."create='>".lang(73)."</a>\n",(support("view")?"<a href='".h(ME)."view='>".lang(210)."</a>\n":"");if(support("routine")){echo"<h3 id='routines'>".lang(148)."</h3>\n";$mh=routines();if($mh){echo"<table class='odds'>\n",'<thead><tr><th>'.lang(189).'<td>'.lang(48).'<td>'.lang(227)."<td></thead>\n";foreach($mh
as$K){$C=($K["SPECIFIC_NAME"]==$K["ROUTINE_NAME"]?"":"&name=".urlencode($K["ROUTINE_NAME"]));echo'<tr>','<th><a href="'.h(ME.($K["ROUTINE_TYPE"]!="PROCEDURE"?'callf=':'call=').urlencode($K["SPECIFIC_NAME"]).$C).'">'.h($K["ROUTINE_NAME"]).'</a>','<td>'.h($K["ROUTINE_TYPE"]),'<td>'.h($K["DTD_IDENTIFIER"]),'<td><a href="'.h(ME.($K["ROUTINE_TYPE"]!="PROCEDURE"?'function=':'procedure=').urlencode($K["SPECIFIC_NAME"]).$C).'">'.lang(139)."</a>";}echo"</table>\n";}echo'<p class="links">'.(support("procedure")?'<a href="'.h(ME).'procedure=">'.lang(226).'</a>':'').'<a href="'.h(ME).'function=">'.lang(225)."</a>\n";}if(support("sequence")){echo"<h3 id='sequences'>".lang(295)."</h3>\n";$Dh=get_vals("SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = current_schema() ORDER BY sequence_name");if($Dh){echo"<table class='odds'>\n","<thead><tr><th>".lang(189)."</thead>\n";foreach($Dh
as$X)echo"<tr><th><a href='".h(ME)."sequence=".urlencode($X)."'>".h($X)."</a>\n";echo"</table>\n";}echo"<p class='links'><a href='".h(ME)."sequence='>".lang(232)."</a>\n";}if(support("type")){echo"<h3 id='user-types'>".lang(31)."</h3>\n";$mj=types();if($mj){echo"<table class='odds'>\n","<thead><tr><th>".lang(189)."</thead>\n";foreach($mj
as$X)echo"<tr><th><a href='".h(ME)."type=".urlencode($X)."'>".h($X)."</a>\n";echo"</table>\n";}echo"<p class='links'><a href='".h(ME)."type='>".lang(236)."</a>\n";}if(support("event")){echo"<h3 id='events'>".lang(149)."</h3>\n";$L=get_rows("SHOW EVENTS");if($L){echo"<table>\n","<thead><tr><th>".lang(189)."<td>".lang(296)."<td>".lang(216)."<td>".lang(217)."<td></thead>\n";foreach($L
as$K)echo"<tr>","<th>".h($K["Name"]),"<td>".($K["Execute at"]?lang(297)."<td>".$K["Execute at"]:lang(218)." ".$K["Interval value"]." ".$K["Interval field"]."<td>$K[Starts]"),"<td>$K[Ends]",'<td><a href="'.h(ME).'event='.urlencode($K["Name"]).'">'.lang(139).'</a>';echo"</table>\n";$Gc=get_val("SELECT @@event_scheduler");if($Gc&&$Gc!="ON")echo"<p class='error'><code class='jush-sqlset'>event_scheduler</code>: ".h($Gc)."\n";}echo'<p class="links"><a href="'.h(ME).'event=">'.lang(215)."</a>\n";}if($pi)echo
script("ajaxSetHtml('".js_escape(ME)."script=db');");}}}page_footer();
Hacked By AnonymousFox1.0, Coded By AnonymousFox