1
0
inception/srcs/docker/bonus/adminer/adminer-4.17.1-mysql.php

909 lines
368 KiB
PHP
Raw Permalink Normal View History

<?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 4.17.1
*/$fa="4.17.1";function
adminer_errors($jc,$lc){return!!preg_match('~^(Trying to access array offset on( value of type)? null|Undefined (array key|property))~',$lc);}error_reporting(6135);set_error_handler('adminer_errors',E_WARNING);$Cc=!preg_match('~^(unsafe_raw)?$~',ini_get("filter.default"));if($Cc||ini_get("filter.default_flags")){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$X){$sh=filter_input_array(constant("INPUT$X"),FILTER_UNSAFE_RAW);if($sh)$$X=$sh;}}if(function_exists("mb_internal_encoding"))mb_internal_encoding("8bit");function
connection(){global$g;return$g;}function
adminer(){global$c;return$c;}function
version(){global$fa;return$fa;}function
idf_unescape($v){if(!preg_match('~^[`\'"[]~',$v))return$v;$Fd=substr($v,-1);return
str_replace($Fd.$Fd,$Fd,substr($v,1,-1));}function
escape_string($X){return
substr(q($X),1,-1);}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($vf,$Cc=false){if(function_exists("get_magic_quotes_gpc")&&get_magic_quotes_gpc()){while(list($z,$X)=each($vf)){foreach($X
as$yd=>$W){unset($vf[$z][$yd]);if(is_array($W)){$vf[$z][stripslashes($yd)]=$W;$vf[]=&$vf[$z][stripslashes($yd)];}else$vf[$z][stripslashes($yd)]=($Cc?$W:stripslashes($W));}}}}function
bracket_escape($v,$Aa=false){static$fh=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return
strtr($v,($Aa?array_flip($fh):$fh));}function
min_version($Gh,$Sd="",$h=null){global$g;if(!$h)$h=$g;$dg=$h->server_info;if($Sd&&preg_match('~([\d.]+)-MariaDB~',$dg,$C)){$dg=$C[1];$Gh=$Sd;}return$Gh&&version_compare($dg,$Gh)>=0;}function
charset($g){return(min_version("5.5.3",0,$g)?"utf8mb4":"utf8");}function
script($ng,$eh="\n"){return"<script".nonce().">$ng</script>$eh";}function
script_src($xh){return"<script src='".h($xh)."'".nonce()."></script>\n";}function
nonce(){return' nonce="'.get_nonce().'"';}function
target_blank(){return' target="_blank" rel="noreferrer noopener"';}function
h($yg){return
str_replace("\0","&#0;",htmlspecialchars($yg,ENT_QUOTES,'utf-8'));}function
nl_br($yg){return
str_replace("\n","<br>",$yg);}function
checkbox($E,$Y,$Ra,$Bd="",$Ce="",$Va="",$Cd=""){$K="<input type='checkbox' name='$E' value='".h($Y)."'".($Ra?" checked":"").($Cd?" aria-labelledby='$Cd'":"").">".($Ce?script("qsl('input').onclick = function () { $Ce };",""):"");return($Bd!=""||$Va?"<label".($Va?" class='$Va'":"").">$K".h($Bd)."</label>":$K);}function
optionlist($Ge,$Yf=null,$Ah=false){$K="";foreach($Ge
as$yd=>$W){$He=array($yd=>$W);if(is_array($W)){$K.='<optgroup label="'.h($yd).'">';$He=$W;}foreach($He
as$z=>$X)$K.='<option'.($Ah||is_string($z)?' value="'.h($z).'"':'').($Yf!==null&&($Ah||is_string($z)?(string)$z:$X)===$Yf?' selected':'').'>'.h($X);if(is_array($W))$K.='</optgroup>';}return$K;}function
html_select($E,$Ge,$Y="",$Be=true,$Cd=""){if($Be)return"<select name='".h($E)."'".($Cd?" aria-labelledby='$Cd'":"").">".optionlist($Ge,$Y)."</select>".(is_string($Be)?script("qsl('select').onchange = function () { $Be };",""):"");$K="";foreach($Ge
as$z=>$X)$K.="<label><input type='radio' name='".h($E)."' value='".h($z)."'".($z==$Y?" checked":"").">".h($X)."</label>";return$K;}function
confirm($D="",$Zf="qsl('input')"){return
script("$Zf.onclick = function () { return confirm('".($D?js_escape($D):lang(0))."'); };","");}function
print_fieldset($u,$Kd,$Jh=false){echo"<fieldset><legend>","<a href='#fieldset-$u'>$Kd</a>",script("qsl('a').onclick = partial(toggle, 'fieldset-$u');",""),"</legend>","<div id='fieldset-$u'".($Jh?"":" class='hidden'").">\n";}function
bold($Ha,$Va=""){return($Ha?" class='active $Va'":($Va?" class='$Va'":""));}function
js_escape($yg){return
addcslashes($yg,"\r\n'\\/");}function
ini_bool($md){$X=ini_get($md);return(preg_match('~^(on|true|yes)$~i',$X)||(int)$X);}function
sid(){static$K;if($K===null)$K=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$K;}function
set_password($Fh,$O,$V,$df){$_SESSION["pwds"][$Fh][$O][$V]=($_COOKIE["adminer_key"]&&is_string($df)?array(encrypt_string($df,$_COOKIE["adminer_key"])):$df);}function
get_password(){$K=get_session("pwds");if(is_array($K))$K=($_COOKIE["adminer_key"]?decrypt_string($K[0],$_COOKIE["adminer_key"]):false);return$K;}function
q($yg){global$g;return$g->quote($yg);}function
get_vals($I,$d=0){global$g;$K=array();$J=$g->query($I);if(is_object($J)){while($L=$J->fetch_row())$K[]=$L[$d];}return$K;}function
get_key_vals($I,$h=null,$gg=true){global$g;if(!is_object($h))$h=$g;$K=array();$J=$h->query($I);if(is_object($J)){while($L=$J->fetch_row()){if($gg)$K[$L[0]]=$L[1];else$K[]=$L[0];}}return$K;}function
get_rows($I,$h=null,$m="<p class='error'>"){global$g;$kb=(is_object($h)?$h:$g);$K=array();$J=$kb->query($I);if(is_object($J)){while($L=$J->fetch_assoc())$K[]=$L;}elseif(!$J&&!is_object($h)&&$m&&(defined("PAGE_HEADER")||$m=="-- "))echo$m.error()."\n";return$K;}function
unique_array($L,$x){foreach($x
as$w){if(preg_match("~PRIMARY|UNIQUE~",$w["type"])){$K=array();foreach($w["columns"]as$z){if(!isset($L[$z]))continue
2;$K[$z]=$L[$z];}return$K;}}}function
escape_key($z){if(preg_match('(^([\w(]+)('.str_replace("_",".*",preg_quote(idf_escape("_"))).')([ \w)]+)$)',$z,$C))return$C[1].idf_escape(idf_unescape($C[2])).$C[3];return
idf_escape($z);}function
where($Z,$o=array()){global$g,$y;$K=array();foreach((array)$Z["where"]as$z=>$X){$z=bracket_escape($z,1);$d=escape_key($z);$K[]=$d.($y=="sql"&&$o[$z]["type"]=="json"?" = CAST(".q($X)." AS JSON)":($y=="sql"&&is_numeric($X)&&preg_match('~\.~',$X)?" LIKE ".q($X):($y=="mssql"?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$X)):" = ".unconvert_field($o[$z],q($X)))));if($y=="sql"&&preg_match('~char|text~',$o[$z]["type"])&&preg_match("~[^ -@]~",$X))$K[]="$d = ".q($X)." COLLATE ".charset($g)."_bin";}foreach((array)$Z["null"]as$z)$K[]=escape_key($z)." IS NULL";return
implode(" AND ",$K);}function
where_check($X,$o=array()){parse_str($X,$Pa);remove_slashes(array(&$Pa));return
where($Pa,$o);}function
where_link($t,$d,$Y,$De="="){return"&where%5B$t%5D%5Bcol%5D=".urlencode($d)."&where%5B$t%5D%5Bop%5D=".urlencode(($Y!==null?$De:"IS NULL"))."&where%5B$t%5D%5Bval%5D=".urlencode($Y);}function
convert_fields($e,$o,$N=array()){$K="";foreach($e
as$z=>$X){if($N&&!in_array(idf_escape($z),$N))continue;$va=convert_field($o[$z]);if($va)$K.=", $va AS ".idf_escape($z);}return$K;}function
cookie($E,$Y,$Nd=2592000){global$ba;return
header("Set-Cookie: $E=".urlencode($Y).($Nd?"; expires=".gmdate("D, d M Y H:i:s",time()+$Nd)." GMT":"")."; path=".preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]).($ba?"; secure":"")."; HttpOnly; SameSite=lax",false);}function
restart_session(){if(!ini_bool("session.use_cookies"))session_start();}function
stop_session($Gc=false){$_h=ini_bool("session.use_cookies");if(!$_h||$Gc){session_write_close();if($_h&&@ini_set("session.use_cookies",false)===false)session_start();}}function&get_session($z){return$_SESSION[$z][DRIVER][SERVER][$_GET["username"]];}function
set_session($z,$X){$_SESSION[$z][DRIVER][SERVER][$_GET["username"]]=$X;}function
auth_url($Fh,$O,$V,$k=null){global$Qb;preg_match('~([^?]*)\??(.*)~',remove_from_uri(implode("|",array_keys($Qb))."|username|".($k!==null?"db|":"").session_name()),$C);return"$C[1]?".(sid()?SID."&":"").($Fh!="server"||$O!=""?urlencode($Fh)."=".urlencode($O)."&":"")."username=".urlencode($V).($k!=""?"&db=".urlencode($k):"").($C[2]?"&$C[2]":"");}function
is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
redirect($B,$D=null){if($D!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($B!==null?$B:$_SERVER["REQUEST_URI"]))][]=$D;}if($B!==null){if($B=="")$B=".";header("Location: $B");exit;}}function
query_redirect($I,$B,$D,$Cf=true,$qc=true,$xc=false,$Tg=""){global$g,$m,$c;if($qc){$ug=microtime(true);$xc=!$g->query($I);$Tg=format_time($ug);}$pg="";if($I)$pg=$c->messageQuery($I,$Tg,$xc);if($xc){$m=error().$pg.script("messagesPrint();");return
false;}if($Cf)redirect($B,$D.$pg);return
true;}function
queries($I){global$g;static$yf=array();static$ug;if(!$ug)$ug=microtime(true);if($I===null)return
array(implode("\n",$yf),format_time($ug));$yf[]=(preg_match('~;$~',$I)?"DELIMITER ;;\n$I;\nDELIMITER ":$I).";";return$g->query($I);}function
apply_queries($I,$S,$mc='table'){foreach($S
as$Q){if(!queries("$I ".$mc($Q)))return
false;}return
true;}function
queries_redirect($B,$D,$Cf){list($yf,$Tg)=queries(null);return
query_redirect($yf,$B,$D,$Cf,false,!$Cf,$Tg);}function
format_time($ug){return
lang(1,max(0,microtime(true)-$ug));}function
relative_uri(){return
str_replace(":","%3a",preg_replace('~^[^?]*/([^?]*)~','\1',$_SERVER["REQUEST_URI"]));}function
remove_from_uri($Ve=""){return
substr(preg_replace("~(?<=[?&])($Ve".(SID?"":"|".session_name()).")=[^&]*&~",'',relative_uri()."&"),0,-1);}function
pagination($G,$vb){return" ".($G==$vb?$G+1:'<a href="'.h(remove_from_uri("page").($G?"&page=$G".($_GET["next"]?"&next=".urlencode($_GET["next"]):""):"")).'">'.($G+1)."</a>");}function
get_file($z,$Cb=false){$Ac=$_FILES[$z];if(!$Ac)return
null;foreach($Ac
as$z=>$X)$Ac[$z]=(array)$X;$K='';foreach($Ac["error"]as$z=>$m){if($m)return$m;$E=$Ac["name"][$z];$bh=$Ac["tmp_name"][$z];$lb=file_get_contents($Cb&&preg_match('~\.gz$~',$E)?"compress.zlib://$bh":$bh);if($Cb){$ug=substr($lb,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$ug,$If))$lb=iconv("utf-16","utf-8",$lb);elseif($ug=="\xEF\xBB\xBF")$lb=substr($lb,3);$K.=$lb."\n\n";}else$K.=$lb;}return$K;}function
upload_error($m){$Yd=($m==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($m?lang(2).($Yd?" ".lang(3,$Yd):""):lang(4));}function
repeat_pattern($ff,$Ld){return
str_repeat("$ff{0,65535}",$Ld/65535)."$ff{0,".($Ld%65535)."}";}function
is_utf8($X){return(preg_match('~~u',$X)&&!preg_match('~[\0-\x8\xB\xC\xE-\x1F]~',$X));}function
shorten_utf8($yg,$Ld=80,$Bg=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{10FFFF}]",$Ld).")($)?)u",$yg,$C))preg_match("(^(".repeat_pattern("[\t\r\n -~]",$Ld).")($)?)",$yg,$C);return
h($C[1]).$Bg.(isset($C[2])?"":"<i>…</i>");}function
format_number($X){return
strtr(number_format($X,0,".",lang(5)),preg_split('~~u',lang(6),-1,PREG_SPLIT_NO_EMPTY));}function
friendly_url($X){return
preg_replace('~[^a-z0-9_]~i','-',$X);}function
hidden_fields($vf,$hd=array(),$of=''){$K=false;foreach($vf
as$z=>$X){if(!in_array($z,$hd)){if(is_array($X))hidden_fields($X,array(),$z);else{$K=true;echo'<input type="hidden" name="'.h($of?$of."[$z]":$z).'" value="'.h($X).'">';}}}return$K;}function
hidden_fields_get(){echo(sid()?'<input type="hidden" name="'.session_name().'" value="'.h(session_id()).'">':''),(SERVER!==null?'<input type="hidden" name="'.DRIVER.'" value="'.h(SERVER).'">':""),'<input type="hidden" name="username" value="'.h($_GET["username"]).'">';}function
table_status1($Q,$yc=false){$K=table_status($Q,$yc);return($K?$K:array("Name"=>$Q));}function
column_foreign_keys($Q){global$c;$K=array();foreach($c->foreignKeys($Q)as$p){foreach($p["source"]as$X)$K[$X][]=$p;}return$K;}function
enum_input($U,$xa,$n,$Y,$ec=null){global$c,$y;preg_match_all("~'((?:[^']|'')*)'~",$n["length"],$Td);$K=($ec!==null?"<label><input type='$U'$xa value='$ec'".((is_array($Y)?in_array($ec,$Y):$Y===0)?" checked":"")."><i>".lang(7)."</i></label>":"");foreach($Td[1]as$t=>$X){$X=stripcslashes(str_replace("''","'",$X));$Ra=(is_int($Y)?$Y==$t+1:(is_array($Y)?in_array($t+1,$Y):$Y===$X));$K.=" <label><input type='$U'$xa value='".($y=="sql"?$t+1:h($X))."'".($Ra?' checked':'').'>'.h($c->editVal($X,$n)).'</label>';}return$K;}function
input($n,$Y,$r){global$nh,$zg,$c,$y;$E=h(bracket_escape($n["field"]));echo"<td class='function'>";if(is_array($Y)&&!$r){$ua=array($Y);if(version_compare(PHP_VERSION,5.4)>=0)$ua[]=JSON_PRETTY_PRINT;$Y=call_user_func_array('json_encode',$ua);$r="json";}$Kf=($y=="mssql"&&$n["auto_increment"]);if($Kf&&!$_POST["save"])$r=null;$Oc=(isset($_GET["select"])||$Kf?array("orig"=>lang(8)):array())+$c->editFunctions($n);$Mb=stripos($n["default"],"GENERATED ALWAYS AS ")===0?" disabled=''":"";$xa=" name='fields[$E]'$Mb";if($y=="pgsql"&&in_array($n["type"],(array)$zg[lang(9)])){$ic=get_vals("SELECT enumlabel FROM pg_enum WHERE enumtypid = ".$nh[$n["type"]]." ORDER BY enumsortorder");if($ic){$n["type"]="enum";$n["length"]="'".implode("','",array_map('addslashes',$ic))."'";}}if($n["type"]=="enum")echo
h($Oc[""])."<td>".$c->editInput($_GET["edit"],$n,$xa,$Y);else{$Yc=(in_array($r,$Oc)||isset($Oc[$r]));echo(count($Oc)>1?"<select name='function[$E]'$Mb>".optionlist($Oc,$r===null||$Yc?$r:"")."</select>".on_help("getTarget(event).value.replace(/^SQL\$/, '')",1).script("qsl('select').onchange = functionChange;",""):h(reset($Oc))).'<td>';$od=$c->editInput($_GET["edit"],$n,$xa,$Y);if($od!="")echo$od;elseif(preg_match('~bool~',$n["type"]))echo"<input type='hidden'$xa value='0'>"."<input type='checkbox'".(preg_match('~^(1|t|true|y|yes|on)$~i',$Y)?" checked='checked'":"")."$xa value='1'>";elseif($n["type"]=="set"){preg_match_all("~'((?:[^']|'')*)'~",$n["length"],$Td);foreach($Td[1]as$t=>$X){$X=stripcslashes(str_replace("''","'",$X));$Ra=(is_int($Y)?($Y>>$t)&1:in_array($X,explode(",",$Y),true));echo" <label><input type='checkbox' name='fields[$E][$t]' value='".(1<<$t)."'".($Ra?' checked':'').">".h($c->editVal($X,$n)).'</label>';}}elseif(preg_match('~blob|bytea|raw|file~',$n["type"])&&ini_bool("file_uploads"))echo"<input type='file' name='fields-$E'>";elseif(($Rg=preg_match('~text|lob|memo~i',$n["type"]))||preg_match("~\n~",$Y)){if($Rg&&$y!="sqlite")$xa.=" cols='50' rows='12'";else{$M=min(12,substr_count($Y,"\n")+1);$xa.=" cols='30' rows='$M'".($M==1?" style='height: 1.2em;'":"");}echo"<textarea$xa>".h($Y).'</textarea>';}elseif($r=="json"||preg_match('~^jsonb?$~',$n["type"]))echo"<textarea$xa cols='50' rows='12' class='jush-js'>".h($Y).'</textarea>';else{$ae=(!preg_match('~int~',$n["type"])&&preg_match('~^(\d+)(,(\d+))?$~',$n["length"],$C)?((preg_match("~binary~",$n["type"])?2:1)*$C[1]+($C[3]?1:0)+($C[2]&&!$n["unsigned"]?1:0)):($nh[$n["type"]]?$nh[$n["type"]]+($n["unsigned"]?0:1):0));if($y=='sql'&&min_version(5.6)&&preg_match('~time~',$n["type"]))$ae+=7;echo"<input".((!$Yc||$r==="")&&preg_match('~(?<!o)int(?!er)~',$n["type"])&&!preg_match('~\[\]~',$n["full_type"])?" type='number'":"")." value='".h($Y)."'".($ae?" data-maxlength='$ae'":"").(preg_match('~char|binary~',$n["type"])&&$ae>20?" size='40'":"")."$xa>";}echo$c->editHint($_GET["edit"],$n,$Y);$Dc=0;foreach($Oc
as$z=>$X){if($z===""||!$X)break;$Dc++;}if($Dc)echo
script("mixin(qsl('td'), {onchange: partial(skipOriginal, $Dc), oninput: function () { this.onchange(); }});");}}function
process_input($n){global$c,$l;if(stripos($n["default"],"GENERATED ALWAYS AS ")===0)return
null;$v=bracket_escape($n["field"]);$r=$_POST["function"][$v];$Y=$_POST["fields"][$v];if($n["type"]=="enum"){if($Y==-1)return
false;if($Y=="")return"NULL";return+$Y;}if($n["auto_increment"]&&$Y=="")return
null;if($r=="orig")return(preg_match('~^CURRENT_TIMESTAMP~i',$n["on_update"])?idf_escape($n["field"]):false);if($r=="NULL")return"NULL";if($n["type"]=="set")return
array_sum((array)$Y);if($r=="json"){$r="";$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")){$Ac=get_file("fields-$v");if(!is_string($Ac))return
false;return$l->quoteBinary($Ac);}return$c->processInput($n,$Y,$r);}function
fields_from_edit(){global$l;$K=array();foreach((array)$_POST["field_keys"]as$z=>$X){if($X!=""){$X=bracket_escape($X);$_POST["function"][$X]=$_POST["field_funs"][$z];$_POST["fields"][$X]=$_POST["field_vals"][$z];}}foreach((array)$_POST["fields"]as$z=>$X){$E=bracket_escape($z,1);$K[$E]=array("field"=>$E,"privileges"=>array("insert"=>1,"update"=>1),"null"=>1,"auto_increment"=>($z==$l->primary),);}return$K;}function
search_tables(){global$c,$g;$_GET["where"][0]["val"]=$_POST["query"];$bg="<ul>\n";foreach(table_status('',true)as$Q=>$R){$E=$c->tableName($R);if(isset($R["Engine"])&&$E!=""&&(!$_POST["tables"]||in_array($Q,$_POST["tables"]))){$J=$g->query("SELECT".limit("1 FROM ".table($Q)," WHERE ".implode(" AND ",$c->selectSearchProcess(fields($Q),array())),1));if(!$J||$J->fetch_row()){$rf="<a href='".h(ME."select=".urlencode($Q)."&where[0][op]=".urlencode($_GET["where"][0]["op"])."&where[0][val]=".urlencode($_GET["where"][0]["val"]))."'>$E</a>";echo"$bg<li>".($J?$rf:"<p class='error'>$rf: ".error())."\n";$bg="";}}}echo($bg?"<p class='message'>".lang(10):"</ul>")."\n";}function
dump_headers($gd,$ie=false){global$c;$K=$c->dumpHeaders($gd,$ie);$Se=$_POST["output"];if($Se!="text")header("Content-Disposition: attachment; filename=".$c->dumpFilename($gd).".$K".($Se!="file"&&preg_match('~^[0-9a-z]+$~',$Se)?".$Se":""));session_write_close();ob_flush();flush();return$K;}function
dump_csv($L){foreach($L
as$z=>$X){if(preg_match('~["\n,;\t]|^0|\.\d*0$~',$X)||$X==="")$L[$z]='"'.str_replace('"','""',$X).'"';}echo
implode(($_POST["format"]=="csv"?",":($_POST["format"]=="tsv"?"\t":";")),$L)."\r\n";}function
apply_sql_function($r,$d){return($r?($r=="unixepoch"?"DATETIME($d, '$r')":($r=="count distinct"?"COUNT(DISTINCT ":strtoupper("$r("))."$d)"):$d);}function
get_temp_dir(){$K=ini_get("upload_tmp_dir");if(!$K){if(function_exists('sys_get_temp_dir'))$K=sys_get_temp_dir();else{$Bc=@tempnam("","");if(!$Bc)return
false;$K=dirname($Bc);unlink($Bc);}}return$K;}function
file_open_lock($Bc){$q=@fopen($Bc,"r+");if(!$q){$q=@fopen($Bc,"w");if(!$q)return;chmod($Bc,0660);}flock($q,LOCK_EX);return$q;}function
file_write_unlock($q,$xb){rewind($q);fwrite($q,$xb);ftruncate($q,strlen($xb));flock($q,LOCK_UN);fclose($q);}function
password_file($i){$Bc=get_temp_dir()."/adminer.key";$K=@file_get_contents($Bc);if($K||!$i)return$K;$q=@fopen($Bc,"w");if($q){chmod($Bc,0660);$K=rand_string();fwrite($q,$K);fclose($q);}return$K;}function
rand_string(){return
md5(uniqid(mt_rand(),true));}function
select_value($X,$A,$n,$Sg){global$c;if(is_array($X)){$K="";foreach($X
as$yd=>$W)$K.="<tr>".($X!=array_values($X)?"<th>".h($yd):"")."<td>".select_value($W,$A,$n,$Sg);return"<table>$K</table>";}if(!$A)$A=$c->selectLink($X,$n);if($A===null){if(is_mail($X))$A="mailto:$X";if(is_url($X))$A=$X;}$K=$c->editVal($X,$n);if($K!==null){if(!is_utf8($K))$K="\0";elseif($Sg!=""&&is_shortable($n))$K=shorten_utf8($K,max(0,+$Sg));else$K=h($K);}return$c->selectVal($K,$A,$n,$X);}function
is_mail($bc){$wa='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$Pb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$ff="$wa+(\\.$wa+)*@($Pb?\\.)+$Pb";return
is_string($bc)&&preg_match("(^$ff(,\\s*$ff)*\$)i",$bc);}function
is_url($yg){$Pb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return
preg_match("~^(https?)://($Pb?\\.)+$Pb(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$yg);}function
is_shortable($n){return
preg_match('~char|text|json|lob|geometry|point|linestring|polygon|string|bytea~',$n["type"]);}function
count_rows($Q,$Z,$ud,$s){global$y;$I=" FROM ".table($Q).($Z?" WHERE ".implode(" AND ",$Z):"");return($ud&&($y=="sql"||count($s)==1)?"SELECT COUNT(DISTINCT ".implode(", ",$s).")$I":"SELECT COUNT(*)".($ud?" FROM (SELECT 1$I GROUP BY ".implode(", ",$s).") x":$I));}function
slow_query($I){global$c,$T,$l;$k=$c->database();$Ug=$c->queryTimeout();$lg=$l->slowQuery($I,$Ug);if(!$lg&&support("kill")&&is_object($h=connect())&&($k==""||$h->select_db($k))){$_d=$h->result(connection_id());echo'<script',nonce(),'>
var timeout = setTimeout(function () {
ajax(\'',js_escape(ME),'script=kill\', function () {
}, \'kill=',$_d,'&token=',$T,'\');
}, ',1000*$Ug,');
</script>
';}else$h=null;ob_flush();flush();$K=@get_key_vals(($lg?$lg:$I),$h,false);if($h){echo
script("clearTimeout(timeout);");ob_flush();flush();}return$K;}function
get_token(){$Af=rand(1,1e6);return($Af^$_SESSION["token"]).":$Af";}function
verify_token(){list($T,$Af)=explode(":",$_POST["token"]);return($Af^$_SESSION["token"])==$T;}function
lzw_decompress($Ea){$Lb=256;$Fa=8;$Xa=array();$Lf=0;$Mf=0;for($t=0;$t<strlen($Ea);$t++){$Lf=($Lf<<8)+ord($Ea[$t]);$Mf+=8;if($Mf>=$Fa){$Mf-=$Fa;$Xa[]=$Lf>>$Mf;$Lf&=(1<<$Mf)-1;$Lb++;if($Lb>>$Fa)$Fa++;}}$Kb=range("\0","\xFF");$K="";foreach($Xa
as$t=>$Wa){$ac=$Kb[$Wa];if(!isset($ac))$ac=$Ph.$Ph[0];$K.=$ac;if($t)$Kb[]=$Ph.$ac[0];$Ph=$ac;}return$K;}function
on_help($db,$jg=0){return
script("mixin(qsl('select, input'), {onmouseover: function (event) { helpMouseover.call(this, event, $db, $jg) }, onmouseout: helpMouseout});","");}function
edit_form($Q,$o,$L,$vh){global$c,$y,$T,$m;$Gg=$c->tableName(table_status1($Q,true));page_header(($vh?lang(11):lang(12)),$m,array("select"=>array($Q,$Gg)),$Gg);$c->editRowPrint($Q,$o,$L,$vh);if($L===false){echo"<p class='error'>".lang(13)."\n";return;}echo'<form action="" method="post" enctype="multipart/form-data" id="form">
';if(!$o)echo"<p class='error'>".lang(14)."\n";else{echo"<table class='layout'>".script("qsl('table').onkeydown = editingKeydown;");foreach($o
as$E=>$n){echo"<tr><th>".$c->fieldName($n);$Db=$_GET["set"][bracket_escape($E)];if($Db===null){$Db=$n["default"];if($n["type"]=="bit"&&preg_match("~^b'([01]*)'\$~",$Db,$If))$Db=$If[1];}$Y=($L!==null?($L[$E]!=""&&$y=="sql"&&preg_match("~enum|set~",$n["type"])?(is_array($L[$E])?array_sum($L[$E]):+$L[$E]):(is_bool($L[$E])?+$L[$E]:$L[$E])):(!$vh&&$n["auto_increment"]?"":(isset($_GET["select"])?false:$Db)));if(!$_POST["save"]&&is_string($Y))$Y=$c->editVal($Y,$n);$r=($_POST["save"]?(string)$_POST["function"][$E]:($vh&&preg_match('~^CURRENT_TIMESTAMP~i',$n["on_update"])?"now":($Y===false?null:($Y!==null?'':'NULL'))));if(!$_POST&&!$vh&&$Y==$n["default"]&&preg_match('~^[\w.]+\(~',$Y))$r="SQL";if(preg_match("~time~",$n["type"])&&preg_match('~^CURRENT_TIMESTAMP~i',$Y)){$Y="";$r="now";}if($n["type"]=="uuid"&&$Y=="uuid()"){$Y="";$r="uuid";}input($n,$Y,$r);echo"\n";}if(!support("table"))echo"<tr>"."<th><input name='field_keys[]'>".script("qsl('input').oninput = fieldChange;")."<td class='function'>".html_select("field_funs[]",$c->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(15)."'>\n";if(!isset($_GET["select"])){echo"<input type='submit' name='insert' value='".($vh?lang(16):lang(17))."' title='Ctrl+Shift+Enter'>\n",($vh?script("qsl('input').onclick = function () { return !ajaxForm(this.form, '".lang(18)."…', this); };"):"");}}echo($vh?"<input type='submit' name='delete' value='".lang(19)."'>".confirm()."\n":($_POST||!$o?"":script("focus(qsa('td', qs('#form'))[1].firstChild);")));if(isset($_GET["select"]))hidden_fields(array("check"=>(array)$_POST["check"],"clone"=>$_POST["clone"],"all"=>$_POST["all"]));echo'<input type="hidden" name="referer" value="',h(isset($_POST["referer"])?$_POST["referer"]:$_SERVER["HTTP_REFERER"]),'">
<input type="hidden" name="save" value="1">
<input type="hidden" name="token" value="',$T,'">
</form>
';}if(isset($_GET["file"])){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");if($_GET["file"]=="favicon.ico"){header("Content-Type: image/x-icon");echo
lzw_decompress("\0\0\0` \0<EFBFBD>\0\n @\0<EFBFBD>C<><10>\"\0`E<>Q<EFBFBD><51><01><1F>?<3F>tvM'<27>Jd<4A>d\\<19>b0\0<08>\"<13><><66><D388>s5<73><35><EFBFBD><EFBFBD>A<EFBFBD>XPaJ<>0<18><><EFBFBD>8<>#R<>T<EFBFBD><54>z`<60>#.<2E><>c<EFBFBD>X<EFBFBD><58>Ȁ?<3F>-\0<05>Im?<3F>.<16>M<EFBFBD><16>\0ȯ<><1E>/(%<25>\0");}elseif($_GET["file"]=="default.css"){header("Content-Type: text/css; charset=utf-8");echo
lzw_decompress("\n1̇<>ٌ<EFBFBD>l7<6C><37>B1<42>4vb0<62><30>fs<66><73><EFBFBD>n2B<32>ѱ٘<D1B1>n:<0E>#(<28>b.\rDc)<29><>a7E<><13><><EFBFBD>l <0C>ñ<EFBFBD><C3B1>i1̎s<03><><EFBFBD>-4<><34>f<EFBFBD> <09><>i7<0E><14><><EFBFBD><EFBFBD>i2\r<03>1<EFBFBD><31>-<2D>H <0C><01><><EFBFBD><05><>GF#a<><61>;:O<15>!<21> r0<72><30><EFBFBD><EFBFBD>t~<7E>f<1D>':<3A><><EFBFBD>h<EFBFBD>B<EFBFBD>'c͔<63>:6T\rc<EFBFBD>A<EFBFBD>zrc<>XK<58>g+<2B><>Z<EFBFBD>Xk<58><6B><EFBFBD>v<EFBFBD><76>M7<4D><37><EFBFBD><EFBFBD><EFBFBD>7_<37>\"<EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD>{<EFBFBD><EFBFBD><EFBFBD>}<7D><><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>-4N<34>}:<3A>rf<72>K)<29>b{<EFBFBD>H(Ɠєt1<1A>)t<>}F<>p0<70> <0C>8<>\\82<EFBFBD>D<1F>><13><16>N<EFBFBD>Cy<43><79>8\0\0F<1C><08>><3E><><EFBFBD>(<28>3<EFBFBD> \n<EFBFBD>9)<29>`v<>-Ao\r<EFBFBD><EFBFBD><EFBFBD>&<26><><EFBFBD>X<EFBFBD><11><><EFBFBD><EFBFBD><05>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD><1A><>*A\0`A<>\0<05><>q\0oC<6F><43>=σ<><CF83>\r<EFBFBD><EFBFBD>\\<EFBFBD><EFBFBD>#{<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȍ<>2<1A><>R<18>;0dBHL+<0E>H<EFBFBD>,<2C>!oR<6F>><3E><01>N<EFBFBD>A<EFBFBD>|\"<EFBFBD><14>0<EFBFBD>Pb<19>Jd^<5E>ȑ<EFBFBD>d<EFBFBD><64>Р<EFBFBD>=<<3C><><EFBFBD>:J#<23> <0C>ڮ<EFBFBD><DAAE>a<EFBFBD>Б<><D091>><3E>Te<06>F<13>k<1B>j<EFBFBD>#<23>K6 #<23><>9<>ET<45><54>1K<31><4B>Ŵ<EFBFBD><C5B4>+C<>F<EFBFBD>I<EFBFBD> (<28><>L|<7C><><EFBFBD>jP<6A><50>pf<70><66>EuLQG<11><><EFBFBD>Z<EFBFBD><5A><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>Υ<EFBFBD>2<EFBFBD>!sk[:<3A>1<EFBFBD>k<EFBFBD><6B><1E>6%<25>Ypkf+W\rr<EFBFBD>L1<04><11><>\0ҝ<EFBFBD><EFBFBD>8<EFBFBD>=<3D>c<EFBFBD><63>T.<2E><><EFBFBD>-<2D><>~<7E><><EFBFBD><EFBFBD>#sO<><4F>vG<76>+<2B>y<EFBFBD>O{<EFBFBD>J<EFBFBD>9C<>O<EFBFBD><13><>ײ| `<60>+(<28>M<EFBFBD>r\r<EFBFBD>O<EFBFBD>5\n<EFBFBD>4<EFBFBD><EFBFBD>8<EFBFBD><EFBFBD>( <09>-l<>Cj<43>2[r5yK<79>y<>)<29>¬<EFBFBD>+A<>k<1E><><EFBFBD><EFBFBD><0E><0F>2<EFBFBD>3iĔ<69><02><>HS><3E><>W<EFBFBD><57><<3C><>f<EFBFBD>}<7D><17><>jfMiBϹ<42><CFB9>84u<34>L<EFBFBD><4C>ZCI\$<EFBFBD>2P<EFBFBD>\r<EFBFBD><EFBFBD>߅\"+<2B>2<>n-<2D>~C<>24<32><0F><><EFBFBD>:<3A><>2<EFBFBD><32>,<2C><0E>:<3A>ܑ<>gcwGҨ<47><D2A8>ǃ<EFBFBD><18><><EFBFBD>h<EFBFBD>V<EFBFBD><56><EFBFBD>] \\<EFBFBD><EFBFBD><EFBFBD><08>6`<60>R<EFBFBD>4=#x<>^<5E>1<EFBFBD><31>\0<EFBFBD>P<EFBFBD><EFBFBD>م<EFBFBD><18>:<3A>-<0F>8<EFBFBD>o<EFBFBD><6F><EFBFBD>~<7E>o<EFBFBD>v>ƣmط<6D><D8B7><EFBFBD><EFBFBD><EFBFBD>'<27><>|<7C><0F><><EFBFBD>C<EFBFBD><43><<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:G)M&W<>YQQi=<3D><17>\\[ya\r<EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<08>e<05>\\<EFBFBD><11>B<EFBFBD><42><EFBFBD>7Ne}:<3A><>l <0C><><EFBFBD>k\$44r<EFBFBD> q}\rP<EFBFBD><11><>ALa<>C5<43>s<EFBFBD><73>m\r<EFBFBD><EFBFBD><19><0E>Y<07><><EFBFBD>έ&<02><>(<06> <20> <15><>\n<EFBFBD>\$<05>jE%<25> ^qx\r<EFBFBD><17><><18>hW<01>0FuR <03>m<EFBFBD>J:<16><12>z@:r<>j7F5 ,wr<77><72>\n' <20> <0B>iP|><3E>8<EFBFBD>W<EFBFBD>fm2 9H<39>@<18>\$M<EFBFBD>\$qX<EFBFBD>Թ!<12><>\r<EFBFBD><EFBFBD>9<EFBFBD>0ΣR<EFBFBD>:\"<EFBFBD><EFBFBD>7D<EFBFBD> <20><><EFBFBD><1A>r<EFBFBD>0<EFBFBD><75>܌Jꉼ<4A><EA89BC>FF<46><<3C><>P<EFBFBD>Y<EFBFBD>e<18><>^) 8n<>L o2Eʔ<45>\r<EFBFBD>1<0E>伸˩<E4BCB8>Cf<43>,q]N\0<EFBFBD>8d8b*4<>J<EFBFBD><4A> <0B>\\Mͺ<EFBFBD><03>4<EFBFBD>Hl <0C><><06>R<EFBFBD>d̯!a<1A>J <06><>.<2E>e<EFBFBD><35><0F>IQ\nC<><43>Q.n^<5E><><EFBFBD>0I<30><49><EFBFBD><EFBFBD><10><12>F<EFBFBD><46><EFBFBD>7<R3woMѦweD<65><44><EFBFBD>4<1B>b7+<2B><><EFBFBD>F<EFBFBD><06><>>g<>6<EFBFBD>4Jj<4A>`<60>t!<21>F<EFBFBD><46><EFBFBD>x <0B>;<3B><>m<EFBFBD><1F><><EFBFBD>d8o<05>7B<37>j]<5D>=Sj<53>¨<EFBFBD>*<2A><1B><>0A<30>;<3B><><EFBFBD>R<EFBFBD><52><EFBFBD>QFD1<44><31>\"O<EFBFBD><EFBFBD>n<EFBFBD>ɼ<EFBFBD>Ϩ4Ê<>4e<34><65><03>q\nK<EFBFBD>*;9H<39><1E>9@<40>Չ#ƹ'<27><>Y<EFBFBD><59><EFBFBD>S<1C>cl<63>an<61>.Ͷk:h<>\$<EFBFBD><EFBFBD><EFBFBD>9<EFBFBD><15><><EFBFBD>d9<64>\r<EFBFBD><EFBFBD>1<EFBFBD>P<EFBFBD><EFBFBD><EFBFBD>qʃDy%<1B><> <0B>sba<62>Ɵ<EFBFBD><C69F><EFBFBD>ʜ\r<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Z<>RH<52><48><EFBFBD>_%\0@S<><53><EFBFBD><06><><12><>w<EFBFBD><77>77ER<45><52>jw<6A><77>M<05>P<EFBFBD><50>2@\n.<2E>a<EFBFBD>W~<7E><><EFBFBD><EFBFBD>JH,<2C><>n<6E><7F>J<EFBFBD><4A>`o<><6F><EFBFBD><03>@zõoN|<7C>L<EFBFBD>ڨVK <20>x u<02><>3*<2A>qK<71><4B>`<1A>]<5D><><EFBFBD><EFBFBD>AG<41><47><18>iU<69><55><EFBFBD><EFBFBD>a<EFBFBD><61>ȳ<07>Qre\$[W\"@b<><62>ĸU<C4B8>\r<EFBFBD><EFBFBD><EFBFBD>=.E<>E<EFBFBD>\0<EFBFBD><EFBFBD><EFBFBD>}r<><72>DH<0F>\"Imnj<EFBFBD><EFBFBD><EFBFBD>utϮGP<47>P<1C>̗8<CC97>\0p<EFBFBD>D <20><>;<3B><>V<EFBFBD>s<EFBFBD><73><EFBFBD>(<28>#<23><><EFBFBD>R<EFBFBD><75>\$<EFBFBD><EFBFBD>˖\0c<EFBFBD>E<EFBFBD><11>B<EFBFBD>\n̎g<EFBFBD><EFBFBD>\0004<EFBFBD><EFBFBD> +<2B>އ<EFBFBD><DE87>2c<32><63>n<03>f!><16><>ǟ3<C79F>]<5D>J35|G<>tTaU <20>Hi'<27><>K<EFBFBD><4B><EFBFBD>Zg<10><><EFBFBD> <09>#<23><12><1E><>iV<69><56>υ<EFBFBD><CF85><EFBFBD> 4TW<54><57><EFBFBD>\0<EFBFBD>\"1<EFBFBD>ݕQ<EFBFBD>Ժ<EFBFBD>_><3E>}<7D><>>Q<>qr<71><72><EFBFBD>m<EFBFBD>V<EFBFBD>!<<3C><>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD><15> <0C><>9S<39><19>,v<><76><EFBFBD><EFBFBD>'<27>u<12><>ykb]p<><70><EFBFBD><EFBFBD>M<EFBFBD>y<> I<><49>[&<26><><19>\\<EFBFBD><EFBFBD><11>9Gv<47><11>i<EFBFBD><69><16>u7<75><37>E<EFBFBD><1B>k<>^[<15>%A<>a;<3B>H#t,<2C>k<EFBFBD>[<5B><><EFBFBD><18><>5Q^ y<>I<03>U<EFBFBD>(b\rex<16>%K<><12><><EFBFBD>\\<EFBFBD><EFBFBD><EFBFBD>œ<EFBFBD><EFBFBD><EFBFBD>+!Y<>_<EFBFBD>)<29>e<EFBFBD>F`<60>[[nZ<6E><5A>=<3D>wn<><6E>_<EFBFBD>\$ +\$<EFBFBD><EFBFBD>#F<1B>Fj<46><05>ic̕l<CC95><6C>k<EFBFBD><6B><EFBFBD><EFBFBD><EFBFBD>6[<5B>Y<EFBFBD><59><EFBFBD>m<EFBFBD><6D><EFBFBD><EFBFBD>t\rQ<EFBFBD><EFBFBD>x<EFBFBD><1B>W%<25>A<EFBFBD>z<05>@<40><><EFBFBD><EFBFBD><06><>t\r<EFBFBD><EFBFBD>4\"n<0E>,<2C>4<EFBFBD><34>C<EFBFBD>fa<>|<7C><><EFBFBD><EFBFBD>va<10>G<EFBFBD><47><74><C5BC><EFBFBD>ń<EFBFBD>t\$?<3F>Y9<59><18><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ht<48><74><EFBFBD>y0G<30>O<><4F>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><07><><<3C><><EFBFBD><EFBFBD>G<EFBFBD>W<EFBFBD><57><EFBFBD><EFBFBD>j<EFBFBD><6A><EFBFBD>W<EFBFBD>R/<2F><>_'<0E> \\z%>j<><6A><EFBFBD><EFBFBD>{<EFBFBD><EFBFBD><EFBFBD>Zs<EFBFBD><0E><><EFBFBD>?<3F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <0C><><EFBFBD>e<EFBFBD>V/<2F>@<40>0:<3A>h<02><><EFBFBD><EFBFBD>.<2E>F<EFBFBD>Q<EFBFBD><51>4j^/g<>]`<60> F=n<>&<26>&&<04><06>je @p<06> <20><><EFBFBD><EFBFBD><EFBFBD>On<4F><6E><0E><>H<EFBFBD><48>X*+<2B>5J<35><4A><EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD>uf&<26>KZ<4B>O<EFBFBD><4F>O<EFBFBD><4F>̌<EFBFBD><CC8C><EFBFBD><EFBFBD><EFBFBD>PX<50>f<EFBFBD>l( <0C><><03><><0F><><EFBFBD><EFBFBD><EFBFBD><0F><><EFBFBD><EFBFBD><EFBFBD>pH{/<2F><07>d<EFBFBD>K<EFBFBD><4B>0<EFBFBD><30><0F><>P<EFBFBD><50><10><><EFBFBD><EFBFBD><01>&<26><>&<26>|<7C>\0οPd<EFBFBD>&<18><><EFBFBD> NL<4E>M<EFBFBD><4D>P<EFBFBD><50>m<EFBFBD> <09><><EFBFBD><04><><EFBFBD>NU*)h<><68>E<10>ER<45><52>@<40> <0C><><EFBFBD>8<EFBFBD>-<2D><<3C>49\0<EFBFBD>\r<EFBFBD><EFBFBD> <20>چ\"<EFBFBD><EFBFBD><EFBFBD><13>/<13>6 @<40>C<><05><><03>\0<EFBFBD>\0<EFBFBD>~@<40><15>[<15>a<13>i<16><>g3(gcc<16>I<18><>A<17>[<15>s<15><>6 <20>q`<60><><EFBFBD><EFBFBD>Ħ\0fn<><6E>ɬѸ <09><12>SG<>\r<EFBFBD>iq<><0E><>Ok<19><>IQhU1<55><1D>\0\r<EFBFBD><EFBFBD>Qi<1E> <1E>\r+ <0B><><1E><><1D><0E>)V<><56>!<12>uI<>\0r<EFBFBD>,;<13><><11> <0B><>)<29><>\"<EFBFBD>1 Q<>\"<EFBFBD><16><><12>N7<11><11>Y2%Q<>#C1<1D><16><>Q!Q<>#<23><><EFBFBD><EFBFBD><EFBFBD>BiC%јy<D198><79>D<EFBFBD><44> <0C>N!M<0<>.-\"<12>3!1RQ@<40>iK#<23>)<29>i\"B<EFBFBD><0E><12>*<2A>Ɣ<EFBFBD>c2<><1F><>*<2A><>+r<><12><>\"<EFBFBD><EFBFBD>eP<65>2(*<1B><><08>#<12><> <0B>g+2<>,<2C><>*2,R<><52>2<EFBFBD>,<12>0<12>*2<><16><>/2<><12><>q<><1B><>\$<EFBFBD><EFBFBD><EFBFBD><EFBFBD>h\0<EFBFBD>Ҙ<><D298>?2R<32>2<EFBFBD>/<1E><>0l<30><1D><>,<2C><>B 趒<>c%<25>BҔ8<D294><38>/<2F> *<2A><>4<EFBFBD> &<26>t`<60>ah{3u7<75>%<17><> <0C><>@<40> <0B><>n<EFBFBD><6E>6Q}93<39>+<2B>`<60><>r<EFBFBD>Ӆ5<D385>[<17>Fg<46>S3s<33>Q<>:R'*<2A><>&Qa<2u\$<EFBFBD><EFBFBD>= <20>B<><RU<<3C><><19>ܡ<EFBFBD><DCA1>6<EFBFBD>S<19><> <0C><>?2)+<13>?s<><<3C>=<3D>ڔ<EFBFBD>><11>9<EFBFBD>J <0B>@s<>=S<>A<EFBFBD>R e<>AS<41>Bs<42>B<EFBFBD>/><3E><>1<EFBFBD>Vq<>TI.qR_<52>3E<11><>\"e<1D><1F>Y<1F>\".3ȑ<EFBFBD><EFBFBD>\"Jq<13><>BɫD)̝<11><>4 #\$<EFBFBD>a<1D><> <20>l<EFBFBD>(<28>S<EFBFBD><4[\"Q<EFBFBD><14><><EFBFBD>d0<64><30>%<25><>A4<41><12>_qiC<69>K<>R0<52><30>7<EFBFBD>HI:Kj<4B> <20><>2S<32>A3<41>t<>?<3F><>NT<4E>\$<EFBFBD><EFBFBD>Mos' \r<1D><>N<EFBFBD>gPR<50>&<14>8<EFBFBD><38>P<EFBFBD><50>OR3Q23 <20>eHIR:\"<EFBFBD>:<3A>R<EFBFBD>#F<><46><03><><EFBFBD><EFBFBD> <09>L<EFBFBD>KmS<6D><53><EFBFBD>*(<28><>,<2C>v8<76><38>2\$35V<EFBFBD>D<EFBFBD>3c\n0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD>&\rä+Ҋ9<D28A>0<EFBFBD><30>:\r<EFBFBD>8qAT<02>TI*]5J<35>0J<30>SH&f<><66><EFBFBD>");}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");echo
lzw_decompress("f:<3A><>gCI<43><49>\n8<EFBFBD><EFBFBD>3)<29><>7<><37><EFBFBD>81<38><31>x:\nOg#)<29><>r7\n\"<EFBFBD><EFBFBD><EFBFBD>`<60>|2<1B>gSi<53>H)N<>S<EFBFBD><53><EFBFBD>\r<EFBFBD><EFBFBD>\"0<EFBFBD><EFBFBD>@<40>)<1D>`(\$s6O!<21><><EFBFBD>V/=<3D><>' T4<54>=<3D><>iS<69><53>6IO<49>G#<23>X<>VC<><43>s<EFBFBD><73>Z1.<2E>hp8,<1E>[<5B>H<EFBFBD><48> ~Cz<43><7A><EFBFBD>2<EFBFBD>l<EFBFBD>c3<63><33><EFBFBD>s<EFBFBD><73><04>I<EFBFBD>b<EFBFBD>4\n<06>F8T<38><54>I<><49><1A>U*fz<66><04>r0<72>E<EFBFBD><13><><EFBFBD>y<1B><><EFBFBD>f<EFBFBD>Y.:<1C><14>I<EFBFBD><49>(<18>c<EFBFBD><63>΋!<21>_l<5F><6C>^<5E>^(<28><>N{S<EFBFBD><EFBFBD>)r<>q<EFBFBD>Y<EFBFBD><59>l٦3<D9A6>3<EFBFBD>\n<EFBFBD>+G<><47><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD>i<EFBFBD><69><EFBFBD>xV3w<17>uh<>^r<><72><EFBFBD><1E>a۔<61><DB94><EFBFBD>c<EFBFBD><63>\r<0E><><EFBFBD>(.ˆ<><C288>Ch<43><\r)<08>ѣ<EFBFBD>`<60>7<EFBFBD><37><EFBFBD>43'm5<><35><EFBFBD>\n<EFBFBD>P<EFBFBD>:2<>P<EFBFBD><50><EFBFBD><EFBFBD>q <20><><EFBFBD>C<EFBFBD>}ī<><C4AB><EFBFBD><EFBFBD><EFBFBD>38<33>B<18>0<EFBFBD>hR<1A><>r(<28>0<EFBFBD><30>b\\0<EFBFBD>Hr44<EFBFBD><EFBFBD>B<1A>!<21>p<EFBFBD>\$<EFBFBD>rZZ<1E>2܉.Ƀ(\\<EFBFBD>5<EFBFBD> |\nC(<28>\"<EFBFBD><03>P<13><02><>. <0B><>N<15>RT<52>Γ<><CE93>><04>HN<14><>8HP<>\\<EFBFBD>7Jp~<13><13><>2%<25><>OC<4F>1<EFBFBD>.<2E><>C8·H<><48>*<2A>j<EFBFBD><6A><04><1C>S( <0C>/ <0C><><EFBFBD>6KU<4B><55><1E><><2 <0C>pOI<4F><49><EFBFBD>`<60><><EFBFBD>ⳈdO<>H<EFBFBD><48>5<EFBFBD>-<2D><>4<EFBFBD><34>pX25-Ң<>ۈ<EFBFBD>z7 <0C><>\" (<28>P<EFBFBD>\\32:]U<> <0C><><EFBFBD>߅!]<5D><<3C>A<EFBFBD>ۤ<><DBA4><EFBFBD><04>l\r<EFBFBD>\0v<EFBFBD><EFBFBD>#J8<4A><38>wm<77><6D>ɤ<><<3C>ɠ<EFBFBD><C9A0>%m;p#<23>`X<>D<EFBFBD><44><EFBFBD>iZ<69><5A>N0<4E><30><EFBFBD><EFBFBD>9 <0B><><EFBFBD><E58DA0>`<13><>wJ<>D<EFBFBD><EFBFBD>2<EFBFBD>9t<39><74>*<1C><>y<EFBFBD><79>NiIh\\9<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<0E><><EFBFBD><05>xﭵyl*<2A>Ȉ<><17>Y<EFBFBD><59><17><><EFBFBD>8<EFBFBD>W<EFBFBD><57>?<3F><><EFBFBD>ޛ3 <0C><><EFBFBD>!\"6<08><>n[<5B><>\r<EFBFBD>*\$ <0C>Ƨ<EFBFBD>nzx<7A>9\r<EFBFBD>|*3ףp<D7A3><>:(p\\;<3B><>mz<1B><><EFBFBD>9<><1C><>Œ<EFBFBD>8N<18><><EFBFBD>j2<6A><32><14><>\r<EFBFBD>H<EFBFBD>H&<26><>(<28>z<EFBFBD><7A>7i<37>k<EFBFBD> <20><><EFBFBD><EFBFBD>c<EFBFBD><63>e<EFBFBD><65><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD>2:SH<53>Ƞ<EFBFBD>/)<29>x<EFBFBD>@<40><>t<EFBFBD>ri9<69><39><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><38><EFBFBD><EFBFBD><79><D2B7><EFBFBD>V<EFBFBD>+^Wڦ<57><DAA6>kZ<6B>Y<EFBFBD>l<0E>ʣ<EFBFBD><0E><>4<03><>Ƌ<EFBFBD><C68B><05><><14><>\\E<EFBFBD>{<EFBFBD>7\0<EFBFBD>p<EFBFBD><12><>D<02><>i<EFBFBD>-T<><54><EFBFBD><EFBFBD>0l<30>%=<3D><><EFBFBD>˃9(<01>5<10>\n\n<EFBFBD>n,4<>\0<EFBFBD>a}܃.<2E><>Rs\02B\\<EFBFBD>b1<EFBFBD>S<EFBFBD>\0003,<2C>XPHJsp<>d<EFBFBD> K<> CA!<21>2*W<><13><><EFBFBD>2\$<EFBFBD>+<19>f^\n<EFBFBD>1<><31><EFBFBD><EFBFBD>zE<7A> Iv<49>\\<EFBFBD><EFBFBD>2<EFBFBD><03>.*A<><41><EFBFBD>E(d<07><><EFBFBD><EFBFBD>b<EFBFBD><1C>܄<EFBFBD><11>9<EFBFBD><39><EFBFBD><EFBFBD><EFBFBD>Dh<44>&<26><>?<10>H<>s<EFBFBD>Q<EFBFBD>2<EFBFBD>x~nÁJ<>T2<03>&<26><>eR<><52><EFBFBD>G<EFBFBD>Q<EFBFBD><51>Tw<54>ݑ<EFBFBD><DD91>P<02><><EFBFBD>\\<EFBFBD>)6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sh\\3<EFBFBD>\0R <19>'\r+*;R<1A>H<EFBFBD>.<2E>!<21>[<5B>'~<7E>%t< <20>p<EFBFBD>K#‘<>!<0E>l<EFBFBD><6C><EFBFBD>Le<><65><EFBFBD><12>,<06><><EFBFBD>&<26>\$ <09><>`<60><15>CX<43><0E>ӆ0֭<30><D6AD><EFBFBD><07><>:M<>h <09>ڜG<DA9C><47>!&3<>D<EFBFBD><!<21><>23<32><33>?h<>J<>e <20><>h<EFBFBD>\r<EFBFBD>m<EFBFBD><EFBFBD><EFBFBD>Ni<02><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD>Hl7<6C><37>v<EFBFBD><76>WI <0C>. <0B><>-<2D>5֧ey<07>\rEJ\ni* <0B>\$@<40>RU0,\$U<1B>E<EFBFBD><45><EFBFBD><EFBFBD>ªu)@(t<>SJk<05>p!<02>~<7E><><EFBFBD>d`<60>><3E><>\n <0B>;#\rp9<70>jɹ<>]&Nc(r<><72><EFBFBD>TQU<51><55>S<EFBFBD><53>\08n`<60><>y<EFBFBD>b<EFBFBD><62><16>L<>O5<4F><35>,<2C><><EFBFBD><EFBFBD>><3E><><EFBFBD>x<EFBFBD><01><15>f䴒<66><E4B492><1B>+<2B><>\"<EFBFBD>I<EFBFBD>{kM<EFBFBD>[\r%<25> [ <09>e <0B>a<>1! <20><><EFBFBD><EFBFBD>Ԯ<EFBFBD>F@<40>b)R<><52>72<37><32>0<EFBFBD>\nW<16><><EFBFBD>L<EFBFBD>ܜҮtd<74>+<2B><><1C>0wgl<67>0n@<40><>ɢ<EFBFBD>i<EFBFBD>M<EFBFBD><4D>\nA<EFBFBD>M5n<EFBFBD>\$E<EFBFBD>ױN<><4E>l<EFBFBD><6C><12><><16>%<25>1 A<><41><EFBFBD><13><><EFBFBD>k<EFBFBD>r<EFBFBD>iFB<46><01><>ol,muNx-<2D>_<EFBFBD>֤C( <0E><>f<1C>l\r1p[9x(i<><42><D296>zQl<51><6C>8C<03> <09><02>XU Tb<54><62>I<EFBFBD>`<60>p+V\0<EFBFBD><EFBFBD><EFBFBD>;<3B>Cb<43><62>X<EFBFBD>+ϒ<>s<EFBFBD><73>]H<><48>[<5B>k<EFBFBD>x<EFBFBD>G*<2A><><EFBFBD>]<5D>awn<77>!<21>6<EFBFBD><36><EFBFBD><EFBFBD><EFBFBD>mS<6D><53><EFBFBD>I<EFBFBD><49>K<EFBFBD>~/<2F>ӥ7<D3A5><37>eeN<65><4E><EFBFBD><EFBFBD>S<EFBFBD>/;d<>A<EFBFBD>>}l~<7E><><EFBFBD> <20>%^<5E> f<>آpڜDE<44><45>a<EFBFBD><61>t\nx=<3D><6B>*d<><64><04>T<16><><EFBFBD><EFBFBD>j2<><32>j<EFBFBD><6A>\n<EFBFBD><EFBFBD><EFBFBD> ,<2C>e=<3D><>M84<><34><EFBFBD>a<>j@<40>T<EFBFBD>s<EFBFBD><73><EFBFBD>nf<6E><66>\n<1A>6<EFBFBD>\rd<EFBFBD><10>0<EFBFBD><30><EFBFBD>Y<EFBFBD>'%ԓ<><18>~ <09>Ҩ<EFBFBD><<3C><10> <0B>AH<EE8B96>G<1B><>8<EFBFBD><19><>΃\$z<1C><>{<EFBFBD><EFBFBD><EFBFBD>u2*<11><03>a<0F><>><17>(w<>K.bP<62>{<EFBFBD><EFBFBD>o<0F><01>´<0E> z<>#<23>2<0E>8=<3D> 8><3E><><EFBFBD>A,<2C>e<EFBFBD><65><EFBFBD>+<2B>C<EFBFBD><43>x<EFBFBD>*<2A><><EFBFBD>-b=m<><6D><EFBFBD>,<2C>a<EFBFBD><61>lzk<7A><6B><EFBFBD>\$W<19>,<2C>m<EFBFBD>Ji<4A>ʧ<EFBFBD><CAA7><EFBFBD>+<2B><><EFBFBD>0<EFBFBD>[ <0B><>.R<>sK<73><4B><1B>X<EFBFBD><1D>Z L<><4C>2<EFBFBD>`<17>(<28>C<EFBFBD>vZ<76><5A><EFBFBD><05><><02>\$<EFBFBD>׹,<2C>D?H<><48>NxX<16><>)<29><><EFBFBD>M<0F><>\$<EFBFBD>,<2C><>*\nѣ\$<q<19>şh!<21><>S<EFBFBD><17><><EFBFBD><EFBFBD>xsA!<21>:<04>K<EFBFBD><4B>}<7D><><04><><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD><52>A2k<32>X<EFBFBD>p\n<<3C><07><><EFBFBD><EFBFBD>l<EFBFBD><0E><>3<EFBFBD><33><EFBFBD><EFBFBD><1B>VV<56>}<7D>g&Yݍ!<21>+<2B>;<<3C>Y<EFBFBD><59><EFBFBD>YE3r<>َ<EFBFBD><06>C<EFBFBD>o5<6F><35><EFBFBD><EFBFBD>ճ<EFBFBD>kk<6B><6B><EFBFBD><EFBFBD><EFBFBD>ۣ<EFBFBD><DBA3>t<><74>U<EFBFBD><55><EFBFBD>)<29>[<5B><><EFBFBD><EFBFBD>}<7D><12>u<EFBFBD><75>l<15><>:D<><44>+Ϗ _o<5F> <0C>h140<34><30><EFBFBD>0<EFBFBD><30>b<EFBFBD>K<EFBFBD> <0C><><EFBFBD><EFBFBD><04> lG<6C><47>#<23><><EFBFBD><EFBFBD><EFBFBD><05><><EFBFBD><EFBFBD>|Ud<55><64>IK<08><><EFBFBD>7<EFBFBD>^<5E><><EFBFBD>@<40><>O\0H<04><04>Hi<48>6\r<EFBFBD><EFBFBD><02><>\\cg\0<EFBFBD><EFBFBD><EFBFBD>2<0E>B<05>*e<><65>\n<EFBFBD><EFBFBD> <09>zr<7A> !<21>nWz&<26> {H<><48>'\$X <20>w@<40>8<EFBFBD>DGr*<2A><><EFBFBD>HV<48><56>w8<>J<EFBFBD>\nm@<40>O<EFBFBD>#P<><50>@<40>Yp<59><70>öw<C3B6><77><EFBFBD><EFBFBD>P\r8 <0C>X<EFBFBD>\$X<EFBFBD> P<>d<EFBFBD> <09>Q\0Rx1\"T]\"<EFBFBD><05><> <0C><> <09><>Q<EFBFBD><51><EFBFBD><EFBFBD>bR`M<06><0F><>-<2D>RSE8Go0<><30> <09>d<EFBFBD>B^<5E>\0<EFBFBD><EFBFBD>\":<3A>mN.<2E>j %<12>@<40>3(<28>x <20>l <20> <0C><> <09><0E>W<16><><16><>\n<EFBFBD>:\r\0}<16>@<40>qm;@<40>-<2D><><06>Z<EFBFBD>g.zF<7A>f@<40>\r<EFBFBD><EFBFBD>W<EFBFBD><EFBFBD>ck<EFBFBD><08> <20>< <09>0<EFBFBD><30><EFBFBD>z'4\r<EFBFBD><EFBFBD>\0<EFBFBD>jELY<10><>(<28>%<25>\nM<EFBFBD><EFBFBD><EFBFBD>D<EFBFBD><EFBFBD>oF<6F>B<EFBFBD>q<EFBFBD><71>Kg<4B><67>#<23>Z<EFBFBD><5A><EFBFBD><06><>\"<EFBFBD>\n<EFBFBD><EFBFBD>Ю<EFBFBD><EFBFBD><EFBFBD>h<EFBFBD><08><08>2-n<>\"jy\"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\"<EFBFBD><08>g<11>!,<2C>*<2A>T<EFBFBD><54>x<EFBFBD><0F><><EFBFBD>P<EFBFBD><50>5%L<><4C><EFBFBD>`<60>L<EFBFBD>M<04><>@<40> Z@<40><><EFBFBD><EFBFBD>`^Q0R%9&jv<6A>h<EFBFBD>X <20>o<EFBFBD><6F><EFBFBD><EFBFBD>G#<23><><EFBFBD><EFBFBD>D<EFBFBD><44>H<EFBFBD>K¼lX<6C><58><EFBFBD><EFBFBD>-<2D><>2hWli+<2B><>&<26><>s'rz<72><7A><EFBFBD>(<12>҈<><D288><EFBFBD><EFBFBD>%tK<74>6<EFBFBD>r<EFBFBD><72><EFBFBD>r<EFBFBD><72><06>K<EFBFBD>.‚*<2A>,*v<>bgj<>#<11><><EFBFBD>LȮv<C8AE>Z<EFBFBD><5A>Q\$n*h<08><><EFBFBD>v<EFBFBD>B<EFBFBD><10><><EFBFBD>\\FJ<EFBFBD>X%x f\$<EFBFBD>A4K74<EFBFBD>a#<23><>3\n<EFBFBD>(|<0F>Z, <0C>e2<65>l\r|<7C>K<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><1A><>W2-m) )<29><>Z'%<25><> <09><>7<EFBFBD>.<2E> *<2A>*\0O;<05><>C<EFBFBD>*<2A><>\$<EFBFBD>A;<3B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD>l<EFBFBD><6C>t<EFBFBD>K<>.Dƛ_> <0C>:<3A>v<EFBFBD>3<EFBFBD>=d<>\$R擠<EFBFBD>Sl<08>7<EFBFBD><08>B[<02><>!@<40>]<5D>[63zS<7A>e>s<>r<EFBFBD>Dz<44><7A>;T0<54>S<EFBFBD>*<2A><>C<13>+o<>\\\0<EFBFBD><0E>{D<0F><>  k<><04>z@<40>= <20><05><>D<EFBFBD>4V炏ʕ*\0W<EFBFBD><18><>t<EFBFBD><74>v<EFBFBD><76>yD <0C>-<2D>5C<13><>3<EFBFBD><33><0E><><EFBFBD>D<EFBFBD><44>t<EFBFBD><74>!<21>_<08>U<EFBFBD>XL<58>]F<08>Fn<46>F<EFBFBD><46>&@%b>c<><63>P<EFBFBD><50>I<EFBFBD>)3<<3C>@ `<60>\r<EFBFBD>55<07>%<25>/3Q<02><>@G<>5\r<EFBFBD><EFBFBD>ѱT<EFBFBD><EFBFBD><EFBFBD>,<2C><>E<EFBFBD>N<>&j\0<EFBFBD>\$<EFBFBD><EFBFBD><EFBFBD> <20>353<35>T<05>B'FL<46><4C><EFBFBD>'D<><44><11>U#<23><4C>Pm*Ѡ\\\r@<40><>@<40>)<29><>E<EFBFBD><1A>UUU<55>]V<06><><EFBFBD><EFBFBD>`<60>M<EFBFBD><06><>RD<52>FV<46>{4<EFBFBD>`3U4<55><34>5<EFBFBD><35><EFBFBD>#<23>T`<60>Q(<28>ߵq7M<37>*@SVM<56>Ģ#<23>~<7E>2 մ<>jl<6A>@<40>\\ <20>.J|2<>U<>\\<EFBFBD><EFBFBD> <20>v<EFBFBD><76><EFBFBD>\\b;^\0<EFBFBD>6 x<>·]<5D><>^u<><75><EFBFBD>UL<55>Z<EFBFBD><5A><EFBFBD>MP֙<50>4H<>9<EFBFBD>\$0<>3<EFBFBD>'VuT<>@<40>KW<4B>|<7C><15><>/\$J<EFBFBD>*D<><44>]<5D> X<><58>_p<5F><04><>ޕ<EFBFBD>ѥ<12>ղu<><75>I<EFBFBD>܅z <><E4A2AE>r<EFBFBD><72>\n<EFBFBD><EFBFBD>%<25>8<EFBFBD><38>i^<5E><><EFBFBD>U<EFBFBD>1<08>5<EFBFBD>n;I\n<EFBFBD>R<><52>3<EFBFBD><33>QU45<34>5`z<06>ac<61><63>b<16>`qOt<4F>Nu<06>6)<14>T<08> <0C><>j<EFBFBD><6A>X<EFBFBD><58>Re<52>#<10>J-<2D>S@<40> \" U<><55> <0C><><EFBFBD>C<EFBFBD>UU<55>8<EFBFBD><1A>6<EFBFBD>-ki<05>/Y<><0E> R\$<EFBFBD><EFBFBD>!<21>\rn<EFBFBD>[6Vݭ<56><71><D580>.<2E><>B<EFBFBD><10> <0C><>cp<63>pps!\0<EFBFBD>Ow\"<EFBFBD>ngs<EFBFBD>X<EFBFBD>wGi<EFBFBD>{Z\0Su*k`<60>Ξ<EFBFBD>a!Qo'd <20>x Ca<43><61><0E><>c<EFBFBD>!<21><><EFBFBD>60P<>\rʂ<EFBFBD>T<EFBFBD>Ҝ<><D29C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,j<>&<26>@ ʃ( OA<4F><41>P<EFBFBD>T<>j<EFBFBD><08>Ghλb<><62><EFBFBD>\"%<25>\n<EFBFBD>qX<EFBFBD>z %<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m~@<40>~<7E>r<EFBFBD><72>JnW<6E>~ <20> <09>]RX<52> F<><46>r<EFBFBD><72>xNmHp <20>+@<40>kl#<23><>\0ˁ<EFBFBD>v<EFBFBD>X&<26><>,i<><69>d<EFBFBD>z<EFBFBD><7A>\0<EFBFBD>N<EFBFBD><EFBFBD> ~w<>
lzw_decompress("v0<EFBFBD><EFBFBD>F<EFBFBD><EFBFBD><EFBFBD><EFBFBD>==<3D><>FS <09><>_6<4D><C6B3><EFBFBD>r:<3A>E<EFBFBD>CI<43><49>o:<3A>C<11><>Xc<58><63>\r<EFBFBD>؄J(:=<3D>E<EFBFBD><13><>a28<03>x<EFBFBD><78>?<0F>'<27>i<EFBFBD>SANN<02><><EFBFBD>xs<78>NB<><42>Vl0<6C><30><EFBFBD>S <09><>Ul<14>(D|҄<><D284>P<EFBFBD><50>><17>E<EFBFBD>㩶yH ch<><68>-3Eb<45><62> <20>b<EFBFBD><62>pE<70>p<EFBFBD>9.<2E><><EFBFBD><EFBFBD>~\n<EFBFBD>?Kb<4B>iw|<7C>`<60><>d.<2E>x8EN<45><4E>!<21><>2<><05>3<EFBFBD><33><EFBFBD>\r<EFBFBD><1C><>Y<EFBFBD><59><EFBFBD>y6GFmY<6D>8o7\n\r<10>0<EFBFBD><30>\0<EFBFBD>Dbc<EFBFBD>!<21>Q7Шd8<64><38><EFBFBD>~<7E><>N)<1D>Eг`<60>Ns<4E><73>`<60>S)<29>O<EFBFBD><4F> <0B><>/<2F><<0E>x<EFBFBD>9<EFBFBD>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3n<><6E>2<EFBFBD>!r<>:;<3B>+<2B>9<EFBFBD><43><C8A8><EFBFBD>\n<<3C><>`<60><><EFBFBD>b<EFBFBD>\\<EFBFBD>?<3F>`<60>4\r#`<60><<3C>Be <0C>B#<1A>N <20><>\r.D`<60><>j<EFBFBD>4<EFBFBD><34><EFBFBD>p<EFBFBD>ar<61><72> <>><3E>8<EFBFBD>\$<EFBFBD>c<EFBFBD><EFBFBD>1<EFBFBD>c<EFBFBD><EFBFBD><1D>c<EFBFBD><63><EFBFBD><04>{n7<12><><07><08>A<>N<15>RLi\r1<EFBFBD><EFBFBD><EFBFBD>!<21>(<28> j´<6A>+<2B><>62<36>X<>8+<18><05><><EFBFBD>.\r<EFBFBD><18><04><><EFBFBD>!x<><78><0E>h<EFBFBD>' <0C><><EFBFBD>6S<36>\0R<05><><EFBFBD><EFBFBD>O<EFBFBD>\n<EFBFBD><14>1(W0<57><30><EFBFBD><EFBFBD>7q<><71>:N<>E:68n+<2B><>մ5_(<28>s<EFBFBD>\r<EFBFBD><EFBFBD><EFBFBD><EFBFBD> /m<>6P<36>@<40>EQ<45><51><EFBFBD>9\n<EFBFBD>V-<2D><><EFBFBD>\"<EFBFBD>.:<3A>J<EFBFBD><4A>8we<77>q<EFBFBD><>X<EFBFBD>]<5D><>Y X<>e<EFBFBD>zW<7A><57> <20>7<EFBFBD><37>Z1<5A><31>hQf<51><66>u<EFBFBD>j<EFBFBD>4Z{p\\AU<EFBFBD>J<<3C><>k<><6B>@<40>ɍ<EFBFBD><C98D>@<14>}&<13><><EFBFBD>L7 U<>wuYh<59><68>2<EFBFBD><32>@<40>u<EFBFBD> P<>7<EFBFBD>A<EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>3 Û<><1E>XEͅZ<CD85>]<5D>l<05>@Mplv<>)<01> <20><07>HW<48><05><>y><03>Y<59>-<2D>Y<EFBFBD><59>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0F>hC<68>[*<2A><>F<EFBFBD><46>#~<1F>!<21>`<60>\r#0P<10><43>f<03><><EFBFBD> <0B><><EFBFBD>\\<EFBFBD><EFBFBD><0E>^<5E>%B<<3C>\\<EFBFBD>f<>ޱ<><DEB1><EFBFBD><EFBFBD><EFBFBD>&/<2F>O<EFBFBD><4F>L\\jF<EFBFBD><EFBFBD>jZ<EFBFBD>1<EFBFBD>\\:ƴ><04>N<EFBFBD><4E>XaF<61>A<EFBFBD><1B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD>h{\"s\n<EFBFBD>64<EFBFBD><EFBFBD><EFBFBD><EFBFBD><16><>?<05>8<EFBFBD>^p<15>\"<EFBFBD>ȸ\\<EFBFBD>e(<28>P<05>N<EFBFBD><4E>q[g<><67>r<EFBFBD>&<26>}Ph<50><68><EFBFBD><EFBFBD>W<EFBFBD><57>*<2A><>r_s<5F>P<EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD>om<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#<23><0F><>.<2E>\0@<40>pdW <20> \$Һ<EFBFBD>Q۽Tl0<6C> <20><1D>HdH<64>)<29><>ۏ<> <0C>)P<03><><EFBFBD>H<EFBFBD>g<04><>U<><55><EFBFBD><EFBFBD>B<>e\r<EFBFBD>t:<3A><>\0)\"<EFBFBD>t<EFBFBD>,<2C><><18><><EFBFBD>[<5B>(D<>O\nR8!<21>Ƭ֚<C6AC><D69A>lA<6C>V<EFBFBD><10>4<03>h<EFBFBD><1E>Sq<<15><>@}<7D><><EFBFBD>gK<67>]<5D><><EFBFBD>]<5D>=90<39><30>'<27><><1D><>wA<<3C><><EFBFBD><1D>a<EFBFBD>~<7E><>W<><57><EFBFBD>D|A<><41><EFBFBD>2<0E>X<EFBFBD>U2<55><32>yŊ<><C58A>=<05>p)<29>\0P <0C>s<0F><>n<EFBFBD>3<06><>r<EFBFBD>f\0<EFBFBD>F<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD><EFBFBD>G <0C><01>I@<40>%<25><><EFBFBD>+<2B><>_I`<60> <0C><><EFBFBD>\r.<2E><>N<EFBFBD><0F><>KI<4B>[<15>ʖSJ<53><05><>aUf<55>Sz<53><7A><EFBFBD>M<1F><><EFBFBD> %<25><>\"Q|9<04><>Bc<42>a<EFBFBD>q\0<EFBFBD>8<EFBFBD>#<23><a<><61>:z1Uf<15><>><3E>Z<10>l<EFBFBD><6C><01><><EFBFBD><EFBFBD>e5#U@iUG‚<47><C282>n<EFBFBD>s<><73><10>;gxL<07>pP<>?B<><42><EFBFBD>Q<EFBFBD>\\<15>b <1F><>龒Q<E9BE92>=7<>:<3A><0F>ݡQ<DDA1>\r:<3A>t<EFBFBD><74>:y(<28> <20>\n<EFBFBD>d)<29><07><>\n<EFBFBD>X;<3B><><EFBFBD><EFBFBD><11>CaA<61>\r<EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD>GH<EFBFBD>!<21><><EFBFBD>@<40>9\n\nAl~H<><48><EFBFBD>V\ns<><73>ի<EFBFBD>Ư<EFBFBD>bBr<42><72><EFBFBD><05><><06><><1A><>3<EFBFBD>\r<EFBFBD>P<EFBFBD>% <0B>ф\r}b/<2F>Α\$<EFBFBD>5<>P<EFBFBD>C<EFBFBD>\"w<13>B_<42><5F><EFBFBD>U<>gAt<41><74><EFBFBD><EFBFBD><EFBFBD>^Q<><51>U<EFBFBD><01><>j<EFBFBD><6A><EFBFBD><EFBFBD>Bvh졄4<ECA184>)<29><> +<2B>)<<3C>j^<5E><L<><4C>4U*<2A><><EFBFBD>Bg<42><67><EFBFBD><EFBFBD><1C>*n<>ʖ<>-<2D><><EFBFBD><EFBFBD> 9 O\$<EFBFBD><EFBFBD>طzyM<EFBFBD>3<0E>\\9<EFBFBD><EFBFBD><1E>.o<><6F><EFBFBD><EFBFBD><10><>E(i<><07><> <0B><><EFBFBD>7 tߚ<74><DF9A>-&<26>\nj!\r<EFBFBD><EFBFBD>y<>y<EFBFBD>D1g<31><67><EFBFBD>]<5D><>yR<79>7\"<EFBFBD><EFBFBD><1D><13><><EFBFBD>~<10><><EFBFBD><EFBFBD>)TZ0E9M<39>YZt Xe!<21>f<EFBFBD>@<40>{Ȭyl 8<>;<3B><><EFBFBD>R{<EFBFBD><EFBFBD>8<EFBFBD>Į<>e<EFBFBD>+UL<>'<27>F<>1<EFBFBD><04><>8PE5- <09>_!<21>7<EFBFBD><37><EFBFBD>[2<>J<EFBFBD><01>;<3B>HR<48><52>ǹ<>8p痲݇@<40><>0,ծpsK0\r<01>4<EFBFBD><34>\$sJ<73><0E><>4<EFBFBD>DZ<44><5A>I<0E><>'\$cL<EFBFBD>R<EFBFBD><EFBFBD>MpY&<1E><><EFBFBD><EFBFBD>i<EFBFBD>z3G<06>zҚJ%<25><>P<>-<2D><01>[<5B>/x<><78>T<EFBFBD>{p<EFBFBD><EFBFBD>z<>C<05>v<02><05><>:<3A>V'<27>\\<EFBFBD><EFBFBD>KJa<EFBFBD><EFBFBD>M<EFBFBD>&<26><><EFBFBD>Ӿ\"<EFBFBD><EFBFBD>e<13>o^Q+h^<5E><02>iT<69><54>1<EFBFBD>OR<4F>l<EFBFBD>,5[ݘ\$<EFBFBD><EFBFBD>)<29><>jLƁU`<60>S<EFBFBD>`Z ^<5E>|<0F><>r<EFBFBD>=<3D><0F>n登<6E><E799BB>TU 1Hyk<79><6B>t+\0v<1C>D<EFBFBD>\r <<3C><>ƙ<EFBFBD><C699>jG<><1E><>t<EFBFBD>*3%k<>Y ܲT*<2A>|\"C<1E><>lhE<68>(<28>\r<EFBFBD>8r<EFBFBD><EFBFBD>{<EFBFBD><18>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD>_<EFBFBD><5F>.6и<EFBFBD>;<3B><><EFBFBD><EFBFBD>rBj<1B>O'ۜ<><DB9C><EFBFBD>>\$<EFBFBD><EFBFBD>`^6<><36>9<EFBFBD>#<19><><EFBFBD><14>4X<03><>mh8:<3A><>c<EFBFBD><06>0<1D><>;<3B><><D489><EFBFBD><EFBFBD>;<3B>\\'(<28><><EFBFBD>t<EFBFBD>'+ <0B><1C><><EFBFBD><EFBFBD>̷<EFBFBD>^ <0B>]<5D><>N<EFBFBD>v<EFBFBD><76>#<23>,<08>v<EFBFBD><76><EFBFBD>O<EFBFBD>i<>ϖ<EFBFBD>><3E><><S<0E>A\\<02>\\<EFBFBD><EFBFBD><EFBFBD>!<21>3*tl`<60>u<EFBFBD>\0p'<27>7<EFBFBD>P<EFBFBD>9<7F>bs<62>{<EFBFBD>v<EFBFBD>{<EFBFBD><EFBFBD>7<EFBFBD>\"{<EFBFBD><EFBFBD>r<EFBFBD>a<EFBFBD>(<28>^<5E><><EFBFBD>E<EFBFBD><45><EFBFBD><EFBFBD><EFBFBD>g<><67>/<2F><><EFBFBD>U<EFBFBD>9g<39><67><EFBFBD>/<2F><>`<60>\nL\n<EFBFBD>)<07><><14>(A<>a<EFBFBD>\" <20><03><> <09>&<26>P<EFBFBD><14>@O\n0<>(M&<17>FJ'<27>! <20>0<EFBFBD><<3C>H<EFBFBD><48><EFBFBD><EFBFBD><0E><><EFBFBD>*<2A>|<7C><>*<2A>OZ<4F>m*n/b<>/<2F><><EFBFBD><EFBFBD><EFBFBD> <0C><>.<2E><><EFBFBD>o\0<EFBFBD><EFBFBD>dn<EFBFBD>)<29><1E><><EFBFBD>i<EFBFBD>:R<><52><EFBFBD>P2<50>m<EFBFBD>\0/v<>OX<4F><58><1C>Fʳψ<CAB3><0F><><EFBFBD>\"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<04>0<08><><EFBFBD><EFBFBD><16>0b<30><62>gj<><6A>\$<EFBFBD>n<EFBFBD>0}<05> <05>@<40> =MƂ 0n<30>P<EFBFBD>/p<>ot<6F><10><><EFBFBD><EFBFBD><EFBFBD>.<12>̽ <0B>g\0<EFBFBD>)o<>\n0<EFBFBD><EFBFBD><EFBFBD>\rF<><46> <0B><07>b<EFBFBD>i<EFBFBD><69>o}\n<EFBFBD>̯<> NQ <0B>' <0B>x<EFBFBD>Fa<46>J<04><><EFBFBD><EFBFBD>L<EFBFBD><10><0F><><04><>\r<EFBFBD><EFBFBD>\r<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<><07>' <0C><><EFBFBD>d oep<><13>4D<34><44>ʐ<>q(~<7E><> <20>\r<EFBFBD>E<10><>pr<70>QVFH<46>l<EFBFBD><6C>Kj<4B><6A><EFBFBD>N&<26>j!<21>H`<11>_bh\r1<EFBFBD> <0C><> n!<21>Ɏ<> z<><7A><EFBFBD><13><> <0C>\\<0F><>\r<EFBFBD><07><><EFBFBD>`V_k<5F><6B>\"\\ׂ'V<05><>\0ʾ`AC<><43><EFBFBD><EFBFBD><18><>V<EFBFBD>`\r%<25><><EFBFBD><02><><EFBFBD>\r<EFBFBD><EFBFBD><0E><>k@N<><4E><EFBFBD><EFBFBD>B<><11> <20>!<21>\n<EFBFBD>\0Z<EFBFBD> 6<>\$d<EFBFBD><EFBFBD>,%<03>%la<19>H<EFBFBD>\n<EFBFBD>#<23>S\$ !\$@<40><>2<><32><EFBFBD>I\$r<EFBFBD>{!<21><>J<EFBFBD>2H<32>ZM\\<EFBFBD><EFBFBD>hb,<2C> '||cj~g<>r<EFBFBD>`<60>ļ<EFBFBD>\$<EFBFBD><EFBFBD><EFBFBD> +<2B>A1<41><31>E<1F><><1F><> <<3C>L<EFBFBD><11>\$<EFBFBD>Y%-FD<46><44>d<EFBFBD>L<><E784B3>\n@<40>bVf<56><66>;2_(<28><>L<EFBFBD>п<EFBFBD> <05><%@ڜ,\"<EFBFBD>d<EFBFBD><EFBFBD>N<EFBFBD>er<EFBFBD>\0<EFBFBD><EFBFBD>`<60><0E>Z <0C><>4<EFBFBD>'ld9-<2D>#`<60><>Ŗ<EFBFBD><C596><EFBFBD><EFBFBD><EFBFBD>j6<6A>ƣ<EFBFBD>v<07><><04>N<EFBFBD>͐f<CD90><66><>&<26>B\$ <0B><> (<28>Z&<26><><EFBFBD>278I <20><><EFBFBD>P\rk\\<EFBFBD><EFBFBD><EFBFBD>2`<60>\rdLb@E<14><>2`P( B'<27> <0B><><0F><>0<EFBFBD>&<05><>{<EFBFBD><EFBFBD><EFBFBD>:<3A><>dB<64>1<EFBFBD>^؉*\r\0c<K<>|<06>5sZ<73>`<60><><EFBFBD>O3<4F>5=@<40>5<EFBFBD>C>@<40>W* =\0N<g<>6s67Sm7u? {<&L<04>.3~D<><44>\rŚ <0C>x<EFBFBD><13>),r<>in<>/<2F><>O\0o{0k<EFBFBD>]3>m<><05>1\0<EFBFBD>I@<40>9T34+ԙ@e<0F>GFMC<4D>\rE3<EFBFBD>Etm!<13>#1<>D @<40>H(<28><>n <20><><g,V`R]@<40><><EFBFBD><EFBFBD>3Cr7s~<7E>GI<>i@\0v<EFBFBD><EFBFBD>5\rV<EFBFBD>'<1A><><EFBFBD> <0C><><08>P<05><>\r<EFBFBD>\$<b<>%(<28>Dd<44><64>PW<50><57><EFBFBD><EFBFBD>b<EFBFBD> fO <20>x\0<EFBFBD>} <20> <0B><>lb<6C>&<26>vj4<>LS<1A><>ִԶ5&dsF M<>4<EFBFBD><18>\".H<>M0<4D>1uL<>\"<EFBFBD><EFBFBD>/J`<60>{<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>xǐYu*\"U.I53Q<33>3Q<33><51>J<EFBFBD><4A>g<EFBFBD><67>5<EFBFBD>s<><73><EFBFBD>&jь<6A><D18C>u<EFBFBD>٭ЪGQ MTmGB<47>t l-c<>*<2A><>\r<02><>Z7<5A><37><1B>*hs/RUV<55><56><EFBFBD><EFBFBD>B<EFBFBD>Nˈ<4E><CB88><06><><EFBFBD>Ԋ<>i<EFBFBD>Lk<4C>.<2E><><EFBFBD>t<EFBFBD><74><EFBFBD>rYi<59><69><EFBFBD>-S<><53>3<EFBFBD>\\<EFBFBD>T<EFBFBD>OM^<5E>G><3E>ZQj<51><07><>\"<EFBFBD><EFBFBD><EFBFBD>i<EFBFBD><EFBFBD>MsS<EFBFBD>S\$Ib f<><13><>u<EFBFBD><75><08><><EFBFBD>:<04>SB|i<><69><0F><>8 v<07>#<02><>D<EFBFBD>4`<60><>.<2E><>^<5E>H<EFBFBD>M<EFBFBD>_ռ<5F>u<EFBFBD><75>U<EFBFBD>z`Z<>J e<><65><EFBFBD>@Ce<43><65>a<EFBFBD>\"m<>b<12>6ԯJR<4A><EFBFBD> <0C>T<EFBFBD>?ԣXMZ<4D><5A>І<EFBFBD><D086>p<EFBFBD><70><0F><>Qv<51>j<13>jV<6A>{<EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>\r<EFBFBD><EFBFBD>7<16><54> <20><>5{P<EFBFBD><EFBFBD>]<12>\r<EFBFBD>?Q<>AA<41><41><07><><EFBFBD><EFBFBD>2񾠓V)Ji<><69>-N 99f<39>l Jm<><6D>;u<>@<40><F<>Ѡ<EFBFBD>e<EFBFBD>j <0C><>Ħ<>I<EFBFBD><+CW@<40><><18><><EFBFBD>Z<EFBFBD>l<EFBFBD>1<EFBFBD><2<>iF<69>7`KG<4B>~L&+N<08><>YtWH飑w <0E><1A><><19>l<EFBFBD><6C>s'g<04><>q+L<>zbiz<69><7A><EFBFBD>Ţ<EFBFBD><>zW<7A><57> <20>zd<06>W<EFBFBD><57><EFBFBD><EFBFBD>(<17>y)v<>E4,\0<EFBFBD> \"d<><64>\$B<EFBFBD>{<EFBFBD><EFBFBD>!)1U<31>5b p#<23>}m=<3D><>@<40>w<12> P\0<EFBFBD>\r<EFBFBD> <0C><><EFBFBD><EFBFBD>`O|<7C><><0E> <09>ɍ<EFBFBD><C98D><EFBFBD><EFBFBD>Y<EFBFBD><59><15>E<EFBFBD><45>Ou<4F>_<EFBFBD>\n`F`<60>}
get_lang(){global$a;return$a;}function
lang($v,$F=null){if(is_string($v)){$kf=array_search($v,get_translations("en"));if($kf!==false)$v=$kf;}global$a,$hh;$gh=($hh[$v]?$hh[$v]:$v);if(is_array($gh)){$kf=($F==1?0:($a=='cs'||$a=='sk'?($F&&$F<5?1:2):($a=='fr'?(!$F?0:1):($a=='pl'?($F%10>1&&$F%10<5&&$F/10%10!=1?1:2):($a=='sl'?($F%100==1?0:($F%100==2?1:($F%100==3||$F%100==4?2:3))):($a=='lt'?($F%10==1&&$F%100!=11?0:($F%10>1&&$F/10%10!=1?1:2)):($a=='lv'?($F%10==1&&$F%100!=11?0:($F?1:2)):($a=='bs'||$a=='ru'||$a=='sr'||$a=='uk'?($F%10==1&&$F%100!=11?0:($F%10>1&&$F%10<5&&$F/10%10!=1?1:2)):1))))))));$gh=$gh[$kf];}$ua=func_get_args();array_shift($ua);$Kc=str_replace("%d","%s",$gh);if($Kc!=$gh)$ua[0]=format_number($F);return
vsprintf($Kc,$ua);}function
switch_lang(){global$a,$Ed;echo"<form action='' method='post'>\n<div id='lang'>",lang(20).": ".html_select("lang",$Ed,$a,"this.form.submit();")," <input type='submit' value='".lang(21)."' class='hidden'>\n","<input type='hidden' name='token' value='".get_token()."'>\n";echo"</div>\n</form>\n";}if(isset($_POST["lang"])&&verify_token()){cookie("adminer_lang",$_POST["lang"]);$_SESSION["lang"]=$_POST["lang"];$_SESSION["translations"]=array();redirect(remove_from_uri());}$a="en";if(isset($Ed[$_COOKIE["adminer_lang"]])){cookie("adminer_lang",$_COOKIE["adminer_lang"]);$a=$_COOKIE["adminer_lang"];}elseif(isset($Ed[$_SESSION["lang"]]))$a=$_SESSION["lang"];else{$ka=array();preg_match_all('~([-a-z]+)(;q=([0-9.]+))?~',str_replace("_","-",strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"])),$Td,PREG_SET_ORDER);foreach($Td
as$C)$ka[$C[1]]=(isset($C[3])?$C[3]:1);arsort($ka);foreach($ka
as$z=>$H){if(isset($Ed[$z])){$a=$z;break;}$z=preg_replace('~-.*~','',$z);if(!isset($ka[$z])&&isset($Ed[$z])){$a=$z;break;}}}$hh=$_SESSION["translations"];if($_SESSION["translations_version"]!=2038034077){$hh=array();$_SESSION["translations_version"]=2038034077;}function
get_translations($Dd){switch($Dd){case"en":$f="A9D<07>y<EFBFBD>@s:<3A>G<EFBFBD><47>(<28>ff<66><66><EFBFBD><EFBFBD><EFBFBD> <09><>:<1B>S<><53><EFBFBD>a2 \"1<>..L'<27>I<EFBFBD><49>m<EFBFBD>#<23>s,<2C>K<17><>OP#I<>@%9<><39>i4<08>o2ύ<32><CF8D><EFBFBD><EFBFBD><EFBFBD>,9<>%<02>P<EFBFBD>b2<19><06>a<EFBFBD><61>r\n2<EFBFBD>NC<>(<28>r4<72><34>1CdH<64>e9,<2C>\nH(<28>:Eb<45>9A<14>i:<02>&<26>y<EFBFBD>w<1C><>{<EFBFBD>(<28> 'h,@p<><1D><>zM<7A>52N<><4E>D<EFBFBD><44>z2<7A>\ny3(+W<><57><1B>&3y<33><79>k:<3A><><EFBFBD>\rv<EFBFBD>c!<21><>i<EFBFBD><69>~_k3<6B><33><EFBFBD>X<EFBFBD><58>L0<4C><30><EFBFBD>S<72><DDAD><EFBFBD>gsu8<75><38>9j<39>5<0E><><EFBFBD>9u<39>QCn<43><6E>a9<61><39><EFBFBD>s'+E<15>kI<6B><49>Q<EFBFBD>(.k<>2<EFBFBD><32><<3C><>B<08>6<EFBFBD>k<EFBFBD>@<40><><EFBFBD>Z<EFBFBD><5A><03>Φ<EFBFBD>#Ƥ<>nBE<07><><13><0E>\0Ђ<EFBFBD> <0C><><EFBFBD>><3E>`@\$cB3<07><10>:<0E><><EFBFBD><05>x<EFBFBD><1F><><18><+8<><17><>x<EFBFBD><15>c<EFBFBD><63><17>J\0|6<><36><EFBFBD><EFBFBD>3,<2C><6E>x<EFBFBD>5N`<60>1<EFBFBD><31>\n<EFBFBD><EFBFBD>D<EFBFBD><EFBFBD>:C<>Ȅ<EFBFBD><C884><08>Ѯ,<2C><>;<3B>3<EFBFBD><1C><><EFBFBD>h<EFBFBD>;<3B> <03>+<2B>/[<5B>9<EFBFBD><39><08><<3C>`HKEQ<45><51><EFBFBD>7<EFBFBD><37>{<EFBFBD>*+<2B>I<><49>km<04><><EFBFBD>@<40><>h\r<<3C><>c0<63>:<3A>a\0<EFBFBD>0ҭh<EFBFBD>1L<EFBFBD>P<EFBFBD>:<3A><> <20><><EFBFBD><08>3<EFBFBD>#;E]<5D>՝\n1<EFBFBD>\0S<EFBFBD><<3C><>B<EFBFBD>YB<59><50>m<EFBFBD><6D><EFBFBD><E7A5AD><EFBFBD><EFBFBD><EFBFBD> <20>:Y\"\rt<EFBFBD><EFBFBD><EFBFBD>`<60><>Ϩ8<CFA8><38><EFBFBD>ˆ<EFBFBD>6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>9<EFBFBD><39><EFBFBD><EFBFBD>O<><4F><EFBFBD>vB<76>0<EFBFBD>h D<>`6t<04>_<EFBFBD>}Յ`<60><><32>J<EFBFBD>h<EFBFBD><68><EFBFBD>,<2C>`<60>.t\"<EFBFBD>P<EFBFBD>-<2D><>j\"'<27>B~<7E>,<2C>r)t<>[<5B><><EFBFBD>\$;^5Se<0E>%<25><12>D<08><><EFBFBD><EFBFBD>%<25><>z:Q<12>B<EFBFBD><42>8<EFBFBD>7<EFBFBD><37>b<EFBFBD>9<EFBFBD>,z\rB<EFBFBD>Cx<EFBFBD>3\r<EFBFBD>jP<EFBFBD><EFBFBD><EFBFBD>@*\r<EFBFBD><EFBFBD>7(<28> 7Co<43><6F>V@<40><><EFBFBD>jI<15><><EFBFBD>.<2E>Hu R<04><>5<EFBFBD><35>!<10>9<EFBFBD><39><EFBFBD>><3E><>[K<>0<EFBFBD><1B><><EFBFBD><EFBFBD>ln<6C> <20>gV%<02>\$7\ri<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AR<1A>6<> <20>i<EFBFBD>1<EFBFBD>#Ʊ<>sDZ<><C7B1> <20>pl<70>9H<39>J<EFBFBD><4A>Kct<63>xv<1B>.<2E><> <0B>b)<29><>Ҁ<EFBFBD><D280>r;<3B>a<EFBFBD>S<EFBFBD>ǭiBT<42>.2[<5B>&<26>*x<>馡t_<18><><EFBFBD>qG<><47><EFBFBD>!w<>t<EFBFBD>\$\\<EFBFBD><EFBFBD><12>,<2C><>;<3B>̭<>U<><1B>\n<EFBFBD>@A<><41><14><><1C>:*G<><47><EFBFBD>W2<57>P<EFBFBD>|t<>5<EFBFBD>2<EFBFBD>P<1C><>\$K<EFBFBD><EFBFBD><EFBFBD>Rd <20>tg<74><67><EFBFBD>̾<>+mn!<21><><EFBFBD>H<EFBFBD><48><EFBFBD>\"_<07>x=H\$U<><55>1<><E99B9F>q<19>\\ <20>1<EFBFBD>FHB<48>H\nDѿ<44>A@\$<EFBFBD><EFBFBD><EFBFBD>%^I<>A(Ra<52><61>+<2B>N<EFBFBD><4E><EFBFBD>i3D\\<EFBFBD><18>O<EFBFBD>2&\$<EFBFBD><EFBFBD><EFBFBD> ܫ<><EFBFBD><E9B387> <06><1A><>z<EFBFBD>'Č9<C48C><39>6<EFBFBD>a<EFBFBD>V\n<EFBFBD>>3<><33>\r*<2A>o<EFBFBD><6F>ƒH@<40>[<5B>51<35><:<3A>@˜R<08>z<06>Ԭ͔<D4AC>\$<EFBFBD>e<EFBFBD>9 LJIY-%<25><>73<37>֣<><D6A3>&<26><>4<EFBFBD><34><EFBFBD>O<EFBFBD>z&<26><>.<2E><>Z<EFBFBD>{<08><12><>D!/<2F><>9<16>R<EFBFBD>\r1&䨒CLK<><4B>'t1<74><31>6 <09>K3<4B>u<EFBFBD>‚<EFBFBD>1BxS\n<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD>MSt<EFBFBD><EFBFBD><EFBFBD>ȸ̖\r9<EFBFBD>1u<31><75><EFBFBD><EFBFBD>%<25><05><>WFP<46>5e<35>tH<74>#<23><>wp@<14>t<EFBFBD>'h<><68>`<60><14>-<2D><><04><>i<EFBFBD>A<EFBFBD>9p(iT<69><54><EFBFBD>x<>Q<EFBFBD>&T<1C><04><><02>P<08>*PM<>\0D<08>0\"<EFBFBD><EFBFBD>6<EFBFBD><14><> '<27><><EFBFBD>Z<EFBFBD><01>q<EFBFBD>?KypS<70>Ʊ<15>d<EFBFBD><64><14><><EFBFBD>`G*<2A><>(<28>pOt<4F>e\$Ⱃɘ<EFBFBD><16>P<EFBFBD>Xi<58>2F<32><46> Db<><62>uVl<56>2<EFBFBD><15><10>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <0C>3GAYB<59><04><><02>y<0E><><EFBFBD><13><>A<>\\(:<3A>p<EFBFBD>1b<31>Tf<54>@<40><1C><>I;eu<65>2<EFBFBD>b<EFBFBD><62>T<EFBFBD>3x<33><78><EFBFBD>YtkT<6B><54>9<EFBFBD><39>1<EFBFBD><31><EFBFBD>^%<25>t<EFBFBD><74>ܐ<EFBFBD>d<EFBFBD><15><>x\n<EFBFBD><EFBFBD>;-0<>]S<><53>-w8<77><38>2\n<1C>ݴx<><7F>M<>`g<><67><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><18> c<>\n<EFBFBD>62Я<EFBFBD><EFBFBD> <09>N0<4E><30><EFBFBD>Ҁ <20>@<40>u<EFBFBD>S<EFBFBD>Cn<43><6E>Y4U<34> <20>L<><4C>h<07><>X)5w<35><77>T! \$ <09>\\%샋<>V&<26>x<EFBFBD>N<>-o<>@ <0B>&1A<31>GV<><02><>q<EFBFBD>E1<45><31>B<13>Z.ox<6F><78>5<EFBFBD>z<EFBFBD>@N1.\r<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>1<>:<3A><>.A<><41><EFBFBD>LB<4C>l<EFBFBD><6C><EFBFBD>c@<40>߉C{ę<12><>|<7C><>v-<2D><><EFBFBD> <0C>lm<6C>Y}˭<>l ›<>ձE<D5B1>\$x<EFBFBD>gpG3<47>Tk=<3D><><EFBFBD>@<40><>9<EFBFBD>=\0(+<2B><50>q7<71><37> )+<2B>4<EFBFBD><34><EFBFBD>pfGt<47><04>b<EFBFBD><62><6C>9(<28><><EFBFBD><EFBFBD>=<3D><>礿<08>`<60>02D<32><44><EFBFBD>զsc<73>I<EFBFBD>&D<>Ij<49>h><>E<EFBFBD><45><EFBFBD><EFBFBD>lwN p<><70>u<EFBFBD>k<EFBFBD>[]שt<D7A9><74>-t<>`<60>]<5D><>t<EFBFBD><74>0<EFBFBD>l<EFBFBD><6C>2<EFBFBD><32><EFBFBD>]5H<35>\$r<>j<EFBFBD>U<EFBFBD><55>n[<5B><><EFBFBD><EFBFBD>Y<EFBFBD>0<EFBFBD><01>(<28><><EFBFBD><EFBFBD>*<2A><>F<EFBFBD><46>Ԫ<EFBFBD>c<15><>0wP<77>W2<05><><EFBFBD><EFBFBD><EFBFBD><46>0<><30><EFBFBD>Ҫ<EFBFBD>:<3A><><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>*<2A><><EFBFBD><1D>LJ<04><><EFBFBD><EFBFBD>p<EFBFBD>i<EFBFBD>6|<7C><><31>N!<21>xzz<7A><7A>XХ<>bG]dȚ<64><C89A><13>!pf<70><66><EFBFBD><04><>B<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c1<63>:<3A><><EFBFBD>#^<1B><>x<EFBFBD>d<EFBFBD><71>Z)A<7F>;K<>t<EFBFBD><74>y:<3A>!<21><>{a<EFBFBD><EFBFBD><EFBFBD>!<21>y<>e6<65>)b|K<><4B><EFBFBD><EFBFBD>P<EFBFBD><50>r<><72>C+tY<74>w<EFBFBD>A<EFBFBD>D.<2E><05><>,<2C><><EFBFBD><EFBFBD>RlWhh<68>g<EFBFBD><67>w[ <20><>)<29><1E><>k<EFBFBD><6B><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<04><>1<EFBFBD>:<3A>é_b<>Oa<4F><1C><01>z<EFBFBD><EFBFBD>ɫ<EFBFBD>r<<3C>`;!<02><>+A/UĶN<1F>%7<>pW<>><1F><>{f<EFBFBD><EFBFBD>M<EFBFBD>ϲ*<14><>Se<53>2?<3F><>A<EFBFBD><41>S0RiN<04><>ǔv.<2E><>s<EFBFBD>>6<><36><EFBFBD>z<EFBFBD><7A>J?W@<40><><EFBFBD>?<3F><12>!'<27>3<01>\r<EFBFBD>D<EFBFBD><EFBFBD>H<> f<>><3E>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD>c<EFBFBD><63><EFBFBD>4<EFBFBD><34><EFBFBD>\ro<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0F><><EFBFBD>)<01><><EFBFBD><0E><><EFBFBD>⽀ֽ<E2BD80><D6BD>A<EFBFBD>`<60>:<3A><><EFBFBD><EFBFBD>O<EFBFBD><4F>pQ<04><><EFBFBD><EFBFBD>l%<<3C><><EFBFBD>=0<08>Fu<06><>h<EFBFBD><68>S<EFBFBD><53>0<EFBFBD>\"<EFBFBD>\"Q<07>\\<EFBFBD><EFBFBD><EFBFBD><10><0F><><EFBFBD><EFBFBD>><05>><3E><>8<EFBFBD><08> S<><53><0E>ށ<EFBFBD>M\0<EFBFBD>8<EFBFBD>@<40>\$<EFBFBD>.<2E><><EFBFBD> <0B><><EFBFBD>C|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#Фof<6F>#\"<EFBFBD>-<2D><> LPMU<05><><EFBFBD>͆<EFBFBD>P<EFBFBD>߰<EFBFBD><DFB0>Nr<4E>h<EFBFBD>M<EFBFBD><4D>i<>\r+<2B><>d>܂0l<30>\r <20>m#\0(l<><6C><EFBFBD>,<2C>\0<EFBFBD>\n<EFBFBD><EFBFBD><05>pe<70>h/<2F><><EFBFBD>.<2E><>JD<4A><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><14> <0C><>&eEDd<44>z<EFBFBD>O85<38><35><11>\"<EFBFBD><EFBFBD>ئ<EFBFBD>7c<08><>/⚿<> <20>Qpm)<29>U<EFBFBD>`7&<26><>f<EFBFBD>J<EFBFBD><4A><EFBFBD><EFBFBD>@Z<><5A>:<3A>v*-D<>p \"Nkh<6B><68>iJ<>M<EFBFBD><4D><EFBFBD><EFBFBD><EFBFBD> <0C><>;<3B><><EFBFBD>kk-<2D><>Ch|<7C><><0E><><EFBFBD>\$⑾/q<><71>E<EFBFBD>6<EFBFBD>'m<><1D><><EFBFBD><EFBFBD><63><CBB0>!\r<EFBFBD>j<EFBFBD><EFBFBD><EFBFBD>\nN:\0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>n \".Y2<08>5<>^1<>C <20>%<25><><1F>nA\"<EFBFBD>\"vSp*<2A><><EFBFBD>zk<7A><1C><><16>`TB<54><42>k_<>d<EFBFBD><05>,<2C><>.\0<EFBFBD>- v`O<>d <20>)<29><><EFBFBD>&<26><><EFBFBD><EFBFBD> <0C>Z@BL<42>I<EFBFBD>*L<>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><05>";break;case"ar":$f="<EFBFBD>C<EFBFBD>P<EFBFBD><><C28D>l*<2A>\r<EFBFBD>,&\n<EFBFBD>A<EFBFBD><15><><EFBFBD>(J.<19><>0Se\\<EFBFBD>\r<EFBFBD><EFBFBD>b<>@<40>0<>,\nQ,l)<29><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD>A<14><>j_1<5F>C<EFBFBD>M<EFBFBD><4D>e <0B><>S<>\ng@<40>Og<4F><67><EFBFBD><EFBFBD>X<EFBFBD>DM<44>)<29><>0<18><>cA<63><41>n8<1C>e*y#au4<75><34> <20>Ir*:<3A><><EFBFBD><EFBFBD><10><><EFBFBD><1C><>C#<23>%<U[VD<56><44><EFBFBD><EFBFBD><EFBFBD><02><><EFBFBD>XT\nh<EFBFBD><EFBFBD><EFBFBD><16>‡1<>b1Y<31><59><EFBFBD>M7<4D><37>M<EFBFBD>Q<01><>v2<76>\r<EFBFBD><EFBFBD><01><>i;M<>S9<53><39> :m<0E>!<21><><EFBFBD>:\r;<3B><><EFBFBD>Ż<EFBFBD><C5BB>e\r<EFBFBD><EFBFBD>^k<>\\B<EFBFBD>U<EFBFBD>eP<>e2թOf<4F><04>B3v<33> <><EA83A5><EFBFBD>z<EFBFBD>I<EFBFBD><49><1D>ߕ<EFBFBD> u<>tl+<2B><><EFBFBD>/<2F><>*<2A><>[f;<3B><>\0<EFBFBD>9Cx䧮,<2C>p<EFBFBD><10><><EFBFBD><EFBFBD>-<2D>{<04>i<><69><EFBFBD><EFBFBD><EFBFBD> 2<>'<27>ܨ<><DCA8><EFBFBD>b<EFBFBD><62>kbB<62><42>(!P<><50>hB<68>U&<26><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>r<><72><EFBFBD><EFBFBD>Ԃ<EFBFBD>\"r3<>L<EFBFBD># <20><><EFBFBD><EFBFBD>\0<EFBFBD>7<EFBFBD>͐<EFBFBD>:#n<18> L<08>1<EFBFBD>Û<EFBFBD>3<EFBFBD> <0C><>9<EFBFBD><08>؎<EFBFBD>K<EFBFBD><4B>̭<EFBFBD><CCAD>9<EFBFBD><39><EFBFBD><EFBFBD><01><>4C(<28><1E>C@<40>:<03>t<17><><EFBFBD>\$ 2<><32> <09>C8^2<><32>x<EFBFBD><><CFA3><17>J`|6<>M<EFBFBD><4D>3BCk<43>4<EFBFBD><34>px<17>!򞐖&<26>m<15><11>?<1C><><EFBFBD>'\\<EFBFBD>o\$<EFBFBD><EFBFBD>j<EFBFBD>Q\0G<EFBFBD><EFBFBD>=%<25><19><>x<>H<EFBFBD>\"h\\<EFBFBD>%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<2B>#<23><>5<EFBFBD><35>(<28>(<08><>n%<25><>_\r <20>ͦ<EFBFBD><CDA6>\$<15>Y]<5D>R<12>F2<46><<08>0<EFBFBD>:<3A><>\0<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 =~<7E>CL\n<EFBFBD>!<21><>Z<EFBFBD><5A>)<29><><EFBFBD>kR<<3C>J<>#ٵ<>%^Ǭ<><C7AC>Y>)<29><>l<16><>Wn<57><6E>-<2D>\\<EFBFBD><EFBFBD>P<EFBFBD><EFBFBD>\r<EFBFBD><03>ݣc<18>7@K<>%n0<6E>Ȧ(<28><>R<1C><><EFBFBD>-<2D><> w<>9<19>O|<7C>GHN<48>g<EFBFBD><67><1C><>f<EFBFBD><66>2<EFBFBD><32><EFBFBD><EFBFBD>\0[<5B>+<2B>ߚ!k]<5D><><EFBFBD>z<EFBFBD><7A><1D>+<2B>W<EFBFBD><57>:M<><4D>癛%oY<6F><59><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD><4C>pC<70>~!Y<><59>y<><79>^<5E>ة<EFBFBD>%\r<EFBFBD>ږ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><8<>t<EFBFBD>X<EFBFBD>j|B<>/<2F>G<>ø<EFBFBD>K<16><>s<EFBFBD><73><EFBFBD><EFBFBD>y|<7C><>2lyv<04><>(2<><32><EFBFBD><08>:\r<EFBFBD>ST<EFBFBD>\\<EFBFBD><EFBFBD><EFBFBD>3 <0C>d<EFBFBD><64><EFBFBD>r<06>!<21> :<3A>VB<><42><EFBFBD>U<EFBFBD>p<EFBFBD><0E>P<EFBFBD>3<EFBFBD>#6\r<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD>t\0<EFBFBD>9}c<08>O<> <20>+<2B>%p<>N8(`<60>Ȣ\$<EFBFBD><EFBFBD><EFBFBD>A|&!<19>[i3\n<EFBFBD><EFBFBD><04><>X<1C>bj><3E><>*<2A>d<1E><1B>\r!<21>,<2C>#Z<>T:<3A>Qj5G<35>&<26>a2<61>JiN<02><><EFBFBD>C<EFBFBD><43>S<EFBFBD><53>C<>^}<7D><><EFBFBD>)<29>0Èr<12><> <0B>0<><30>fꮉp<EAAE89> <20><><19>g
Min_PDO{var$_result,$server_info,$affected_rows,$errno,$error,$pdo;function
__construct(){global$c;$kf=array_search("SQL",$c->operators);if($kf!==false)unset($c->operators[$kf]);}function
dsn($Ub,$V,$df,$Ge=array()){$Ge[PDO::ATTR_ERRMODE]=PDO::ERRMODE_SILENT;$Ge[PDO::ATTR_STATEMENT_CLASS]=array('Min_PDOStatement');try{$this->pdo=new
PDO($Ub,$V,$df,$Ge);}catch(Exception$oc){auth_error(h($oc->getMessage()));}$this->server_info=@$this->pdo->getAttribute(PDO::ATTR_SERVER_VERSION);}function
quote($yg){return$this->pdo->quote($yg);}function
query($I,$oh=false){$J=$this->pdo->query($I);$this->error="";if(!$J){list(,$this->errno,$this->error)=$this->pdo->errorInfo();if(!$this->error)$this->error=lang(22);return
false;}$this->store_result($J);return$J;}function
multi_query($I){return$this->_result=$this->query($I);}function
store_result($J=null){if(!$J){$J=$this->_result;if(!$J)return
false;}if($J->columnCount()){$J->num_rows=$J->rowCount();return$J;}$this->affected_rows=$J->rowCount();return
true;}function
next_result(){if(!$this->_result)return
false;$this->_result->_offset=0;return@$this->_result->nextRowset();}function
result($I,$n=0){$J=$this->query($I);if(!$J)return
false;$L=$J->fetch();return$L[$n];}}class
Min_PDOStatement
extends
PDOStatement{var$_offset=0,$num_rows;function
fetch_assoc(){return$this->fetch(PDO::FETCH_ASSOC);}function
fetch_row(){return$this->fetch(PDO::FETCH_NUM);}function
fetch_field(){$L=(object)$this->getColumnMeta($this->_offset++);$L->orgtable=$L->table;$L->orgname=$L->name;$L->charsetnr=(in_array("blob",(array)$L->flags)?63:0);return$L;}}}$Qb=array();function
add_driver($u,$E){global$Qb;$Qb[$u]=$E;}function
get_driver($u){global$Qb;return$Qb[$u];}class
Min_SQL{var$_conn;function
__construct($g){$this->_conn=$g;}function
select($Q,$N,$Z,$s,$Ie=array(),$_=1,$G=0,$rf=false){global$c,$y;$ud=(count($s)<count($N));$I=$c->selectQueryBuild($N,$Z,$s,$Ie,$_,$G);if(!$I)$I="SELECT".limit(($_GET["page"]!="last"&&$_!=""&&$s&&$ud&&$y=="sql"?"SQL_CALC_FOUND_ROWS ":"").implode(", ",$N)."\nFROM ".table($Q),($Z?"\nWHERE ".implode(" AND ",$Z):"").($s&&$ud?"\nGROUP BY ".implode(", ",$s):"").($Ie?"\nORDER BY ".implode(", ",$Ie):""),($_!=""?+$_:null),($G?$_*$G:0),"\n");$ug=microtime(true);$K=$this->_conn->query($I);if($rf)echo$c->selectQuery($I,$ug,!$K);return$K;}function
delete($Q,$zf,$_=0){$I="FROM ".table($Q);return
queries("DELETE".($_?limit1($Q,$I,$zf):" $I$zf"));}function
update($Q,$P,$zf,$_=0,$cg="\n"){$Dh=array();foreach($P
as$z=>$X)$Dh[]="$z = $X";$I=table($Q)." SET$cg".implode(",$cg",$Dh);return
queries("UPDATE".($_?limit1($Q,$I,$zf,$cg):" $I$zf"));}function
insert($Q,$P){return
queries("INSERT INTO ".table($Q).($P?" (".implode(", ",array_keys($P)).")\nVALUES (".implode(", ",$P).")":" DEFAULT VALUES"));}function
insertUpdate($Q,$M,$qf){return
false;}function
begin(){return
queries("BEGIN");}function
commit(){return
queries("COMMIT");}function
rollback(){return
queries("ROLLBACK");}function
slowQuery($I,$Ug){}function
convertSearch($v,$X,$n){return$v;}function
convertOperator($De){return$De;}function
value($X,$n){return(method_exists($this->_conn,'value')?$this->_conn->value($X,$n):(is_resource($X)?stream_get_contents($X):$X));}function
quoteBinary($Tf){return
q($Tf);}function
warnings(){return'';}function
tableHelp($E){}function
hasCStyleEscapes(){return
false;}}class
Adminer{var$operators;function
name(){return"<a href='https://www.adminer.org/'".target_blank()." id='h1'>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($O){return
h($O);}function
database(){return
DB;}function
databases($Fc=true){return
get_databases($Fc);}function
schemas(){return
schemas();}function
queryTimeout(){return
2;}function
headers(){}function
csp(){return
csp();}function
head(){return
true;}function
css(){$K=array();$Bc="adminer.css";if(file_exists($Bc))$K[]="$Bc?v=".crc32(file_get_contents($Bc));return$K;}function
loginForm(){global$Qb;echo"<table class='layout'>\n",$this->loginFormField('driver','<tr><th>'.lang(23).'<td>',html_select("auth[driver]",$Qb,DRIVER,"loginDriver(this);")."\n"),$this->loginFormField('server','<tr><th>'.lang(24).'<td>','<input name="auth[server]" value="'.h(SERVER).'" title="hostname[:port]" placeholder="localhost" autocapitalize="off">'."\n"),$this->loginFormField('username','<tr><th>'.lang(25).'<td>','<input name="auth[username]" id="username" autofocus value="'.h($_GET["username"]).'" autocomplete="username" autocapitalize="off">'.script("qs('#username').form['auth[driver]'].onchange();")),$this->loginFormField('password','<tr><th>'.lang(26).'<td>','<input type="password" name="auth[password]" autocomplete="current-password">'."\n"),$this->loginFormField('db','<tr><th>'.lang(27).'<td>','<input name="auth[db]" value="'.h($_GET["db"]).'" autocapitalize="off">'."\n"),"</table>\n","<p><input type='submit' value='".lang(28)."'>\n",checkbox("auth[permanent]",1,$_COOKIE["adminer_permanent"],lang(29))."\n";}function
loginFormField($E,$bd,$Y){return$bd.$Y;}function
login($Pd,$df){if($df=="")return
lang(30,target_blank());return
true;}function
tableName($Fg){return
h($Fg["Name"]);}function
fieldName($n,$Ie=0){return'<span title="'.h($n["full_type"]).'">'.h($n["field"]).'</span>';}function
selectLinks($Fg,$P=""){global$y,$l;echo'<p class="links">';$Od=array("select"=>lang(31));if(support("table")||support("indexes"))$Od["table"]=lang(32);if(support("table")){if(is_view($Fg))$Od["view"]=lang(33);else$Od["create"]=lang(34);}if($P!==null)$Od["edit"]=lang(35);$E=$Fg["Name"];foreach($Od
as$z=>$X)echo" <a href='".h(ME)."$z=".urlencode($E).($z=="edit"?$P:"")."'".bold(isset($_GET[$z])).">$X</a>";echo
doc_link(array($y=>$l->tableHelp($E)),"?"),"\n";}function
foreignKeys($Q){return
foreign_keys($Q);}function
backwardKeys($Q,$Eg){return
array();}function
backwardKeysPrint($Ba,$L){}function
selectQuery($I,$ug,$xc=false){global$y,$l;$K="</p>\n";if(!$xc&&($Lh=$l->warnings())){$u="warnings";$K=", <a href='#$u'>".lang(36)."</a>".script("qsl('a').onclick = partial(toggle, '$u');","")."$K<div id='$u' class='hidden'>\n$Lh</div>\n";}return"<p><code class='jush-$y'>".h(str_replace("\n"," ",$I))."</code> <span class='time'>(".format_time($ug).")</span>".(support("sql")?" <a href='".h(ME)."sql=".urlencode($I)."'>".lang(11)."</a>":"").$K;}function
sqlCommandQuery($I){return
shorten_utf8(trim($I),1000);}function
rowDescription($Q){return"";}function
rowDescriptions($M,$Ic){return$M;}function
selectLink($X,$n){}function
selectVal($X,$A,$n,$Qe){$K=($X===null?"<i>NULL</i>":(preg_match("~char|binary|boolean~",$n["type"])&&!preg_match("~var~",$n["type"])?"<code>$X</code>":$X));if(preg_match('~blob|bytea|raw|file~',$n["type"])&&!is_utf8($X))$K="<i>".lang(37,strlen($Qe))."</i>";if(preg_match('~json~',$n["type"]))$K="<code class='jush-js'>$K</code>";return($A?"<a href='".h($A)."'".(is_url($A)?target_blank():"").">$K</a>":$K);}function
editVal($X,$n){return$X;}function
tableStructurePrint($o){global$zg;echo"<div class='scrollable'>\n","<table class='nowrap odds'>\n","<thead><tr><th>".lang(38)."<td>".lang(39).(support("comment")?"<td>".lang(40):"")."</thead>\n";foreach($o
as$n){echo"<tr><th>".h($n["field"]);$U=h($n["full_type"]);echo"<td><span title='".h($n["collation"])."'>".(in_array($U,(array)$zg[lang(9)])?"<a href='".h(ME.'type='.urlencode($U))."'>$U</a>":$U)."</span>",($n["null"]?" <i>NULL</i>":""),($n["auto_increment"]?" <i>".lang(41)."</i>":""),(isset($n["default"])?" <span title='".lang(42)."'>[<b>".h($n["default"])."</b>]</span>":""),(support("comment")?"<td>".h($n["comment"]):""),"\n";}echo"</table>\n","</div>\n";}function
tableIndexesPrint($x){echo"<table>\n";foreach($x
as$E=>$w){ksort($w["columns"]);$rf=array();foreach($w["columns"]as$z=>$X)$rf[]="<i>".h($X)."</i>".($w["lengths"][$z]?"(".$w["lengths"][$z].")":"").($w["descs"][$z]?" DESC":"");echo"<tr title='".h($E)."'><th>$w[type]<td>".implode(", ",$rf)."\n";}echo"</table>\n";}function
selectColumnsPrint($N,$e){global$Oc,$Uc;print_fieldset("select",lang(43),$N);$t=0;$N[""]=array();foreach($N
as$z=>$X){$X=$_GET["columns"][$z];$d=select_input(" name='columns[$t][col]'",$e,$X["col"],($z!==""?"selectFieldChange":"selectAddRow"));echo"<div>".($Oc||$Uc?"<select name='columns[$t][fun]'>".optionlist(array(-1=>"")+array_filter(array(lang(44)=>$Oc,lang(45)=>$Uc)),$X["fun"])."</select>".on_help("getTarget(event).value && getTarget(event).value.replace(/ |\$/, '(') + ')'",1).script("qsl('select').onchange = function () { helpClose();".($z!==""?"":" qsl('select, input', this.parentNode).onchange();")." };","")."($d)":$d)."</div>\n";$t++;}echo"</div></fieldset>\n";}function
selectSearchPrint($Z,$e,$x){print_fieldset("search",lang(46),$Z);foreach($x
as$t=>$w){if($w["type"]=="FULLTEXT"){echo"<div>(<i>".implode("</i>, <i>",array_map('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";}}$Na="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"],$this->operators))){echo"<div>".select_input(" name='where[$t][col]'",$e,$X["col"],($X?"selectFieldChange":"selectAddRow"),"(".lang(47).")"),html_select("where[$t][op]",$this->operators,$X["op"],$Na),"<input type='search' name='where[$t][val]' value='".h($X["val"])."'>",script("mixin(qsl('input'), {oninput: function () { $Na }, onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});",""),"</div>\n";}}echo"</div></fieldset>\n";}function
selectOrderPrint($Ie,$e,$x){print_fieldset("sort",lang(48),$Ie);$t=0;foreach((array)$_GET["order"]as$z=>$X){if($X!=""){echo"<div>".select_input(" name='order[$t]'",$e,$X,"selectFieldChange"),checkbox("desc[$t]",1,isset($_GET["desc"][$z]),lang(49))."</div>\n";$t++;}}echo"<div>".select_input(" name='order[$t]'",$e,"","selectAddRow"),checkbox("desc[$t]",1,false,lang(49))."</div>\n","</div></fieldset>\n";}function
selectLimitPrint($_){echo"<fieldset><legend>".lang(50)."</legend><div>";echo"<input type='number' name='limit' class='size' value='".h($_)."'>",script("qsl('input').oninput = selectFieldChange;",""),"</div></fieldset>\n";}function
selectLengthPrint($Sg){if($Sg!==null){echo"<fieldset><legend>".lang(51)."</legend><div>","<input type='number' name='text_length' class='size' value='".h($Sg)."'>","</div></fieldset>\n";}}function
selectActionPrint($x){echo"<fieldset><legend>".lang(52)."</legend><div>","<input type='submit' value='".lang(43)."'>"," <span id='noindex' title='".lang(53)."'></span>","<script".nonce().">\n","var indexColumns = ";$e=array();foreach($x
as$w){$wb=reset($w["columns"]);if($w["type"]!="FULLTEXT"&&$wb)$e[$wb]=1;}$e[""]=1;foreach($e
as$z=>$X)json_row($z);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($cc,$e){}function
selectColumnsProcess($e,$x){global$Oc,$Uc;$N=array();$s=array();foreach((array)$_GET["columns"]as$z=>$X){if($X["fun"]=="count"||($X["col"]!=""&&(!$X["fun"]||in_array($X["fun"],$Oc)||in_array($X["fun"],$Uc)))){$N[$z]=apply_sql_function($X["fun"],($X["col"]!=""?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],$Uc))$s[]=$N[$z];}}return
array($N,$s);}function
selectSearchProcess($o,$x){global$g,$l;$K=array();foreach($x
as$t=>$w){if($w["type"]=="FULLTEXT"&&$_GET["fulltext"][$t]!="")$K[]="MATCH (".implode(", ",array_map('idf_escape',$w["columns"])).") AGAINST (".q($_GET["fulltext"][$t]).(isset($_GET["boolean"][$t])?" IN BOOLEAN MODE":"").")";}foreach((array)$_GET["where"]as$z=>$X){if("$X[col]$X[val]"!=""&&in_array($X["op"],$this->operators)){$of="";$ib=" $X[op]";if(preg_match('~IN$~',$X["op"])){$jd=process_length($X["val"]);$ib.=" ".($jd!=""?$jd:"(NULL)");}elseif($X["op"]=="SQL")$ib=" $X[val]";elseif($X["op"]=="LIKE %%")$ib=" LIKE ".$this->processInput($o[$X["col"]],"%$X[val]%");elseif($X["op"]=="ILIKE %%")$ib=" ILIKE ".$this->processInput($o[$X["col"]],"%$X[val]%");elseif($X["op"]=="FIND_IN_SET"){$of="$X[op](".q($X["val"]).", ";$ib=")";}elseif(!preg_match('~NULL$~',$X["op"]))$ib.=" ".$this->processInput($o[$X["col"]],$X["val"]);if($X["col"]!="")$K[]=$of.$l->convertSearch(idf_escape($X["col"]),$X,$o[$X["col"]]).$ib;else{$cb=array();foreach($o
as$E=>$n){if((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"])))$cb[]=$of.$l->convertSearch(idf_escape($E),$X,$n).$ib;}$K[]=($cb?"(".implode(" OR ",$cb).")":"1 = 0");}}}return$K;}function
selectOrderProcess($o,$x){$K=array();foreach((array)$_GET["order"]as$z=>$X){if($X!="")$K[]=(preg_match('~^((COUNT\(DISTINCT |[A-Z0-9_]+\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\)|COUNT\(\*\))$~',$X)?$X:idf_escape($X)).(isset($_GET["desc"][$z])?" DESC":"");}return$K;}function
selectLimitProcess(){return(isset($_GET["limit"])?$_GET["limit"]:"50");}function
selectLengthProcess(){return(isset($_GET["text_length"])?$_GET["text_length"]:"100");}function
selectEmailProcess($Z,$Ic){return
false;}function
selectQueryBuild($N,$Z,$s,$Ie,$_,$G){return"";}function
messageQuery($I,$Tg,$xc=false){global$y,$l;restart_session();$cd=&get_session("queries");if(!$cd[$_GET["db"]])$cd[$_GET["db"]]=array();if(strlen($I)>1e6)$I=preg_replace('~[\x80-\xFF]+$~','',substr($I,0,1e6))."\n";$cd[$_GET["db"]][]=array($I,time(),$Tg);$rg="sql-".count($cd[$_GET["db"]]);$K="<a href='#$rg' class='toggle'>".lang(54)."</a>\n";if(!$xc&&($Lh=$l->warnings())){$u="warnings-".count($cd[$_GET["db"]]);$K="<a href='#$u' class='toggle'>".lang(36)."</a>, $K<div id='$u' class='hidden'>\n$Lh</div>\n";}return" <span class='time'>".@date("H:i:s")."</span>"." $K<div id='$rg' class='hidden'><pre><code class='jush-$y'>".shorten_utf8($I,1000)."</code></pre>".($Tg?" <span class='time'>($Tg)</span>":'').(support("sql")?'<p><a href="'.h(str_replace("db=".urlencode(DB),"db=".urlencode($_GET["db"]),ME).'sql=&history='.(count($cd[$_GET["db"]])-1)).'">'.lang(11).'</a>':'').'</div>';}function
editRowPrint($Q,$o,$L,$vh){}function
editFunctions($n){global$Xb;$K=($n["null"]?"NULL/":"");$vh=isset($_GET["select"])||where($_GET);foreach($Xb
as$z=>$Oc){if(!$z||(!isset($_GET["call"])&&$vh)){foreach($Oc
as$ff=>$X){if(!$ff||preg_match("~$ff~",$n["type"]))$K.="/$X";}}if($z&&!preg_match('~set|blob|bytea|raw|file|bool~',$n["type"]))$K.="/SQL";}if($n["auto_increment"]&&!$vh)$K=lang(41);return
explode("/",$K);}function
editInput($Q,$n,$xa,$Y){if($n["type"]=="enum")return(isset($_GET["select"])?"<label><input type='radio'$xa value='-1' checked><i>".lang(8)."</i></label> ":"").($n["null"]?"<label><input type='radio'$xa value=''".($Y!==null||isset($_GET["select"])?"":" checked")."><i>NULL</i></label> ":"").enum_input("radio",$xa,$n,$Y,$Y===0?0:null);return"";}function
editHint($Q,$n,$Y){return"";}function
processInput($n,$Y,$r=""){if($r=="SQL")return$Y;$E=$n["field"];$K=q($Y);if(preg_match('~^(now|getdate|uuid)$~',$r))$K="$r()";elseif(preg_match('~^current_(date|timestamp)$~',$r))$K=$r;elseif(preg_match('~^([+-]|\|\|)$~',$r))$K=idf_escape($E)." $r $K";elseif(preg_match('~^[+-] interval$~',$r))$K=idf_escape($E)." $r ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+\$~i",$Y)?$Y:$K);elseif(preg_match('~^(addtime|subtime|concat)$~',$r))$K="$r(".idf_escape($E).", $K)";elseif(preg_match('~^(md5|sha1|password|encrypt)$~',$r))$K="$r($K)";return
unconvert_field($n,$K);}function
dumpOutput(){$K=array('text'=>lang(55),'file'=>lang(56));if(function_exists('gzencode'))$K['gz']='gzip';return$K;}function
dumpFormat(){return
array('sql'=>'SQL','csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function
dumpDatabase($k){}function
dumpTable($Q,$_g,$wd=0){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($_g)dump_csv(array_keys(fields($Q)));}else{if($wd==2){$o=array();foreach(fields($Q)as$E=>$n)$o[]=idf_escape($E)." $n[full_type]";$i="CREATE TABLE ".table($Q)." (".implode(", ",$o).")";}else$i=create_sql($Q,$_POST["auto_increment"],$_g);set_utf8mb4($i);if($_g&&$i){if($_g=="DROP+CREATE"||$wd==1)echo"DROP ".($wd==2?"VIEW":"TABLE")." IF EXISTS ".table($Q).";\n";if($wd==1)$i=remove_definer($i);echo"$i;\n\n";}}}function
dumpData($Q,$_g,$I){global$g,$y;if($_g){$Vd=($y=="sqlite"?0:1048576);$o=array();if($_POST["format"]=="sql"){if($_g=="TRUNCATE+INSERT")echo
truncate_sql($Q).";\n";$o=fields($Q);}$J=$g->query($I,1);if($J){$pd="";$Ja="";$zd=array();$Pc=array();$Bg="";$_c=($Q!=''?'fetch_assoc':'fetch_row');while($L=$J->$_c()){if(!$zd){$Dh=array();foreach($L
as$X){$n=$J->fetch_field();if($o[$n->name]['generated']){$Pc[$n->name]=true;continue;}$zd[]=$n->name;$z=idf_escape($n->name);$Dh[]="$z = VALUES($z)";}$Bg=($_g=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$Dh):"").";\n";}if($_POST["format"]!="sql"){if($_g=="table"){dump_csv($zd);$_g="INSERT";}dump_csv($L);}else{if(!$pd)$pd="INSERT INTO ".table($Q)." (".implode(", ",array_map('idf_escape',$zd)).") VALUES";foreach($L
as$z=>$X){if($Pc[$z]){unset($L[$z]);continue;}$n=$o[$z];$L[$z]=($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");}$Tf=($Vd?"\n":" ")."(".implode(",\t",$L).")";if(!$Ja)$Ja=$pd.$Tf;elseif(strlen($Ja)+4+strlen($Tf)+strlen($Bg)<$Vd)$Ja.=",$Tf";else{echo$Ja.$Bg;$Ja=$pd.$Tf;}}}if($Ja)echo$Ja.$Bg;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",$g->error)."\n";}}function
dumpFilename($gd){return
friendly_url($gd!=""?$gd:(SERVER!=""?SERVER:"localhost"));}function
dumpHeaders($gd,$ie=false){$Se=$_POST["output"];$uc=(preg_match('~sql~',$_POST["format"])?"sql":($ie?"tar":"csv"));header("Content-Type: ".($Se=="gz"?"application/x-gzip":($uc=="tar"?"application/x-tar":($uc=="sql"||$Se!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($Se=="gz")ob_start('ob_gzencode',1e6);return$uc;}function
importServerPath(){return"adminer.sql";}function
homepage(){echo'<p class="links">'.($_GET["ns"]==""&&support("database")?'<a href="'.h(ME).'database=">'.lang(57)."</a>\n":""),(support("scheme")?"<a href='".h(ME)."scheme='>".($_GET["ns"]!=""?lang(58):lang(59))."</a>\n":""),($_GET["ns"]!==""?'<a href="'.h(ME).'schema=">'.lang(60)."</a>\n":""),(support("privileges")?"<a href='".h(ME)."privileges='>".lang(61)."</a>\n":"");return
true;}function
navigation($he){global$fa,$y,$Qb,$g;echo'<h1>
',$this->name(),'<span class="version">
',$fa,' <a href="https://www.adminer.org/#download"',target_blank(),' id="version">',(version_compare($fa,$_COOKIE["adminer_version"])<0?h($_COOKIE["adminer_version"]):""),'</a>
</span>
</h1>
';switch_lang();if($he=="auth"){$Se="";foreach((array)$_SESSION["pwds"]as$Fh=>$eg){foreach($eg
as$O=>$Bh){foreach($Bh
as$V=>$df){if($df!==null){$Bb=$_SESSION["db"][$Fh][$O][$V];foreach(($Bb?array_keys($Bb):array(""))as$k)$Se.="<li><a href='".h(auth_url($Fh,$O,$V,$k))."'>($Qb[$Fh]) ".h($V.($O!=""?"@".$this->serverName($O):"").($k!=""?" - $k":""))."</a>\n";}}}}if($Se)echo"<ul id='logins'>\n$Se</ul>\n".script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});");}else{$S=array();if($_GET["ns"]!==""&&!$he&&DB!=""){$g->select_db(DB);$S=table_status('',true);}echo
script_src(preg_replace("~\\?.*~","",ME)."?file=jush.js&version=4.17.1");if(support("sql")){echo'<script',nonce(),'>
';if($S){$Od=array();foreach($S
as$Q=>$U)$Od[]=preg_quote($Q,'/');echo"var jushLinks = { $y: [ '".js_escape(ME).(support("table")?"table=":"select=")."\$&', /\\b(".implode("|",$Od).")\\b/g ] };\n";foreach(array("bac","bra","sqlite_quo","mssql_bra")as$X)echo"jushLinks.$X = jushLinks.$y;\n";}$dg=$g->server_info;echo'bodyLoad(\'',(is_object($g)?preg_replace('~^(\d\.?\d).*~s','\1',$dg):""),'\'',(preg_match('~MariaDB~',$dg)?", true":""),');
</script>
';}$this->databasesPrint($he);$la=array();if(DB==""||!$he){if(support("sql")){$la[]="<a href='".h(ME)."sql='".bold(isset($_GET["sql"])&&!isset($_GET["import"])).">".lang(54)."</a>";$la[]="<a href='".h(ME)."import='".bold(isset($_GET["import"])).">".lang(62)."</a>";}if(support("dump"))$la[]="<a href='".h(ME)."dump=".urlencode(isset($_GET["table"])?$_GET["table"]:$_GET["select"])."' id='dump'".bold(isset($_GET["dump"])).">".lang(63)."</a>";}$kd=$_GET["ns"]!==""&&!$he&&DB!="";if($kd)$la[]='<a href="'.h(ME).'create="'.bold($_GET["create"]==="").">".lang(64)."</a>";echo($la?"<p class='links'>\n".implode("\n",$la)."\n":"");if($kd){if($S)$this->tablesPrint($S);else
echo"<p class='message'>".lang(10)."</p>\n";}}}function
databasesPrint($he){global$c,$g;$j=$this->databases();if(DB&&$j&&!in_array(DB,$j))array_unshift($j,DB);echo'<form action="">
<p id="dbs">
';hidden_fields_get();$_b=script("mixin(qsl('select'), {onmousedown: dbMouseDown, onchange: dbChange});");echo"<span title='".lang(27)."'>".lang(65)."</span>: ".($j?"<select name='db'>".optionlist(array(""=>"")+$j,DB)."</select>$_b":"<input name='db' value='".h(DB)."' autocapitalize='off' size='19'>\n"),"<input type='submit' value='".lang(21)."'".($j?" class='hidden'":"").">\n";foreach(array("import","sql","schema","dump","privileges")as$X){if(isset($_GET[$X])){echo"<input type='hidden' name='$X' value=''>";break;}}echo"</p></form>\n";}function
tablesPrint($S){echo"<ul id='tables'>".script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($S
as$Q=>$vg){$E=$this->tableName($vg);if($E!=""){echo'<li><a href="'.h(ME).'select='.urlencode($Q).'"'.bold($_GET["select"]==$Q||$_GET["edit"]==$Q,"select")." title='".lang(31)."'>".lang(66)."</a> ",(support("table")||support("indexes")?'<a href="'.h(ME).'table='.urlencode($Q).'"'.bold(in_array($Q,array($_GET["table"],$_GET["create"],$_GET["indexes"],$_GET["foreign"],$_GET["trigger"])),(is_view($vg)?"view":"structure"))." title='".lang(32)."'>$E</a>":"<span>$E</span>")."\n";}}echo"</ul>\n";}}$c=(function_exists('adminer_object')?adminer_object():new
Adminer);$Qb=array("server"=>"MySQL")+$Qb;if(!defined("DRIVER")){define("DRIVER","server");if(extension_loaded("mysqli")){class
Min_DB
extends
MySQLi{var$extension="MySQLi";function
__construct(){parent::init();}function
connect($O="",$V="",$df="",$zb=null,$jf=null,$mg=null){global$c;mysqli_report(MYSQLI_REPORT_OFF);list($ed,$jf)=explode(":",$O,2);$tg=$c->connectSsl();if($tg)$this->ssl_set($tg['key'],$tg['cert'],$tg['ca'],'','');$K=@$this->real_connect(($O!=""?$ed:ini_get("mysqli.default_host")),($O.$V!=""?$V:ini_get("mysqli.default_user")),($O.$V.$df!=""?$df:ini_get("mysqli.default_pw")),$zb,(is_numeric($jf)?$jf:ini_get("mysqli.default_port")),(!is_numeric($jf)?$jf:$mg),($tg?(empty($tg['cert'])?2048:64):0));$this->options(MYSQLI_OPT_LOCAL_INFILE,false);return$K;}function
set_charset($Oa){if(parent::set_charset($Oa))return
true;parent::set_charset('utf8');return$this->query("SET NAMES $Oa");}function
result($I,$n=0){$J=$this->query($I);if(!$J)return
false;$L=$J->fetch_array();return$L[$n];}function
quote($yg){return"'".$this->escape_string($yg)."'";}}}elseif(extension_loaded("mysql")&&!((ini_bool("sql.safe_mode")||ini_bool("mysql.allow_local_infile"))&&extension_loaded("pdo_mysql"))){class
Min_DB{var$extension="MySQL",$server_info,$affected_rows,$errno,$error,$_link,$_result;function
connect($O,$V,$df){if(ini_bool("mysql.allow_local_infile")){$this->error=lang(67,"'mysql.allow_local_infile'","MySQLi","PDO_MySQL");return
false;}$this->_link=@mysql_connect(($O!=""?$O:ini_get("mysql.default_host")),("$O$V"!=""?$V:ini_get("mysql.default_user")),("$O$V$df"!=""?$df:ini_get("mysql.default_password")),true,131072);if($this->_link)$this->server_info=mysql_get_server_info($this->_link);else$this->error=mysql_error();return(bool)$this->_link;}function
set_charset($Oa){if(function_exists('mysql_set_charset')){if(mysql_set_charset($Oa,$this->_link))return
true;mysql_set_charset('utf8',$this->_link);}return$this->query("SET NAMES $Oa");}function
quote($yg){return"'".mysql_real_escape_string($yg,$this->_link)."'";}function
select_db($zb){return
mysql_select_db($zb,$this->_link);}function
query($I,$oh=false){$J=@($oh?mysql_unbuffered_query($I,$this->_link):mysql_query($I,$this->_link));$this->error="";if(!$J){$this->errno=mysql_errno($this->_link);$this->error=mysql_error($this->_link);return
false;}if($J===true){$this->affected_rows=mysql_affected_rows($this->_link);$this->info=mysql_info($this->_link);return
true;}return
new
Min_Result($J);}function
multi_query($I){return$this->_result=$this->query($I);}function
store_result(){return$this->_result;}function
next_result(){return
false;}function
result($I,$n=0){$J=$this->query($I);if(!$J||!$J->num_rows)return
false;return
mysql_result($J->_result,0,$n);}}class
Min_Result{var$num_rows,$_result,$_offset=0;function
__construct($J){$this->_result=$J;$this->num_rows=mysql_num_rows($J);}function
fetch_assoc(){return
mysql_fetch_assoc($this->_result);}function
fetch_row(){return
mysql_fetch_row($this->_result);}function
fetch_field(){$K=mysql_fetch_field($this->_result,$this->_offset++);$K->orgtable=$K->table;$K->orgname=$K->name;$K->charsetnr=($K->blob?63:0);return$K;}function
__destruct(){mysql_free_result($this->_result);}}}elseif(extension_loaded("pdo_mysql")){class
Min_DB
extends
Min_PDO{var$extension="PDO_MySQL";function
connect($O,$V,$df){global$c;$Ge=array(PDO::MYSQL_ATTR_LOCAL_INFILE=>false);$tg=$c->connectSsl();if($tg){if(!empty($tg['key']))$Ge[PDO::MYSQL_ATTR_SSL_KEY]=$tg['key'];if(!empty($tg['cert']))$Ge[PDO::MYSQL_ATTR_SSL_CERT]=$tg['cert'];if(!empty($tg['ca']))$Ge[PDO::MYSQL_ATTR_SSL_CA]=$tg['ca'];if(!empty($tg['verify']))$Ge[PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT]=$tg['verify'];}$this->dsn("mysql:charset=utf8;host=".str_replace(":",";unix_socket=",preg_replace('~:(\d)~',';port=\1',$O)),$V,$df,$Ge);return
true;}function
set_charset($Oa){$this->query("SET NAMES $Oa");}function
select_db($zb){return$this->query("USE ".idf_escape($zb));}function
query($I,$oh=false){$this->pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,!$oh);return
parent::query($I,$oh);}}}class
Min_Driver
extends
Min_SQL{function
insert($Q,$P){return($P?parent::insert($Q,$P):queries("INSERT INTO ".table($Q)." ()\nVALUES ()"));}function
insertUpdate($Q,$M,$qf){$e=array_keys(reset($M));$of="INSERT INTO ".table($Q)." (".implode(", ",$e).") VALUES\n";$Dh=array();foreach($e
as$z)$Dh[$z]="$z = VALUES($z)";$Bg="\nON DUPLICATE KEY UPDATE ".implode(", ",$Dh);$Dh=array();$Ld=0;foreach($M
as$P){$Y="(".implode(", ",$P).")";if($Dh&&(strlen($of)+$Ld+strlen($Y)+strlen($Bg)>1e6)){if(!queries($of.implode(",\n",$Dh).$Bg))return
false;$Dh=array();$Ld=0;}$Dh[]=$Y;$Ld+=strlen($Y)+2;}return
queries($of.implode(",\n",$Dh).$Bg);}function
slowQuery($I,$Ug){if(min_version('5.7.8','10.1.2')){if(preg_match('~MariaDB~',$this->_conn->server_info))return"SET STATEMENT max_statement_time=$Ug FOR $I";elseif(preg_match('~^(SELECT\b)(.+)~is',$I,$C))return"$C[1] /*+ MAX_EXECUTION_TIME(".($Ug*1000).") */ $C[2]";}}function
convertSearch($v,$X,$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(){$J=$this->_conn->query("SHOW WARNINGS");if($J&&$J->num_rows){ob_start();select($J);return
ob_get_clean();}}function
tableHelp($E){$Rd=preg_match('~MariaDB~',$this->_conn->server_info);if(information_schema(DB))return
strtolower("information-schema-".($Rd?"$E-table/":str_replace("_","-",$E)."-table.html"));if(DB=="mysql")return($Rd?"mysql$E-table/":"system-schema.html");}function
hasCStyleEscapes(){static$Ka;if($Ka===null){$sg=$this->_conn->result("SHOW VARIABLES LIKE 'sql_mode'",1);$Ka=(strpos($sg,'NO_BACKSLASH_ESCAPES')===false);}return$Ka;}}function
idf_escape($v){return"`".str_replace("`","``",$v)."`";}function
table($v){return
idf_escape($v);}function
connect(){global$c,$nh,$zg,$Xb;$g=new
Min_DB;$sb=$c->credentials();if($g->connect($sb[0],$sb[1],$sb[2])){$g->set_charset(charset($g));$g->query("SET sql_quote_show_create = 1, autocommit = 1");if(min_version('5.7.8',10.2,$g)){$zg[lang(68)][]="json";$nh["json"]=4294967295;}if(min_version('',10.7,$g)){$zg[lang(68)][]="uuid";$nh["uuid"]=128;$Xb[0]['uuid']='uuid';}if(min_version(9,'',$g)){$zg[lang(69)][]="vector";$nh["vector"]=16383;$Xb[0]['vector']='string_to_vector';}return$g;}$K=$g->error;if(function_exists('iconv')&&!is_utf8($K)&&strlen($Tf=iconv("windows-1250","utf-8",$K))>strlen($K))$K=$Tf;return$K;}function
get_databases($Fc){$K=get_session("dbs");if($K===null){$I=(min_version(5)?"SELECT SCHEMA_NAME FROM information_schema.SCHEMATA ORDER BY SCHEMA_NAME":"SHOW DATABASES");$K=($Fc?slow_query($I):get_vals($I));restart_session();set_session("dbs",$K);stop_session();}return$K;}function
limit($I,$Z,$_,$ue=0,$cg=" "){return" $I$Z".($_!==null?$cg."LIMIT $_".($ue?" OFFSET $ue":""):"");}function
limit1($Q,$I,$Z,$cg="\n"){return
limit($I,$Z,1,0,$cg);}function
db_collation($k,$bb){global$g;$K=null;$i=$g->result("SHOW CREATE DATABASE ".idf_escape($k),1);if(preg_match('~ COLLATE ([^ ]+)~',$i,$C))$K=$C[1];elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$i,$C))$K=$bb[$C[1]][-1];return$K;}function
engines(){$K=array();foreach(get_rows("SHOW ENGINES")as$L){if(preg_match("~YES|DEFAULT~",$L["Support"]))$K[]=$L["Engine"];}return$K;}function
logged_user(){global$g;return$g->result("SELECT USER()");}function
tables_list(){return
get_key_vals(min_version(5)?"SELECT TABLE_NAME, TABLE_TYPE FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ORDER BY TABLE_NAME":"SHOW TABLES");}function
count_tables($j){$K=array();foreach($j
as$k)$K[$k]=count(get_vals("SHOW TABLES IN ".idf_escape($k)));return$K;}function
table_status($E="",$yc=false){$K=array();foreach(get_rows($yc&&min_version(5)?"SELECT TABLE_NAME AS Name, ENGINE AS Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ".($E!=""?"AND TABLE_NAME = ".q($E):"ORDER BY Name"):"SHOW TABLE STATUS".($E!=""?" LIKE ".q(addcslashes($E,"%_\\")):""))as$L){if($L["Engine"]=="InnoDB")$L["Comment"]=preg_replace('~(?:(.+); )?InnoDB free: .*~','\1',$L["Comment"]);if(!isset($L["Engine"]))$L["Comment"]="";if($E!=""){$L["Name"]=$E;return$L;}$K[$L["Name"]]=$L;}return$K;}function
is_view($R){return$R["Engine"]===null;}function
fk_support($R){return
preg_match('~InnoDB|IBMDB2I~i',$R["Engine"])||(preg_match('~NDB~i',$R["Engine"])&&min_version(5.6));}function
fields($Q){$K=array();foreach(get_rows("SHOW FULL COLUMNS FROM ".table($Q))as$L){preg_match('~^([^( ]+)(?:\((.+)\))?( unsigned)?( zerofill)?$~',$L["Type"],$C);$K[$L["Field"]]=array("field"=>$L["Field"],"full_type"=>$L["Type"],"type"=>$C[1],"length"=>$C[2],"unsigned"=>ltrim($C[3].$C[4]),"default"=>($L["Default"]!=""||preg_match("~char|set~",$C[1])?(preg_match('~text~',$C[1])?stripslashes(preg_replace("~^'(.*)'\$~",'\1',$L["Default"])):$L["Default"]):null),"null"=>($L["Null"]=="YES"),"auto_increment"=>($L["Extra"]=="auto_increment"),"on_update"=>(preg_match('~^on update (.+)~i',$L["Extra"],$C)?$C[1]:""),"collation"=>$L["Collation"],"privileges"=>array_flip(preg_split('~, *~',$L["Privileges"])),"comment"=>$L["Comment"],"primary"=>($L["Key"]=="PRI"),"generated"=>preg_match('~^(VIRTUAL|PERSISTENT|STORED)~',$L["Extra"]),);}return$K;}function
indexes($Q,$h=null){$K=array();foreach(get_rows("SHOW INDEX FROM ".table($Q),$h)as$L){$E=$L["Key_name"];$K[$E]["type"]=($E=="PRIMARY"?"PRIMARY":($L["Index_type"]=="FULLTEXT"?"FULLTEXT":($L["Non_unique"]?($L["Index_type"]=="SPATIAL"?"SPATIAL":"INDEX"):"UNIQUE")));$K[$E]["columns"][]=$L["Column_name"];$K[$E]["lengths"][]=($L["Index_type"]=="SPATIAL"?null:$L["Sub_part"]);$K[$E]["descs"][]=null;}return$K;}function
foreign_keys($Q){global$g,$Ae;static$ff='(?:`(?:[^`]|``)+`|"(?:[^"]|"")+")';$K=array();$qb=$g->result("SHOW CREATE TABLE ".table($Q),1);if($qb){preg_match_all("~CONSTRAINT ($ff) FOREIGN KEY ?\\(((?:$ff,? ?)+)\\) REFERENCES ($ff)(?:\\.($ff))? \\(((?:$ff,? ?)+)\\)(?: ON DELETE ($Ae))?(?: ON UPDATE ($Ae))?~",$qb,$Td,PREG_SET_ORDER);foreach($Td
as$C){preg_match_all("~$ff~",$C[2],$ng);preg_match_all("~$ff~",$C[5],$Ng);$K[idf_unescape($C[1])]=array("db"=>idf_unescape($C[4]!=""?$C[3]:$C[4]),"table"=>idf_unescape($C[4]!=""?$C[4]:$C[3]),"source"=>array_map('idf_unescape',$ng[0]),"target"=>array_map('idf_unescape',$Ng[0]),"on_delete"=>($C[6]?$C[6]:"RESTRICT"),"on_update"=>($C[7]?$C[7]:"RESTRICT"),);}}return$K;}function
view($E){global$g;return
array("select"=>preg_replace('~^(?:[^`]|`[^`]*`)*\s+AS\s+~isU','',$g->result("SHOW CREATE VIEW ".table($E),1)));}function
collations(){$K=array();foreach(get_rows("SHOW COLLATION")as$L){if($L["Default"])$K[$L["Charset"]][-1]=$L["Collation"];else$K[$L["Charset"]][]=$L["Collation"];}ksort($K);foreach($K
as$z=>$X)asort($K[$z]);return$K;}function
information_schema($k){return(min_version(5)&&$k=="information_schema")||(min_version(5.5)&&$k=="performance_schema");}function
error(){global$g;return
h(preg_replace('~^You have an error.*syntax to use~U',"Syntax error",$g->error));}function
create_database($k,$ab){return
queries("CREATE DATABASE ".idf_escape($k).($ab?" COLLATE ".q($ab):""));}function
drop_databases($j){$K=apply_queries("DROP DATABASE",$j,'idf_escape');restart_session();set_session("dbs",null);return$K;}function
rename_database($E,$ab){$K=false;if(create_database($E,$ab)){$S=array();$Ih=array();foreach(tables_list()as$Q=>$U){if($U=='VIEW')$Ih[]=$Q;else$S[]=$Q;}$K=(!$S&&!$Ih)||move_tables($S,$Ih,$E);drop_databases($K?array(DB):array());}return$K;}function
auto_increment(){$_a=" 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)){$_a="";break;}if($w["type"]=="PRIMARY")$_a=" UNIQUE";}}return" AUTO_INCREMENT$_a";}function
alter_table($Q,$E,$o,$Hc,$fb,$fc,$ab,$za,$af){$ta=array();foreach($o
as$n)$ta[]=($n[1]?($Q!=""?($n[0]!=""?"CHANGE ".idf_escape($n[0]):"ADD"):" ")." ".implode($n[1]).($Q!=""?$n[2]:""):"DROP ".idf_escape($n[0]));$ta=array_merge($ta,$Hc);$vg=($fb!==null?" COMMENT=".q($fb):"").($fc?" ENGINE=".q($fc):"").($ab?" COLLATE ".q($ab):"").($za!=""?" AUTO_INCREMENT=$za":"");if($Q=="")return
queries("CREATE TABLE ".table($E)." (\n".implode(",\n",$ta)."\n)$vg$af");if($Q!=$E)$ta[]="RENAME TO ".table($E);if($vg)$ta[]=ltrim($vg);return($ta||$af?queries("ALTER TABLE ".table($Q)."\n".implode(",\n",$ta).$af):true);}function
alter_indexes($Q,$ta){foreach($ta
as$z=>$X)$ta[$z]=($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($Q).implode(",",$ta));}function
truncate_tables($S){return
apply_queries("TRUNCATE TABLE",$S);}function
drop_views($Ih){return
queries("DROP VIEW ".implode(", ",array_map('table',$Ih)));}function
drop_tables($S){return
queries("DROP TABLE ".implode(", ",array_map('table',$S)));}function
move_tables($S,$Ih,$Ng){global$g;$Jf=array();foreach($S
as$Q)$Jf[]=table($Q)." TO ".idf_escape($Ng).".".table($Q);if(!$Jf||queries("RENAME TABLE ".implode(", ",$Jf))){$Gb=array();foreach($Ih
as$Q)$Gb[table($Q)]=view($Q);$g->select_db($Ng);$k=idf_escape(DB);foreach($Gb
as$E=>$Hh){if(!queries("CREATE VIEW $E AS ".str_replace(" $k."," ",$Hh["select"]))||!queries("DROP VIEW $k.$E"))return
false;}return
true;}return
false;}function
copy_tables($S,$Ih,$Ng){queries("SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'");foreach($S
as$Q){$E=($Ng==DB?table("copy_$Q"):idf_escape($Ng).".".table($Q));if(($_POST["overwrite"]&&!queries("\nDROP TABLE IF EXISTS $E"))||!queries("CREATE TABLE $E LIKE ".table($Q))||!queries("INSERT INTO $E SELECT * FROM ".table($Q)))return
false;foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")))as$L){$ih=$L["Trigger"];if(!queries("CREATE TRIGGER ".($Ng==DB?idf_escape("copy_$ih"):idf_escape($Ng).".".idf_escape($ih))." $L[Timing] $L[Event] ON $E FOR EACH ROW\n$L[Statement];"))return
false;}}foreach($Ih
as$Q){$E=($Ng==DB?table("copy_$Q"):idf_escape($Ng).".".table($Q));$Hh=view($Q);if(($_POST["overwrite"]&&!queries("DROP VIEW IF EXISTS $E"))||!queries("CREATE VIEW $E AS $Hh[select]"))return
false;}return
true;}function
trigger($E){if($E=="")return
array();$M=get_rows("SHOW TRIGGERS WHERE `Trigger` = ".q($E));return
reset($M);}function
triggers($Q){$K=array();foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")))as$L)$K[$L["Trigger"]]=array($L["Timing"],$L["Event"]);return$K;}function
trigger_options(){return
array("Timing"=>array("BEFORE","AFTER"),"Event"=>array("INSERT","UPDATE","DELETE"),"Type"=>array("FOR EACH ROW"),);}function
routine($E,$U){global$g,$hc,$nd,$nh;$ra=array("bool","boolean","integer","double precision","real","dec","numeric","fixed","national char","national varchar");$og="(?:\\s|/\\*[\s\S]*?\\*/|(?:#|-- )[^\n]*\n?|--\r?\n)";$mh="((".implode("|",array_merge(array_keys($nh),$ra)).")\\b(?:\\s*\\(((?:[^'\")]|$hc)++)\\))?\\s*(zerofill\\s*)?(unsigned(?:\\s+zerofill)?)?)(?:\\s*(?:CHARSET|CHARACTER\\s+SET)\\s*['\"]?([^'\"\\s,]+)['\"]?)?";$ff="$og*(".($U=="FUNCTION"?"":$nd).")?\\s*(?:`((?:[^`]|``)*)`\\s*|\\b(\\S+)\\s+)$mh";$i=$g->result("SHOW CREATE $U ".idf_escape($E),2);preg_match("~\\(((?:$ff\\s*,?)*)\\)\\s*".($U=="FUNCTION"?"RETURNS\\s+$mh\\s+":"")."(.*)~is",$i,$C);$o=array();preg_match_all("~$ff\\s*,?~is",$C[1],$Td,PREG_SET_ORDER);foreach($Td
as$Ve)$o[]=array("field"=>str_replace("``","`",$Ve[2]).$Ve[3],"type"=>strtolower($Ve[5]),"length"=>preg_replace_callback("~$hc~s",'normalize_enum',$Ve[6]),"unsigned"=>strtolower(preg_replace('~\s+~',' ',trim("$Ve[8] $Ve[7]"))),"null"=>1,"full_type"=>$Ve[4],"inout"=>strtoupper($Ve[1]),"collation"=>strtolower($Ve[9]),);return
array("fields"=>$o,"comment"=>$g->result("SELECT ROUTINE_COMMENT FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = ".q(DB)." AND ROUTINE_NAME = ".q($E)),)+($U!="FUNCTION"?array("definition"=>$C[11]):array("returns"=>array("type"=>$C[12],"length"=>$C[13],"unsigned"=>$C[15],"collation"=>$C[16]),"definition"=>$C[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 = ".q(DB));}function
routine_languages(){return
array();}function
routine_id($E,$L){return
idf_escape($E);}function
last_id(){global$g;return$g->result("SELECT LAST_INSERT_ID()");}function
explain($g,$I){return$g->query("EXPLAIN ".(min_version(5.1)&&!min_version(5.7)?"PARTITIONS ":"").$I);}function
found_rows($R,$Z){return($Z||$R["Engine"]!="InnoDB"?null:$R["Rows"]);}function
types(){return
array();}function
schemas(){return
array();}function
get_schema(){return"";}function
set_schema($Vf,$h=null){return
true;}function
create_sql($Q,$za,$_g){global$g;$K=$g->result("SHOW CREATE TABLE ".table($Q),1);if(!$za)$K=preg_replace('~ AUTO_INCREMENT=\d+~','',$K);return$K;}function
truncate_sql($Q){return"TRUNCATE ".table($Q);}function
use_sql($zb){return"USE ".idf_escape($zb);}function
trigger_sql($Q){$K="";foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")),null,"-- ")as$L)$K.="\nCREATE TRIGGER ".idf_escape($L["Trigger"])." $L[Timing] $L[Event] ON ".table($L["Table"])." FOR EACH ROW\n$L[Statement];;\n";return$K;}function
show_variables(){return
get_key_vals("SHOW VARIABLES");}function
process_list(){return
get_rows("SHOW FULL PROCESSLIST");}function
show_status(){return
get_key_vals("SHOW STATUS");}function
convert_field($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($n,$K){if(preg_match("~binary~",$n["type"]))$K="UNHEX($K)";if($n["type"]=="bit")$K="CONVERT(b$K, UNSIGNED)";if(preg_match("~geometry|point|linestring|polygon~",$n["type"])){$of=(min_version(8)?"ST_":"");$K=$of."GeomFromText($K, $of"."SRID($n[field]))";}return$K;}function
support($zc){return!preg_match("~scheme|sequence|type|view_trigger|materializedview".(min_version(8)?"":"|descidx".(min_version(5.1)?"":"|event|partitioning".(min_version(5)?"":"|routine|trigger|view"))).(min_version('8.0.16','10.2.1')?"":"|check")."~",$zc);}function
kill_process($X){return
queries("KILL ".number($X));}function
connection_id(){return"SELECT CONNECTION_ID()";}function
max_connections(){global$g;return$g->result("SELECT @@max_connections");}function
driver_config(){$nh=array();$zg=array();foreach(array(lang(69)=>array("tinyint"=>3,"smallint"=>5,"mediumint"=>8,"int"=>10,"bigint"=>20,"decimal"=>66,"float"=>12,"double"=>21),lang(70)=>array("date"=>10,"datetime"=>19,"timestamp"=>19,"time"=>10,"year"=>4),lang(68)=>array("char"=>255,"varchar"=>65535,"tinytext"=>255,"text"=>65535,"mediumtext"=>16777215,"longtext"=>4294967295),lang(71)=>array("enum"=>65535,"set"=>64),lang(72)=>array("bit"=>20,"binary"=>255,"varbinary"=>65535,"tinyblob"=>255,"blob"=>65535,"mediumblob"=>16777215,"longblob"=>4294967295),lang(73)=>array("geometry"=>0,"point"=>0,"linestring"=>0,"polygon"=>0,"multipoint"=>0,"multilinestring"=>0,"multipolygon"=>0,"geometrycollection"=>0),)as$z=>$X){$nh+=$X;$zg[$z]=array_keys($X);}return
array('possible_drivers'=>array("MySQLi","MySQL","PDO_MySQL"),'jush'=>"sql",'types'=>$nh,'structured_types'=>$zg,'unsigned'=>array("unsigned","zerofill","unsigned zerofill"),'operators'=>array("=","<",">","<=",">=","!=","LIKE","LIKE %%","REGEXP","IN","FIND_IN_SET","IS NULL","NOT LIKE","NOT REGEXP","NOT IN","IS NOT NULL","SQL"),'functions'=>array("char_length","date","from_unixtime","lower","round","floor","ceil","sec_to_time","time_to_sec","upper"),'grouping'=>array("avg","count","count distinct","group_concat","max","min","sum"),'edit_functions'=>array(array("char"=>"md5/sha1/password/encrypt/uuid","binary"=>"md5/sha1","date|time"=>"now",),array(number_type()=>"+/-","date"=>"+ interval/- interval","time"=>"addtime/subtime","char|text"=>"concat",)),);}}$jb=driver_config();$nf=$jb['possible_drivers'];$y=$jb['jush'];$nh=$jb['types'];$zg=$jb['structured_types'];$uh=$jb['unsigned'];$Ee=$jb['operators'];$Oc=$jb['functions'];$Uc=$jb['grouping'];$Xb=$jb['edit_functions'];if($c->operators===null)$c->operators=$Ee;define("SERVER",$_GET[DRIVER]);define("DB",$_GET["db"]);define("ME",preg_replace('~\?.*~','',relative_uri()).'?'.(sid()?SID.'&':'').(SERVER!==null?DRIVER."=".urlencode(SERVER).'&':'').(isset($_GET["username"])?"username=".urlencode($_GET["username"]).'&':'').(DB!=""?'db='.urlencode(DB).'&'.(isset($_GET["ns"])?"ns=".urlencode($_GET["ns"])."&":""):''));function
page_header($Wg,$m="",$Ia=array(),$Xg=""){global$a,$fa,$c,$Qb,$y;page_headers();if(is_ajax()&&$m){page_messages($m);exit;}$Yg=$Wg.($Xg!=""?": $Xg":"");$Zg=strip_tags($Yg.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$c->name());echo'<!DOCTYPE html>
<html lang="',$a,'" dir="',lang(74),'">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex">
<meta name="viewport" content="width=device-width">
<title>',$Zg,'</title>
<link rel="stylesheet" type="text/css" href="',h(preg_replace("~\\?.*~","",ME)."?file=default.css&version=4.17.1"),'">
',script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=4.17.1");if($c->head()){echo'<link rel="shortcut icon" type="image/x-icon" href="',h(preg_replace("~\\?.*~","",ME)."?file=favicon.ico&version=4.17.1"),'">
<link rel="apple-touch-icon" href="',h(preg_replace("~\\?.*~","",ME)."?file=favicon.ico&version=4.17.1"),'">
';foreach($c->css()as$ub){echo'<link rel="stylesheet" type="text/css" href="',h($ub),'">
';}}echo'
<body class="',lang(74),' nojs">
';$Bc=get_temp_dir()."/adminer.version";if(!$_COOKIE["adminer_version"]&&function_exists('openssl_verify')&&file_exists($Bc)&&filemtime($Bc)+86400>time()){$Gh=unserialize(file_get_contents($Bc));$xf="-----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($Gh["version"],base64_decode($Gh["signature"]),$xf)==1)$_COOKIE["adminer_version"]=$Gh["version"];}echo'<script',nonce(),'>
mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick',(isset($_COOKIE["adminer_version"])?"":", onload: partial(verifyVersion, '$fa', '".js_escape(ME)."', '".get_token()."')");?>});
document.body.className = document.body.className.replace(/ nojs/, ' js');
var offlineMessage = '<?php echo
js_escape(lang(75)),'\';
var thousandsSeparator = \'',js_escape(lang(5)),'\';
</script>
<div id="help" class="jush-',$y,' jsonly hidden"></div>
',script("mixin(qs('#help'), {onmouseover: function () { helpOpen = 1; }, onmouseout: helpMouseout});"),'
<div id="content">
';if($Ia!==null){$A=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'<p id="breadcrumb"><a href="'.h($A?$A:".").'">'.$Qb[DRIVER].'</a> » ';$A=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$O=$c->serverName(SERVER);$O=($O!=""?$O:lang(24));if($Ia===false)echo"$O\n";else{echo"<a href='".h($A)."' accesskey='1' title='Alt+Shift+1'>$O</a> » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Ia)))echo'<a href="'.h($A."&db=".urlencode(DB).(support("scheme")?"&ns=":"")).'">'.h(DB).'</a> » ';if(is_array($Ia)){if($_GET["ns"]!="")echo'<a href="'.h(substr(ME,0,-1)).'">'.h($_GET["ns"]).'</a> » ';foreach($Ia
as$z=>$X){$Ib=(is_array($X)?$X[1]:h($X));if($Ib!="")echo"<a href='".h(ME."$z=").urlencode(is_array($X)?$X[0]:$X)."'>$Ib</a> » ";}}echo"$Wg\n";}}echo"<h2>$Yg</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("PAGE_HEADER",1);}function
page_headers(){global$c;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($c->csp()as$tb){$ad=array();foreach($tb
as$z=>$X)$ad[]="$z $X";header("Content-Security-Policy: ".implode("; ",$ad));}$c->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$qe;if(!$qe)$qe=base64_encode(rand_string());return$qe;}function
page_messages($m){$wh=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$fe=$_SESSION["messages"][$wh];if($fe){echo"<div class='message'>".implode("</div>\n<div class='message'>",$fe)."</div>".script("messagesPrint();");unset($_SESSION["messages"][$wh]);}if($m)echo"<div class='error'>$m</div>\n";}function
page_footer($he=""){global$c,$T;echo'</div>
<div id="menu">
';$c->navigation($he);echo'</div>
';if($he!="auth"){echo'<form action="" method="post">
<p class="logout">
',h($_GET["username"])."\n",'<input type="submit" name="logout" value="',lang(76),'" id="logout">
<input type="hidden" name="token" value="',$T,'">
</p>
</form>
';}echo
script("setupSubmitHighlight(document);");}function
int32($ke){while($ke>=2147483648)$ke-=4294967296;while($ke<=-2147483649)$ke+=4294967296;return(int)$ke;}function
long2str($W,$Kh){$Tf='';foreach($W
as$X)$Tf.=pack('V',$X);if($Kh)return
substr($Tf,0,end($W));return$Tf;}function
str2long($Tf,$Kh){$W=array_values(unpack('V*',str_pad($Tf,4*ceil(strlen($Tf)/4),"\0")));if($Kh)$W[]=strlen($Tf);return$W;}function
xxtea_mx($Rh,$Qh,$Cg,$yd){return
int32((($Rh>>5&0x7FFFFFF)^$Qh<<2)+(($Qh>>3&0x1FFFFFFF)^$Rh<<4))^int32(($Cg^$Qh)+($yd^$Rh));}function
encrypt_string($xg,$z){if($xg=="")return"";$z=array_values(unpack("V*",pack("H*",md5($z))));$W=str2long($xg,true);$ke=count($W)-1;$Rh=$W[$ke];$Qh=$W[0];$H=floor(6+52/($ke+1));$Cg=0;while($H-->0){$Cg=int32($Cg+0x9E3779B9);$Wb=$Cg>>2&3;for($Te=0;$Te<$ke;$Te++){$Qh=$W[$Te+1];$je=xxtea_mx($Rh,$Qh,$Cg,$z[$Te&3^$Wb]);$Rh=int32($W[$Te]+$je);$W[$Te]=$Rh;}$Qh=$W[0];$je=xxtea_mx($Rh,$Qh,$Cg,$z[$Te&3^$Wb]);$Rh=int32($W[$ke]+$je);$W[$ke]=$Rh;}return
long2str($W,false);}function
decrypt_string($xg,$z){if($xg=="")return"";if(!$z)return
false;$z=array_values(unpack("V*",pack("H*",md5($z))));$W=str2long($xg,false);$ke=count($W)-1;$Rh=$W[$ke];$Qh=$W[0];$H=floor(6+52/($ke+1));$Cg=int32($H*0x9E3779B9);while($Cg){$Wb=$Cg>>2&3;for($Te=$ke;$Te>0;$Te--){$Rh=$W[$Te-1];$je=xxtea_mx($Rh,$Qh,$Cg,$z[$Te&3^$Wb]);$Qh=int32($W[$Te]-$je);$W[$Te]=$Qh;}$Rh=$W[$ke];$je=xxtea_mx($Rh,$Qh,$Cg,$z[$Te&3^$Wb]);$Qh=int32($W[0]-$je);$W[0]=$Qh;$Cg=int32($Cg-0x9E3779B9);}return
long2str($W,true);}$g='';$Zc=$_SESSION["token"];if(!$Zc)$_SESSION["token"]=rand(1,1e6);$T=get_token();$hf=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($z)=explode(":",$X);$hf[$z]=$X;}}function
add_invalid_login(){global$c;$q=file_open_lock(get_temp_dir()."/adminer.invalid");if(!$q)return;$sd=unserialize(stream_get_contents($q));$Tg=time();if($sd){foreach($sd
as$td=>$X){if($X[0]<$Tg)unset($sd[$td]);}}$rd=&$sd[$c->bruteForceKey()];if(!$rd)$rd=array($Tg+30*60,0);$rd[1]++;file_write_unlock($q,serialize($sd));}function
check_invalid_login(){global$c;$sd=unserialize(@file_get_contents(get_temp_dir()."/adminer.invalid"));$rd=($sd?$sd[$c->bruteForceKey()]:array());$pe=($rd[1]>29?$rd[0]-time():0);if($pe>0)auth_error(lang(77,ceil($pe/60)));}$ya=$_POST["auth"];if($ya){session_regenerate_id();$Fh=$ya["driver"];$O=$ya["server"];$V=$ya["username"];$df=(string)$ya["password"];$k=$ya["db"];set_password($Fh,$O,$V,$df);$_SESSION["db"][$Fh][$O][$V][$k]=true;if($ya["permanent"]){$z=base64_encode($Fh)."-".base64_encode($O)."-".base64_encode($V)."-".base64_encode($k);$sf=$c->permanentLogin(true);$hf[$z]="$z:".base64_encode($sf?encrypt_string($df,$sf):"");cookie("adminer_permanent",implode(" ",$hf));}if(count($_POST)==1||DRIVER!=$Fh||SERVER!=$O||$_GET["username"]!==$V||DB!=$k)redirect(auth_url($Fh,$O,$V,$k));}elseif($_POST["logout"]&&(!$Zc||verify_token())){foreach(array("pwds","db","dbs","queries")as$z)set_session($z,null);unset_permanent();redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),lang(78).' '.lang(79));}elseif($hf&&!$_SESSION["pwds"]){session_regenerate_id();$sf=$c->permanentLogin();foreach($hf
as$z=>$X){list(,$Ua)=explode(":",$X);list($Fh,$O,$V,$k)=array_map('base64_decode',explode("-",$z));set_password($Fh,$O,$V,decrypt_string(base64_decode($Ua),$sf));$_SESSION["db"][$Fh][$O][$V][$k]=true;}}function
unset_permanent(){global$hf;foreach($hf
as$z=>$X){list($Fh,$O,$V,$k)=array_map('base64_decode',explode("-",$z));if($Fh==DRIVER&&$O==SERVER&&$V==$_GET["username"]&&$k==DB)unset($hf[$z]);}cookie("adminer_permanent",implode(" ",$hf));}function
auth_error($m){global$c,$Zc;$fg=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$fg]||$_GET[$fg])&&!$Zc)$m=lang(80);else{restart_session();add_invalid_login();$df=get_password();if($df!==null){if($df===false)$m.=($m?'<br>':'').lang(81,target_blank(),'<code>permanentLogin()</code>');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent();}}if(!$_COOKIE[$fg]&&$_GET[$fg]&&ini_bool("session.use_only_cookies"))$m=lang(82);$We=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?$_COOKIE["adminer_key"]:rand_string()),$We["lifetime"]);page_header(lang(28),$m,null);echo"<form action='' method='post'>\n","<div>";if(hidden_fields($_POST,array("auth")))echo"<p class='message'>".lang(83)."\n";echo"</div>\n";$c->loginForm();echo"</form>\n";page_footer("auth");exit;}if(isset($_GET["username"])&&!class_exists("Min_DB")){unset($_SESSION["pwds"][DRIVER]);unset_permanent();page_header(lang(84),lang(85,implode(", ",$nf)),false);page_footer("auth");exit;}stop_session(true);if(isset($_GET["username"])&&is_string(get_password())){list($ed,$jf)=explode(":",SERVER,2);if(preg_match('~^\s*([-+]?\d+)~',$jf,$C)&&($C[1]<1024||$C[1]>65535))auth_error(lang(86));check_invalid_login();$g=connect();$l=new
Min_Driver($g);}$Pd=null;if(!is_object($g)||($Pd=$c->login($_GET["username"],get_password()))!==true){$m=(is_string($g)?nl_br(h($g)):(is_string($Pd)?$Pd:lang(87)));auth_error($m.(preg_match('~^ | $~',get_password())?'<br>'.lang(88):''));}if($_POST["logout"]&&$Zc&&!verify_token()){page_header(lang(76),lang(89));page_footer("db");exit;}if($ya&&$_POST["token"])$_POST["token"]=$T;$m='';if($_POST){if(!verify_token()){$md="max_input_vars";$Zd=ini_get($md);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$z){$X=ini_get($z);if($X&&(!$Zd||$X<$Zd)){$md=$z;$Zd=$X;}}}$m=(!$_POST["token"]&&$Zd?lang(90,"'$md'"):lang(89).' '.lang(91));}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$m=lang(92,"'post_max_size'");if(isset($_GET["sql"]))$m.=' '.lang(93);}function
select($J,$h=null,$Le=array(),$_=0){global$y;$Od=array();$x=array();$e=array();$Ga=array();$nh=array();$K=array();for($t=0;(!$_||$t<$_)&&($L=$J->fetch_row());$t++){if(!$t){echo"<div class='scrollable'>\n","<table class='nowrap odds'>\n","<thead><tr>";for($xd=0;$xd<count($L);$xd++){$n=$J->fetch_field();$E=$n->name;$Ke=$n->orgtable;$Je=$n->orgname;$K[$n->table]=$Ke;if($Le&&$y=="sql")$Od[$xd]=($E=="table"?"table=":($E=="possible_keys"?"indexes=":null));elseif($Ke!=""){if(!isset($x[$Ke])){$x[$Ke]=array();foreach(indexes($Ke,$h)as$w){if($w["type"]=="PRIMARY"){$x[$Ke]=array_flip($w["columns"]);break;}}$e[$Ke]=$x[$Ke];}if(isset($e[$Ke][$Je])){unset($e[$Ke][$Je]);$x[$Ke][$Je]=$xd;$Od[$xd]=$Ke;}}if($n->charsetnr==63)$Ga[$xd]=true;$nh[$xd]=$n->type;echo"<th".($Ke!=""||$n->name!=$Je?" title='".h(($Ke!=""?"$Ke.":"").$Je)."'":"").">".h($E).($Le?doc_link(array('sql'=>"explain-output.html#explain_".strtolower($E),'mariadb'=>"explain/#the-columns-in-explain-select",)):"");}echo"</thead>\n";}echo"<tr>";foreach($L
as$z=>$X){$A="";if(isset($Od[$z])&&!$e[$Od[$z]]){if($Le&&$y=="sql"){$Q=$L[array_search("table=",$Od)];$A=ME.$Od[$z].urlencode($Le[$Q]!=""?$Le[$Q]:$Q);}else{$A=ME."edit=".urlencode($Od[$z]);foreach($x[$Od[$z]]as$Ya=>$xd)$A.="&where".urlencode("[".bracket_escape($Ya)."]")."=".urlencode($L[$xd]);}}elseif(is_url($X))$A=$X;if($X===null)$X="<i>NULL</i>";elseif($Ga[$z]&&!is_utf8($X))$X="<i>".lang(37,strlen($X))."</i>";else{$X=h($X);if($nh[$z]==254)$X="<code>$X</code>";}if($A)$X="<a href='".h($A)."'".(is_url($A)?target_blank():'').">$X</a>";echo"<td>$X";}}echo($t?"</table>\n</div>":"<p class='message'>".lang(13))."\n";return$K;}function
referencable_primary($ag){$K=array();foreach(table_status('',true)as$Gg=>$Q){if($Gg!=$ag&&fk_support($Q)){foreach(fields($Gg)as$n){if($n["primary"]){if($K[$Gg]){unset($K[$Gg]);break;}$K[$Gg]=$n;}}}}return$K;}function
adminer_settings(){parse_str($_COOKIE["adminer_settings"],$hg);return$hg;}function
adminer_setting($z){$hg=adminer_settings();return$hg[$z];}function
set_adminer_settings($hg){return
cookie("adminer_settings",http_build_query($hg+adminer_settings()));}function
textarea($E,$Y,$M=10,$cb=80){global$y;echo"<textarea name='".h($E)."' rows='$M' cols='$cb' class='sqlarea jush-$y' 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($xa,$Ge,$Y="",$Be="",$if=""){$Mg=($Ge?"select":"input");return"<$Mg$xa".($Ge?"><option value=''>$if".optionlist($Ge,$Y,true)."</select>":" size='10' value='".h($Y)."' placeholder='$if'>").($Be?script("qsl('$Mg').onchange = $Be;",""):"");}function
json_row($z,$X=null){static$Dc=true;if($Dc)echo"{";if($z!=""){echo($Dc?"":",")."\n\t\"".addcslashes($z,"\r\n\t\"\\/").'": '.($X!==null?'"'.addcslashes($X,"\r\n\"\\/").'"':'null');$Dc=false;}else{echo"\n}\n";$Dc=true;}}function
edit_type($z,$n,$bb,$Jc=array(),$wc=array()){global$zg,$nh,$uh,$Ae;$U=$n["type"];echo'<td><select name="',h($z),'[type]" class="type" aria-labelledby="label-type">';if($U&&!isset($nh[$U])&&!isset($Jc[$U])&&!in_array($U,$wc))$wc[]=$U;if($Jc)$zg[lang(94)]=$Jc;echo
optionlist(array_merge($wc,$zg),$U),'</select><td><input
name="',h($z),'[length]"
value="',h($n["length"]),'"
size="3"
',(!$n["length"]&&preg_match('~var(char|binary)$~',$U)?" class='required'":"");echo' aria-labelledby="label-length"><td class="options">',($bb?"<select name='".h($z)."[collation]'".(preg_match('~(char|text|enum|set)$~',$U)?"":" class='hidden'").'><option value="">('.lang(95).')'.optionlist($bb,$n["collation"]).'</select>':''),($uh?"<select name='".h($z)."[unsigned]'".(!$U||preg_match(number_type(),$U)?"":" class='hidden'").'><option>'.optionlist($uh,$n["unsigned"]).'</select>':''),(isset($n['on_update'])?"<select name='".h($z)."[on_update]'".(preg_match('~timestamp|datetime~',$U)?"":" class='hidden'").'>'.optionlist(array(""=>"(".lang(96).")","CURRENT_TIMESTAMP"),(preg_match('~^CURRENT_TIMESTAMP~i',$n["on_update"])?"CURRENT_TIMESTAMP":$n["on_update"])).'</select>':''),($Jc?"<select name='".h($z)."[on_delete]'".(preg_match("~`~",$U)?"":" class='hidden'")."><option value=''>(".lang(97).")".optionlist(explode("|",$Ae),$n["on_delete"])."</select> ":" ");}function
get_partitions_info($Q){global$g;$Nc="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($Q);$J=$g->query("SELECT PARTITION_METHOD, PARTITION_EXPRESSION, PARTITION_ORDINAL_POSITION $Nc ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");$K=array();list($K["partition_by"],$K["partition"],$K["partitions"])=$J->fetch_row();$bf=get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $Nc AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");$K["partition_names"]=array_keys($bf);$K["partition_values"]=array_values($bf);return$K;}function
process_length($Ld){global$hc;return(preg_match("~^\\s*\\(?\\s*$hc(?:\\s*,\\s*$hc)*+\\s*\\)?\\s*\$~",$Ld)&&preg_match_all("~$hc~",$Ld,$Td)?"(".implode(",",$Td[0]).")":preg_replace('~^[0-9].*~','(\0)',preg_replace('~[^-0-9,+()[\]]~','',$Ld)));}function
process_type($n,$Za="COLLATE"){global$uh;return" $n[type]".process_length($n["length"]).(preg_match(number_type(),$n["type"])&&in_array($n["unsigned"],$uh)?" $n[unsigned]":"").(preg_match('~char|text|enum|set~',$n["type"])&&$n["collation"]?" $Za ".q($n["collation"]):"");}function
process_field($n,$lh){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($lh),($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($n){global$y;$Db=$n["default"];return($Db===null?"":" DEFAULT ".(!preg_match('~^GENERATED ~i',$Db)&&(preg_match('~char|binary|text|enum|set~',$n["type"])||preg_match('~^(?![a-z])~i',$Db))?q($Db):str_ireplace("current_timestamp()","CURRENT_TIMESTAMP",($y=="sqlite"?"($Db)":$Db))));}function
type_class($U){foreach(array('char'=>'text','date'=>'time|year','binary'=>'blob','enum'=>'set',)as$z=>$X){if(preg_match("~$z|$X~",$U))return" class='$z'";}}function
edit_fields($o,$bb,$U="TABLE",$Jc=array()){global$nd;$o=array_values($o);$Eb=(($_POST?$_POST["defaults"]:adminer_setting("defaults"))?"":" class='hidden'");$gb=(($_POST?$_POST["comments"]:adminer_setting("comments"))?"":" class='hidden'");echo'<thead><tr>
';if($U=="PROCEDURE"){echo'<td>';}echo'<th id="label-name">',($U=="TABLE"?lang(98):lang(99)),'<td id="label-type">',lang(39),'<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(100),'<td>',lang(101);if($U=="TABLE"){echo'<td id="label-null">NULL
<td><input type="radio" name="auto_increment_col" value=""><abbr id="label-ai" title="',lang(41),'">AI</abbr>',doc_link(array('sql'=>"example-auto-increment.html",'mariadb'=>"auto_increment/",)),'<td id="label-default"',$Eb,'>',lang(42),(support("comment")?"<td id='label-comment'$gb>".lang(40):"");}echo'<td>',"<input type='image' class='icon' name='add[".(support("move_col")?0:count($o))."]' src='".h(preg_replace("~\\?.*~","",ME)."?file=plus.gif&version=4.17.1")."' alt='+' title='".lang(102)."'>".script("row_count = ".count($o).";"),'</thead>
<tbody>
',script("mixin(qsl('tbody'), {onclick: editingClick, onkeydown: editingKeydown, oninput: editingInput});");foreach($o
as$t=>$n){$t++;$Me=$n[($_POST?"orig":"field")];$Nb=(isset($_POST["add"][$t-1])||(isset($n["field"])&&!$_POST["drop_col"][$t]))&&(support("drop_col")||$Me=="");echo'<tr',($Nb?"":" style='display: none;'"),'>
',($U=="PROCEDURE"?"<td>".html_select("fields[$t][inout]",explode("|",$nd),$n["inout"]):""),'<th>';if($Nb){echo'<input name="fields[',$t,'][field]" value="',h($n["field"]),'" data-maxlength="64" autocapitalize="off" aria-labelledby="label-name">';}echo'<input type="hidden" name="fields[',$t,'][orig]" value="',h($Me),'">';edit_type("fields[$t]",$n,$bb,$Jc);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,'"';if($n["auto_increment"]){echo' checked';}echo' aria-labelledby="label-ai"></label><td',$Eb,'>',checkbox("fields[$t][has_default]",1,$n["has_default"],"","","","label-default"),'<input name="fields[',$t,'][default]" value="',h($n["default"]),'" aria-labelledby="label-default">',(support("comment")?"<td$gb><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")?"<input type='image' class='icon' name='add[$t]' src='".h(preg_replace("~\\?.*~","",ME)."?file=plus.gif&version=4.17.1")."' alt='+' title='".lang(102)."'> "."<input type='image' class='icon' name='up[$t]' src='".h(preg_replace("~\\?.*~","",ME)."?file=up.gif&version=4.17.1")."' alt='' title='".lang(103)."'> "."<input type='image' class='icon' name='down[$t]' src='".h(preg_replace("~\\?.*~","",ME)."?file=down.gif&version=4.17.1")."' alt='' title='".lang(104)."'> ":""),($Me==""||support("drop_col")?"<input type='image' class='icon' name='drop_col[$t]' src='".h(preg_replace("~\\?.*~","",ME)."?file=cross.gif&version=4.17.1")."' alt='x' title='".lang(105)."'>":"");}}function
process_fields(&$o){$ue=0;if($_POST["up"]){$Fd=0;foreach($o
as$z=>$n){if(key($_POST["up"])==$z){unset($o[$z]);array_splice($o,$Fd,0,array($n));break;}if(isset($n["field"]))$Fd=$ue;$ue++;}}elseif($_POST["down"]){$Lc=false;foreach($o
as$z=>$n){if(isset($n["field"])&&$Lc){unset($o[key($_POST["down"])]);array_splice($o,$ue,0,array($Lc));break;}if(key($_POST["down"])==$z)$Lc=$n;$ue++;}}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($C){return"'".str_replace("'","''",addcslashes(stripcslashes(str_replace($C[0][0].$C[0][0],$C[0][0],substr($C[0],1,-1))),'\\'))."'";}function
grant($Qc,$uf,$e,$_e){if(!$uf)return
true;if($uf==array("ALL PRIVILEGES","GRANT OPTION"))return($Qc=="GRANT"?queries("$Qc ALL PRIVILEGES$_e WITH GRANT OPTION"):queries("$Qc ALL PRIVILEGES$_e")&&queries("$Qc GRANT OPTION$_e"));return
queries("$Qc ".preg_replace('~(GRANT OPTION)\([^)]*\)~','\1',implode("$e, ",$uf).$e).$_e);}function
drop_create($Rb,$i,$Sb,$Qg,$Tb,$B,$ee,$ce,$de,$xe,$ne){if($_POST["drop"])query_redirect($Rb,$B,$ee);elseif($xe=="")query_redirect($i,$B,$de);elseif($xe!=$ne){$rb=queries($i);queries_redirect($B,$ce,$rb&&queries($Rb));if($rb)queries($Sb);}else
queries_redirect($B,$ce,queries($Qg)&&queries($Tb)&&queries($Rb)&&queries($i));}function
create_trigger($_e,$L){global$y;$Vg=" $L[Timing] $L[Event]".(preg_match('~ OF~',$L["Event"])?" $L[Of]":"");return"CREATE TRIGGER ".idf_escape($L["Trigger"]).($y=="mssql"?$_e.$Vg:$Vg.$_e).rtrim(" $L[Type]\n$L[Statement]",";").";";}function
create_routine($Qf,$L){global$nd,$y;$P=array();$o=(array)$L["fields"];ksort($o);foreach($o
as$n){if($n["field"]!="")$P[]=(preg_match("~^($nd)\$~",$n["inout"])?"$n[inout] ":"").idf_escape($n["field"]).process_type($n,"CHARACTER SET");}$Fb=rtrim($L["definition"],";");return"CREATE $Qf ".idf_escape(trim($L["name"]))." (".implode(", ",$P).")".($Qf=="FUNCTION"?" RETURNS".process_type($L["returns"],"CHARACTER SET"):"").($L["language"]?" LANGUAGE $L[language]":"").($y=="pgsql"?" AS ".q($Fb):"\n$Fb;");}function
check_constraints($Q){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($Q)."
AND CHECK_CLAUSE NOT LIKE '% IS NOT NULL'");}function
remove_definer($I){return
preg_replace('~^([A-Z =]+) DEFINER=`'.preg_replace('~@(.*)~','`@`(%|\1)',logged_user()).'`~','\1',$I);}function
format_foreign_key($p){global$Ae;$k=$p["db"];$re=$p["ns"];return" FOREIGN KEY (".implode(", ",array_map('idf_escape',$p["source"])).") REFERENCES ".($k!=""&&$k!=$_GET["db"]?idf_escape($k).".":"").($re!=""&&$re!=$_GET["ns"]?idf_escape($re).".":"").table($p["table"])." (".implode(", ",array_map('idf_escape',$p["target"])).")".(preg_match("~^($Ae)\$~",$p["on_delete"])?" ON DELETE $p[on_delete]":"").(preg_match("~^($Ae)\$~",$p["on_update"])?" ON UPDATE $p[on_update]":"");}function
tar_file($Bc,$ah){$K=pack("a100a8a8a8a12a12",$Bc,644,0,0,decoct($ah->size),decoct(time()));$Ta=8*32;for($t=0;$t<strlen($K);$t++)$Ta+=ord($K[$t]);$K.=sprintf("%06o",$Ta)."\0 ";echo$K,str_repeat("\0",512-strlen($K));$ah->send();echo
str_repeat("\0",511-($ah->size+511)%512);}function
ini_bytes($md){$X=ini_get($md);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($ef,$Rg="<sup>?</sup>"){global$y,$g;$dg=$g->server_info;$Gh=preg_replace('~^(\d\.?\d).*~s','\1',$dg);$yh=array('sql'=>"https://dev.mysql.com/doc/refman/$Gh/en/",'sqlite'=>"https://www.sqlite.org/",'pgsql'=>"https://www.postgresql.org/docs/$Gh/",'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',$dg)."&id=",);if(preg_match('~MariaDB~',$dg)){$yh['sql']="https://mariadb.com/kb/en/";$ef['sql']=(isset($ef['mariadb'])?$ef['mariadb']:str_replace(".html","/",$ef['sql']));}return($ef[$y]?"<a href='".h($yh[$y].$ef[$y].($y=='mssql'?"?view=sql-server-ver$Gh":""))."'".target_blank().">$Rg</a>":"");}function
ob_gzencode($yg){return
gzencode($yg);}function
db_size($k){global$g;if(!$g->select_db($k))return"?";$K=0;foreach(table_status()as$R)$K+=$R["Data_length"]+$R["Index_length"];return
format_number($K);}function
set_utf8mb4($i){global$g;static$P=false;if(!$P&&preg_match('~\butf8mb4~i',$i)){$P=true;echo"SET NAMES ".charset($g).";\n\n";}}function
connect_error(){global$c,$g,$T,$m,$Qb;if(DB!=""){header("HTTP/1.1 404 Not Found");page_header(lang(27).": ".h(DB),lang(106),true);}else{if($_POST["db"]&&!$m)queries_redirect(substr(ME,0,-1),lang(107),drop_databases($_POST["db"]));page_header(lang(108),$m,false);echo"<p class='links'>\n";foreach(array('database'=>lang(109),'privileges'=>lang(61),'processlist'=>lang(110),'variables'=>lang(111),'status'=>lang(112),)as$z=>$X){if(support($z))echo"<a href='".h(ME)."$z='>$X</a>\n";}echo"<p>".lang(113,$Qb[DRIVER],"<b>".h($g->server_info)."</b>","<b>$g->extension</b>")."\n","<p>".lang(114,"<b>".h(logged_user())."</b>")."\n";$j=$c->databases();if($j){$Wf=support("scheme");$bb=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(27)." - <a href='".h(ME)."refresh=1'>".lang(115)."</a>"."<td>".lang(116)."<td>".lang(117)."<td>".lang(118)." - <a href='".h(ME)."dbsize=1'>".lang(119)."</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=>$S){$Pf=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='$Pf' id='$u'>".h($k)."</a>";$ab=h(db_collation($k,$bb));echo"<td>".(support("database")?"<a href='$Pf".($Wf?"&amp;ns=":"")."&amp;database=' title='".lang(57)."'>$ab</a>":$ab),"<td align='right'><a href='$Pf&amp;schema=' id='tables-".h($k)."' title='".lang(60)."'>".($_GET["dbsize"]?$S:"?")."</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(120)." <span id='selected'></span></legend><div>\n"."<input type='hidden' name='all' value=''>".script("qsl('input').onclick = function () { selectCount('selected', formChecked(this, /^db/)); };")."<input type='submit' name='drop' value='".lang(121)."'>".confirm()."\n"."</div></fieldset>\n"."</div></div>\n":""),"<input type='hidden' name='token' value='$T'>\n","</form>\n",script("tableCheck();");}}page_footer("db");}if(isset($_GET["status"]))$_GET["variables"]=$_GET["status"];if(isset($_GET["import"]))$_GET["sql"]=$_GET["import"];if(!(DB!=""?$g->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);}connect_error();exit;}$Ae="RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT";class
TmpFile{var$handler;var$size;function
__construct(){$this->handler=tmpfile();}function
write($mb){$this->size+=strlen($mb);fwrite($this->handler,$mb);}function
send(){fseek($this->handler,0);fpassthru($this->handler);fclose($this->handler);}}$hc="'(?:''|[^'\\\\]|\\\\.)*'";$nd="IN|OUT|INOUT";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"])){$b=$_GET["download"];$o=fields($b);header("Content-Type: application/octet-stream");header("Content-Disposition: attachment; filename=".friendly_url("$b-".implode("_",$_GET["where"])).".".friendly_url($_GET["field"]));$N=array(idf_escape($_GET["field"]));$J=$l->select($b,$N,array(where($_GET,$o)),$N);$L=($J?$J->fetch_row():array());echo$l->value($L[0],$o[$_GET["field"]]);exit;}elseif(isset($_GET["table"])){$b=$_GET["table"];$o=fields($b);if(!$o)$m=error();$R=table_status1($b,true);$E=$c->tableName($R);page_header(($o&&is_view($R)?$R['Engine']=='materialized view'?lang(122):lang(123):lang(124)).": ".($E!=""?$E:h($b)),$m);$Of=array();foreach($o
as$z=>$n)$Of+=$n["privileges"];$c->selectLinks($R,(isset($Of["insert"])||!support("table")?"":null));$fb=$R["Comment"];if($fb!="")echo"<p class='nowrap'>".lang(40).": ".h($fb)."\n";if($o)$c->tableStructurePrint($o);if(!is_view($R)){if(support("indexes")){echo"<h3 id='indexes'>".lang(125)."</h3>\n";$x=indexes($b);if($x)$c->tableIndexesPrint($x);echo'<p class="links"><a href="'.h(ME).'indexes='.urlencode($b).'">'.lang(126)."</a>\n";}if(fk_support($R)){echo"<h3 id='foreign-keys'>".lang(94)."</h3>\n";$Jc=foreign_keys($b);if($Jc){echo"<table>\n","<thead><tr><th>".lang(127)."<td>".lang(128)."<td>".lang(97)."<td>".lang(96)."<td></thead>\n";foreach($Jc
as$E=>$p){echo"<tr title='".h($E)."'>","<th><i>".implode("</i>, <i>",array_map('h',$p["source"]))."</i>","<td><a href='".h($p["db"]!=""?preg_replace('~db=[^&]*~',"db=".urlencode($p["db"]),ME):($p["ns"]!=""?preg_replace('~ns=[^&]*~',"ns=".urlencode($p["ns"]),ME):ME))."table=".urlencode($p["table"])."'>".($p["db"]!=""?"<b>".h($p["db"])."</b>.":"").($p["ns"]!=""?"<b>".h($p["ns"])."</b>.":"").h($p["table"])."</a>","(<i>".implode("</i>, <i>",array_map('h',$p["target"]))."</i>)","<td>".h($p["on_delete"]),"<td>".h($p["on_update"]),'<td><a href="'.h(ME.'foreign='.urlencode($b).'&name='.urlencode($E)).'">'.lang(129).'</a>',"\n";}echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'foreign='.urlencode($b).'">'.lang(130)."</a>\n";}if(support("check")){echo"<h3 id='checks'>".lang(131)."</h3>\n";$Qa=check_constraints($b);if($Qa){echo"<table>\n";foreach($Qa
as$z=>$X){echo"<tr title='".h($z)."'>","<td><code class='jush-$y'>".h($X),"<td><a href='".h(ME.'check='.urlencode($b).'&name='.urlencode($z))."'>".lang(129)."</a>","\n";}echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'check='.urlencode($b).'">'.lang(132)."</a>\n";}}if(support(is_view($R)?"view_trigger":"trigger")){echo"<h3 id='triggers'>".lang(133)."</h3>\n";$kh=triggers($b);if($kh){echo"<table>\n";foreach($kh
as$z=>$X)echo"<tr valign='top'><td>".h($X[0])."<td>".h($X[1])."<th>".h($z)."<td><a href='".h(ME.'trigger='.urlencode($b).'&name='.urlencode($z))."'>".lang(129)."</a>\n";echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'trigger='.urlencode($b).'">'.lang(134)."</a>\n";}}elseif(isset($_GET["schema"])){page_header(lang(60),"",array(),h(DB.($_GET["ns"]?".$_GET[ns]":"")));$Hg=array();$Ig=array();$da=($_GET["schema"]?$_GET["schema"]:$_COOKIE["adminer_schema-".str_replace(".","_",DB)]);preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',$da,$Td,PREG_SET_ORDER);foreach($Td
as$t=>$C){$Hg[$C[1]]=array($C[2],$C[3]);$Ig[]="\n\t'".js_escape($C[1])."': [ $C[2], $C[3] ]";}$ch=0;$Da=-1;$Vf=array();$Gf=array();$Jd=array();foreach(table_status('',true)as$Q=>$R){if(is_view($R))continue;$kf=0;$Vf[$Q]["fields"]=array();foreach(fields($Q)as$E=>$n){$kf+=1.25;$n["pos"]=$kf;$Vf[$Q]["fields"][$E]=$n;}$Vf[$Q]["pos"]=($Hg[$Q]?$Hg[$Q]:array($ch,0));foreach($c->foreignKeys($Q)as$X){if(!$X["db"]){$Hd=$Da;if($Hg[$Q][1]||$Hg[$X["table"]][1])$Hd=min(floatval($Hg[$Q][1]),floatval($Hg[$X["table"]][1]))-1;else$Da-=.1;while($Jd[(string)$Hd])$Hd-=.0001;$Vf[$Q]["references"][$X["table"]][(string)$Hd]=array($X["source"],$X["target"]);$Gf[$X["table"]][$Q][(string)$Hd]=$X["target"];$Jd[(string)$Hd]=true;}}$ch=max($ch,$Vf[$Q]["pos"][0]+2.5+$kf);}echo'<div id="schema" style="height: ',$ch,'em;">
<script',nonce(),'>
qs(\'#schema\').onselectstart = function () { return false; };
var tablePos = {',implode(",",$Ig)."\n",'};
var em = qs(\'#schema\').offsetHeight / ',$ch,';
document.onmousemove = schemaMousemove;
document.onmouseup = partialArg(schemaMouseup, \'',js_escape(DB),'\');
</script>
';foreach($Vf
as$E=>$Q){echo"<div class='table' style='top: ".$Q["pos"][0]."em; left: ".$Q["pos"][1]."em;'>",'<a href="'.h(ME).'table='.urlencode($E).'"><b>'.h($E)."</b></a>",script("qsl('div').onmousedown = schemaMousedown;");foreach($Q["fields"]as$n){$X='<span'.type_class($n["type"]).' title="'.h($n["full_type"].($n["null"]?" NULL":'')).'">'.h($n["field"]).'</span>';echo"<br>".($n["primary"]?"<i>$X</i>":$X);}foreach((array)$Q["references"]as$Og=>$Hf){foreach($Hf
as$Hd=>$Df){$Id=$Hd-$Hg[$E][1];$t=0;foreach($Df[0]as$ng)echo"\n<div class='references' title='".h($Og)."' id='refs$Hd-".($t++)."' style='left: $Id"."em; top: ".$Q["fields"][$ng]["pos"]."em; padding-top: .5em;'><div style='border-top: 1px solid Gray; width: ".(-$Id)."em;'></div></div>";}}foreach((array)$Gf[$E]as$Og=>$Hf){foreach($Hf
as$Hd=>$e){$Id=$Hd-$Hg[$E][1];$t=0;foreach($e
as$Ng)echo"\n<div class='references' title='".h($Og)."' id='refd$Hd-".($t++)."' style='left: $Id"."em; top: ".$Q["fields"][$Ng]["pos"]."em; height: 1.25em; background: url(".h(preg_replace("~\\?.*~","",ME)."?file=arrow.gif) no-repeat right center;&version=4.17.1")."'><div style='height: .5em; border-bottom: 1px solid Gray; width: ".(-$Id)."em;'></div></div>";}}echo"\n</div>\n";}foreach($Vf
as$E=>$Q){foreach((array)$Q["references"]as$Og=>$Hf){foreach($Hf
as$Hd=>$Df){$ge=$ch;$Xd=-10;foreach($Df[0]as$z=>$ng){$lf=$Q["pos"][0]+$Q["fields"][$ng]["pos"];$mf=$Vf[$Og]["pos"][0]+$Vf[$Og]["fields"][$Df[1][$z]]["pos"];$ge=min($ge,$lf,$mf);$Xd=max($Xd,$lf,$mf);}echo"<div class='references' id='refl$Hd' style='left: $Hd"."em; top: $ge"."em; padding: .5em 0;'><div style='border-right: 1px solid Gray; margin-top: 1px; height: ".($Xd-$ge)."em;'></div></div>\n";}}}echo'</div>
<p class="links"><a href="',h(ME."schema=".urlencode($da)),'" id="schema-link">',lang(135),'</a>
';}elseif(isset($_GET["dump"])){$b=$_GET["dump"];if($_POST&&!$m){$pb="";foreach(array("output","format","db_style","routines","events","table_style","auto_increment","triggers","data_style")as$z)$pb.="&$z=".urlencode($_POST[$z]);cookie("adminer_export",substr($pb,1));$S=array_flip((array)$_POST["tables"])+array_flip((array)$_POST["data"]);$uc=dump_headers((count($S)==1?key($S):DB),(DB==""||count($S)>1));$vd=preg_match('~sql~',$_POST["format"]);if($vd){echo"-- Adminer $fa ".$Qb[DRIVER]." ".str_replace("\n"," ",$g->server_info)." dump\n\n";if($y=="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';
":"")."
";$g->query("SET time_zone = '+00:00'");$g->query("SET sql_mode = ''");}}$_g=$_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){$c->dumpDatabase($k);if($g->select_db($k)){if($vd&&preg_match('~CREATE~',$_g)&&($i=$g->result("SHOW CREATE DATABASE ".idf_escape($k),1))){set_utf8mb4($i);if($_g=="DROP+CREATE")echo"DROP DATABASE IF EXISTS ".idf_escape($k).";\n";echo"$i;\n";}if($vd){if($_g)echo
use_sql($k).";\n\n";$Re="";if($_POST["routines"]){foreach(routines()as$L){$E=$L["ROUTINE_NAME"];$Qf=$L["ROUTINE_TYPE"];$i=create_routine($Qf,array("name"=>$E)+routine($L["SPECIFIC_NAME"],$Qf));set_utf8mb4($i);$Re.=($_g!='DROP+CREATE'?"DROP $Qf IF EXISTS ".idf_escape($E).";;\n":"")."$i;\n\n";}}if($_POST["events"]){foreach(get_rows("SHOW EVENTS",null,"-- ")as$L){$i=remove_definer($g->result("SHOW CREATE EVENT ".idf_escape($L["Name"]),3));set_utf8mb4($i);$Re.=($_g!='DROP+CREATE'?"DROP EVENT IF EXISTS ".idf_escape($L["Name"]).";;\n":"")."$i;;\n\n";}}echo($Re&&$y=='sql'?"DELIMITER ;;\n\n$Re"."DELIMITER ;\n\n":$Re);}if($_POST["table_style"]||$_POST["data_style"]){$Ih=array();foreach(table_status('',true)as$E=>$R){$Q=(DB==""||in_array($E,(array)$_POST["tables"]));$xb=(DB==""||in_array($E,(array)$_POST["data"]));if($Q||$xb){if($uc=="tar"){$ah=new
TmpFile;ob_start(array($ah,'write'),1e5);}$c->dumpTable($E,($Q?$_POST["table_style"]:""),(is_view($R)?2:0));if(is_view($R))$Ih[]=$E;elseif($xb){$o=fields($E);$c->dumpData($E,$_POST["data_style"],"SELECT *".convert_fields($o,$o)." FROM ".table($E));}if($vd&&$_POST["triggers"]&&$Q&&($kh=trigger_sql($E)))echo"\nDELIMITER ;;\n$kh\nDELIMITER ;\n";if($uc=="tar"){ob_end_flush();tar_file((DB!=""?"":"$k/")."$E.csv",$ah);}elseif($vd)echo"\n";}}if(function_exists('foreign_keys_sql')){foreach(table_status('',true)as$E=>$R){$Q=(DB==""||in_array($E,(array)$_POST["tables"]));if($Q&&!is_view($R))echo
foreign_keys_sql($E);}}foreach($Ih
as$Hh)$c->dumpTable($Hh,$_POST["table_style"],1);if($uc=="tar")echo
pack("x512");}}}if($vd)echo"-- ".$g->result("SELECT NOW()")."\n";exit;}page_header(lang(63),$m,($_GET["export"]!=""?array("table"=>$_GET["export"]):array()),h(DB));echo'
<form action="" method="post">
<table class="layout">
';$Ab=array('','USE','DROP+CREATE','CREATE');$Jg=array('','DROP+CREATE','CREATE');$yb=array('','TRUNCATE+INSERT','INSERT');if($y=="sql")$yb[]='INSERT+UPDATE';parse_str($_COOKIE["adminer_export"],$L);if(!$L)$L=array("output"=>"text","format"=>"sql","db_style"=>(DB!=""?"":"CREATE"),"table_style"=>"DROP+CREATE","data_style"=>"INSERT");if(!isset($L["events"])){$L["routines"]=$L["events"]=($_GET["dump"]=="");$L["triggers"]=$L["table_style"];}echo"<tr><th>".lang(136)."<td>".html_select("output",$c->dumpOutput(),$L["output"],0)."\n";echo"<tr><th>".lang(137)."<td>".html_select("format",$c->dumpFormat(),$L["format"],0)."\n";echo($y=="sqlite"?"":"<tr><th>".lang(27)."<td>".html_select('db_style',$Ab,$L["db_style"]).(support("routine")?checkbox("routines",1,$L["routines"],lang(138)):"").(support("event")?checkbox("events",1,$L["events"],lang(139)):"")),"<tr><th>".lang(117)."<td>".html_select('table_style',$Jg,$L["table_style"]).checkbox("auto_increment",1,$L["auto_increment"],lang(41)).(support("trigger")?checkbox("triggers",1,$L["triggers"],lang(133)):""),"<tr><th>".lang(140)."<td>".html_select('data_style',$yb,$L["data_style"]),'</table>
<p><input type="submit" value="',lang(63),'">
<input type="hidden" name="token" value="',$T,'">
<table>
',script("qsl('table').onclick = dumpClick;");$pf=array();if(DB!=""){$Ra=($b!=""?"":" checked");echo"<thead><tr>","<th style='text-align: left;'><label class='block'><input type='checkbox' id='check-tables'$Ra>".lang(117)."</label>".script("qs('#check-tables').onclick = partial(formCheck, /^tables\\[/);",""),"<th style='text-align: right;'><label class='block'>".lang(140)."<input type='checkbox' id='check-data'$Ra></label>".script("qs('#check-data').onclick = partial(formCheck, /^data\\[/);",""),"</thead>\n";$Ih="";$Kg=tables_list();foreach($Kg
as$E=>$U){$of=preg_replace('~_.*~','',$E);$Ra=($b==""||$b==(substr($b,-1)=="%"?"$of%":$E));$rf="<tr><td>".checkbox("tables[]",$E,$Ra,$E,"","block");if($U!==null&&!preg_match('~table~i',$U))$Ih.="$rf\n";else
echo"$rf<td align='right'><label class='block'><span id='Rows-".h($E)."'></span>".checkbox("data[]",$E,$Ra)."</label>\n";$pf[$of]++;}echo$Ih;if($Kg)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'".($b==""?" checked":"").">".lang(27)."</label>",script("qs('#check-databases').onclick = partial(formCheck, /^databases\\[/);",""),"</thead>\n";$j=$c->databases();if($j){foreach($j
as$k){if(!information_schema($k)){$of=preg_replace('~_.*~','',$k);echo"<tr><td>".checkbox("databases[]",$k,$b==""||$b=="$of%",$k,"","block")."\n";$pf[$of]++;}}}else
echo"<tr><td><textarea name='databases' rows='10' cols='20'></textarea>";}echo'</table>
</form>
';$Dc=true;foreach($pf
as$z=>$X){if($z!=""&&$X>1){echo($Dc?"<p>":" ")."<a href='".h(ME)."dump=".urlencode("$z%")."'>".h($z)."</a>";$Dc=false;}}}elseif(isset($_GET["privileges"])){page_header(lang(61));echo'<p class="links"><a href="'.h(ME).'user=">'.lang(141)."</a>";$J=$g->query("SELECT User, Host FROM mysql.".(DB==""?"user":"db WHERE ".q(DB)." LIKE Db")." ORDER BY Host, User");$Qc=$J;if(!$J)$J=$g->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 type='hidden' name='db' value='".h(DB)."'>\n",($Qc?"":"<input type='hidden' name='grant' value=''>\n"),"<table class='odds'>\n","<thead><tr><th>".lang(25)."<th>".lang(24)."<th></thead>\n";while($L=$J->fetch_assoc())echo'<tr><td>'.h($L["User"])."<td>".h($L["Host"]).'<td><a href="'.h(ME.'user='.urlencode($L["User"]).'&host='.urlencode($L["Host"])).'">'.lang(11)."</a>\n";if(!$Qc||DB!="")echo"<tr><td><input name='user' autocapitalize='off'><td><input name='host' value='localhost' autocapitalize='off'><td><input type='submit' value='".lang(11)."'>\n";echo"</table>\n","</form>\n";}elseif(isset($_GET["sql"])){if(!$m&&$_POST["export"]){dump_headers("sql");$c->dumpTable("","");$c->dumpData("","table",$_POST["query"]);exit;}restart_session();$dd=&get_session("queries");$cd=&$dd[DB];if(!$m&&$_POST["clear"]){$cd=array();redirect(remove_from_uri("history"));}page_header((isset($_GET["import"])?lang(62):lang(54)),$m);if(!$m&&$_POST){$q=false;if(!isset($_GET["import"]))$I=$_POST["query"];elseif($_POST["webfile"]){$qg=$c->importServerPath();$q=@fopen((file_exists($qg)?$qg:"compress.zlib://$qg.gz"),"rb");$I=($q?fread($q,1e6):false);}else$I=get_file("sql_file",true);if(is_string($I)){if(function_exists('memory_get_usage')&&($be=ini_bytes("memory_limit"))!="-1")@ini_set("memory_limit",max($be,2*strlen($I)+memory_get_usage()+8e6));if($I!=""&&strlen($I)<1e6){$H=$I.(preg_match("~;[ \t\r\n]*\$~",$I)?"":";");if(!$cd||reset(end($cd))!=$H){restart_session();$cd[]=array($H,time());set_session("queries",$dd);stop_session();}}$og="(?:\\s|/\\*[\s\S]*?\\*/|(?:#|-- )[^\n]*\n?|--\r?\n)";$Hb=";";$ue=0;$ec=true;$h=connect();if(is_object($h)&&DB!=""){$h->select_db(DB);if($_GET["ns"]!="")set_schema($_GET["ns"],$h);}$eb=0;$kc=array();$Xe='[\'"'.($y=="sql"?'`#':($y=="sqlite"?'`[':($y=="mssql"?'[':''))).']|/\*|-- |$'.($y=="pgsql"?'|\$[^$]*\$':'');$dh=microtime(true);parse_str($_COOKIE["adminer_export"],$ma);$Vb=$c->dumpFormat();unset($Vb["sql"]);while($I!=""){if(!$ue&&preg_match("~^$og*+DELIMITER\\s+(\\S+)~i",$I,$C)){$Hb=$C[1];$I=substr($I,strlen($C[0]));}else{preg_match('('.preg_quote($Hb)."\\s*|$Xe)",$I,$C,PREG_OFFSET_CAPTURE,$ue);list($Lc,$kf)=$C[0];if(!$Lc&&$q&&!feof($q))$I.=fread($q,1e5);else{if(!$Lc&&rtrim($I)=="")break;$ue=$kf+strlen($Lc);if($Lc&&rtrim($Lc)!=$Hb){$La=$l->hasCStyleEscapes()||($y=="pgsql"&&($kf>0&&strtolower($I[$kf-1])=="e"));$ff=($Lc=='/*'?'\*/':($Lc=='['?']':(preg_match('~^-- |^#~',$Lc)?"\n":preg_quote($Lc).($La?"|\\\\.":""))));while(preg_match("($ff|\$)s",$I,$C,PREG_OFFSET_CAPTURE,$ue)){$Tf=$C[0][0];if(!$Tf&&$q&&!feof($q))$I.=fread($q,1e5);else{$ue=$C[0][1]+strlen($Tf);if(!$Tf||$Tf[0]!="\\")break;}}}else{$ec=false;$H=substr($I,0,$kf);$eb++;$rf="<pre id='sql-$eb'><code class='jush-$y'>".$c->sqlCommandQuery($H)."</code></pre>\n";if($y=="sqlite"&&preg_match("~^$og*+ATTACH\\b~i",$H,$C)){echo$rf,"<p class='error'>".lang(142)."\n";$kc[]=" <a href='#sql-$eb'>$eb</a>";if($_POST["error_stops"])break;}else{if(!$_POST["only_errors"]){echo$rf;ob_flush();flush();}$ug=microtime(true);if($g->multi_query($H)&&is_object($h)&&preg_match("~^$og*+USE\\b~i",$H))$h->query($H);do{$J=$g->store_result();if($g->error){echo($_POST["only_errors"]?$rf:""),"<p class='error'>".lang(143).($g->errno?" ($g->errno)":"").": ".error()."\n";$kc[]=" <a href='#sql-$eb'>$eb</a>";if($_POST["error_stops"])break
2;}else{$Tg=" <span class='time'>(".format_time($ug).")</span>".(strlen($H)<1000?" <a href='".h(ME)."sql=".urlencode(trim($H))."'>".lang(11)."</a>":"");$oa=$g->affected_rows;$Lh=($_POST["only_errors"]?"":$l->warnings());$Mh="warnings-$eb";if($Lh)$Tg.=", <a href='#$Mh'>".lang(36)."</a>".script("qsl('a').onclick = partial(toggle, '$Mh');","");$sc=null;$tc="explain-$eb";if(is_object($J)){$_=$_POST["limit"];$Le=select($J,$h,array(),$_);if(!$_POST["only_errors"]){echo"<form action='' method='post'>\n";$se=$J->num_rows;echo"<p>".($se?($_&&$se>$_?lang(144,$_):"").lang(145,$se):""),$Tg;if($h&&preg_match("~^($og|\\()*+SELECT\\b~i",$H)&&($sc=explain($h,$H)))echo", <a href='#$tc'>Explain</a>".script("qsl('a').onclick = partial(toggle, '$tc');","");$u="export-$eb";echo", <a href='#$u'>".lang(63)."</a>".script("qsl('a').onclick = partial(toggle, '$u');","")."<span id='$u' class='hidden'>: ".html_select("output",$c->dumpOutput(),$ma["output"])." ".html_select("format",$Vb,$ma["format"])."<input type='hidden' name='query' value='".h($H)."'>"." <input type='submit' name='export' value='".lang(63)."'><input type='hidden' name='token' value='$T'></span>\n"."</form>\n";}}else{if(preg_match("~^$og*+(CREATE|DROP|ALTER)$og++(DATABASE|SCHEMA)\\b~i",$H)){restart_session();set_session("dbs",null);stop_session();}if(!$_POST["only_errors"])echo"<p class='message' title='".h($g->info)."'>".lang(146,$oa)."$Tg\n";}echo($Lh?"<div id='$Mh' class='hidden'>\n$Lh</div>\n":"");if($sc){echo"<div id='$tc' class='hidden explain'>\n";select($sc,$h,$Le);echo"</div>\n";}}$ug=microtime(true);}while($g->next_result());}$I=substr($I,$ue);$ue=0;}}}}if($ec)echo"<p class='message'>".lang(147)."\n";elseif($_POST["only_errors"]){echo"<p class='message'>".lang(148,$eb-count($kc))," <span class='time'>(".format_time($dh).")</span>\n";}elseif($kc&&$eb>1)echo"<p class='error'>".lang(143).": ".implode("",$kc)."\n";}else
echo"<p class='error'>".upload_error($I)."\n";}echo'
<form action="" method="post" enctype="multipart/form-data" id="form">
';$qc="<input type='submit' value='".lang(149)."' title='Ctrl+Enter'>";if(!isset($_GET["import"])){$H=$_GET["sql"];if($_POST)$H=$_POST["query"];elseif($_GET["history"]=="all")$H=$cd;elseif($_GET["history"]!="")$H=$cd[$_GET["history"]][0];echo"<p>";textarea("query",$H,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>$qc\n",lang(150).": <input type='number' name='limit' class='size' value='".h($_POST?$_POST["limit"]:$_GET["limit"])."'>\n";}else{echo"<fieldset><legend>".lang(151)."</legend><div>";$Vc=(extension_loaded("zlib")?"[.gz]":"");echo(ini_bool("file_uploads")?"SQL$Vc (&lt; ".ini_get("upload_max_filesize")."B): <input type='file' name='sql_file[]' multiple>\n$qc":lang(152)),"</div></fieldset>\n";$id=$c->importServerPath();if($id){echo"<fieldset><legend>".lang(153)."</legend><div>",lang(154,"<code>".h($id)."$Vc</code>"),' <input type="submit" name="webfile" value="'.lang(155).'">',"</div></fieldset>\n";}echo"<p>";}echo
checkbox("error_stops",1,($_POST?$_POST["error_stops"]:isset($_GET["import"])||$_GET["error_stops"]),lang(156))."\n",checkbox("only_errors",1,($_POST?$_POST["only_errors"]:isset($_GET["import"])||$_GET["only_errors"]),lang(157))."\n","<input type='hidden' name='token' value='$T'>\n";if(!isset($_GET["import"])&&$cd){print_fieldset("history",lang(158),$_GET["history"]!="");for($X=end($cd);$X;$X=prev($cd)){$z=key($cd);list($H,$Tg,$Zb)=$X;echo'<a href="'.h(ME."sql=&history=$z").'">'.lang(11)."</a>"." <span class='time' title='".@date('Y-m-d',$Tg)."'>".@date("H:i:s",$Tg)."</span>"." <code class='jush-$y'>".shorten_utf8(ltrim(str_replace("\n"," ",str_replace("\r","",preg_replace('~^(#|-- ).*~m','',$H)))),80,"</code>").($Zb?" <span class='time'>($Zb)</span>":"")."<br>\n";}echo"<input type='submit' name='clear' value='".lang(159)."'>\n","<a href='".h(ME."sql=&history=all")."'>".lang(160)."</a>\n","</div></fieldset>\n";}echo'</form>
';}elseif(isset($_GET["edit"])){$b=$_GET["edit"];$o=fields($b);$Z=(isset($_GET["select"])?($_POST["check"]&&count($_POST["check"])==1?where_check($_POST["check"][0],$o):""):where($_GET,$o));$vh=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($o
as$E=>$n){if(!isset($n["privileges"][$vh?"update":"insert"])||$c->fieldName($n)==""||$n["generated"])unset($o[$E]);}if($_POST&&!$m&&!isset($_GET["select"])){$B=$_POST["referer"];if($_POST["insert"])$B=($vh?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$B))$B=ME."select=".urlencode($b);$x=indexes($b);$qh=unique_array($_GET["where"],$x);$_f="\nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($B,lang(161),$l->delete($b,$_f,!$qh));else{$P=array();foreach($o
as$E=>$n){$X=process_input($n);if($X!==false&&$X!==null)$P[idf_escape($E)]=$X;}if($vh){if(!$P)redirect($B);queries_redirect($B,lang(162),$l->update($b,$P,$_f,!$qh));if(is_ajax()){page_headers();page_messages($m);exit;}}else{$J=$l->insert($b,$P);$Gd=($J?last_id():0);queries_redirect($B,lang(163,($Gd?" $Gd":"")),$J);}}}$L=null;if($_POST["save"])$L=(array)$_POST["fields"];elseif($Z){$N=array();foreach($o
as$E=>$n){if(isset($n["privileges"]["select"])){$va=convert_field($n);if($_POST["clone"]&&$n["auto_increment"])$va="''";if($y=="sql"&&preg_match("~enum|set~",$n["type"]))$va="1*".idf_escape($E);$N[]=($va?"$va AS ":"").idf_escape($E);}}$L=array();if(!support("table"))$N=array("*");if($N){$J=$l->select($b,$N,array($Z),$N,array(),(isset($_GET["select"])?2:1));if(!$J)$m=error();else{$L=$J->fetch_assoc();if(!$L)$L=false;}if(isset($_GET["select"])&&(!$L||$J->fetch_assoc()))$L=null;}}if(!support("table")&&!$o){if(!$Z){$J=$l->select($b,array("*"),$Z,array("*"));$L=($J?$J->fetch_assoc():false);if(!$L)$L=array($l->primary=>"");}if($L){foreach($L
as$z=>$X){if(!$Z)$L[$z]=null;$o[$z]=array("field"=>$z,"null"=>($z!=$l->primary),"auto_increment"=>($z==$l->primary));}}}edit_form($b,$o,$L,$vh);}elseif(isset($_GET["create"])){$b=$_GET["create"];$Ye=array();foreach(array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST')as$z)$Ye[$z]=$z;$Ff=referencable_primary($b);$Jc=array();foreach($Ff
as$Gg=>$n)$Jc[str_replace("`","``",$Gg)."`".str_replace("`","``",$n["field"])]=$Gg;$Oe=array();$R=array();if($b!=""){$Oe=fields($b);$R=table_status($b);if(!$R)$m=lang(10);}$L=$_POST;$L["fields"]=(array)$L["fields"];if($L["auto_increment_col"])$L["fields"][$L["auto_increment_col"]]["auto_increment"]=true;if($_POST)set_adminer_settings(array("comments"=>$_POST["comments"],"defaults"=>$_POST["defaults"]));if($_POST&&!process_fields($L["fields"])&&!$m){if($_POST["drop"])queries_redirect(substr(ME,0,-1),lang(164),drop_tables(array($b)));else{$o=array();$sa=array();$zh=false;$Hc=array();$Ne=reset($Oe);$qa=" FIRST";foreach($L["fields"]as$z=>$n){$p=$Jc[$n["type"]];$lh=($p!==null?$Ff[$p]:$n);if($n["field"]!=""){if(!$n["has_default"])$n["default"]=null;$wf=process_field($n,$lh);$sa[]=array($n["orig"],$wf,$qa);if(!$Ne||$wf!==process_field($Ne,$Ne)){$o[]=array($n["orig"],$wf,$qa);if($n["orig"]!=""||$qa)$zh=true;}if($p!==null)$Hc[idf_escape($n["field"])]=($b!=""&&$y!="sqlite"?"ADD":" ").format_foreign_key(array('table'=>$Jc[$n["type"]],'source'=>array($n["field"]),'target'=>array($lh["field"]),'on_delete'=>$n["on_delete"],));$qa=" AFTER ".idf_escape($n["field"]);}elseif($n["orig"]!=""){$zh=true;$o[]=array($n["orig"]);}if($n["orig"]!=""){$Ne=next($Oe);if(!$Ne)$qa="";}}$af="";if(support("partitioning")){if(isset($Ye[$L["partition_by"]])){$We=array_filter($L,function($z){return
preg_match('~^partition~',$z);},ARRAY_FILTER_USE_KEY);foreach($We["partition_names"]as$z=>$E){if($E==""){unset($We["partition_names"][$z]);unset($We["partition_values"][$z]);}}if($We!=get_partitions_info($b)){$bf=array();if($We["partition_by"]=='RANGE'||$We["partition_by"]=='LIST'){foreach($We["partition_names"]as$z=>$E){$Y=$We["partition_values"][$z];$bf[]="\n PARTITION ".idf_escape($E)." VALUES ".($We["partition_by"]=='RANGE'?"LESS THAN":"IN").($Y!=""?" ($Y)":" MAXVALUE");}}$af.="\nPARTITION BY $We[partition_by]($We[partition])";if($bf)$af.=" (".implode(",",$bf)."\n)";elseif($We["partitions"])$af.=" PARTITIONS ".(+$We["partitions"]);}}elseif(preg_match("~partitioned~",$R["Create_options"]))$af.="\nREMOVE PARTITIONING";}$D=lang(165);if($b==""){cookie("adminer_engine",$L["Engine"]);$D=lang(166);}$E=trim($L["name"]);queries_redirect(ME.(support("table")?"table=":"select=").urlencode($E),$D,alter_table($b,$E,($y=="sqlite"&&($zh||$Hc)?$sa:$o),$Hc,($L["Comment"]!=$R["Comment"]?$L["Comment"]:null),($L["Engine"]&&$L["Engine"]!=$R["Engine"]?$L["Engine"]:""),($L["Collation"]&&$L["Collation"]!=$R["Collation"]?$L["Collation"]:""),($L["Auto_increment"]!=""?number($L["Auto_increment"]):""),$af));}}page_header(($b!=""?lang(34):lang(64)),$m,array("table"=>$b),h($b));if(!$_POST){$L=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($nh["int"])?"int":(isset($nh["integer"])?"integer":"")),"on_update"=>"")),"partition_names"=>array(""),);if($b!=""){$L=$R;$L["name"]=$b;$L["fields"]=array();if(!$_GET["auto_increment"])$L["Auto_increment"]="";foreach($Oe
as$n){$n["has_default"]=isset($n["default"]);$L["fields"][]=$n;}if(support("partitioning")){$L+=get_partitions_info($b);$L["partition_names"][]="";$L["partition_values"][]="";}}}$bb=collations();$gc=engines();foreach($gc
as$fc){if(!strcasecmp($fc,$L["Engine"])){$L["Engine"]=$fc;break;}}echo'
<form action="" method="post" id="form">
<p>
';if(support("columns")||$b==""){echo
lang(167),': <input name="name"',($b==""&&!$_POST?" autofocus":""),' data-maxlength="64" value="',h($L["name"]),'" autocapitalize="off">
',($gc?"<select name='Engine'>".optionlist(array(""=>"(".lang(168).")")+$gc,$L["Engine"])."</select>".on_help("getTarget(event).value",1).script("qsl('select').onchange = helpClose;"):""),' ',($bb&&!preg_match("~sqlite|mssql~",$y)?html_select("Collation",array(""=>"(".lang(95).")")+$bb,$L["Collation"]):""),' <input type="submit" value="',lang(15),'">
';}echo'
';if(support("columns")){echo'<div class="scrollable">
<table id="edit-fields" class="nowrap">
';edit_fields($L["fields"],$bb,"TABLE",$Jc);echo'</table>
',script("editFields();"),'</div>
<p>
',lang(41),': <input type="number" name="Auto_increment" class="size" value="',h($L["Auto_increment"]),'">
',checkbox("defaults",1,($_POST?$_POST["defaults"]:adminer_setting("defaults")),lang(169),"columnShow(this.checked, 5)","jsonly");$hb=($_POST?$_POST["comments"]:adminer_setting("comments"));echo(support("comment")?checkbox("comments",1,$hb,lang(40),"editingCommentsClick(this, true);","jsonly").' '.(preg_match('~\n~',$L["Comment"])?"<textarea name='Comment' rows='2' cols='20'".($hb?"":" class='hidden'").">".h($L["Comment"])."</textarea>":'<input name="Comment" value="'.h($L["Comment"]).'" data-maxlength="'.(min_version(5.5)?2048:60).'"'.($hb?"":" class='hidden'").'>'):''),'<p>
<input type="submit" value="',lang(15),'">
';}echo'
';if($b!=""){echo'<input type="submit" name="drop" value="',lang(121),'">',confirm(lang(170,$b));}if(support("partitioning")){$Ze=preg_match('~RANGE|LIST~',$L["partition_by"]);print_fieldset("partition",lang(171),$L["partition_by"]);echo'<p>
',"<select name='partition_by'>".optionlist(array(""=>"")+$Ye,$L["partition_by"])."</select>".on_help("getTarget(event).value.replace(/./, 'PARTITION BY \$&')",1).script("qsl('select').onchange = partitionByChange;"),'(<input name="partition" value="',h($L["partition"]),'">)
',lang(172),': <input type="number" name="partitions" class="size',($Ze||!$L["partition_by"]?" hidden":""),'" value="',h($L["partitions"]),'">
<table id="partition-table"',($Ze?"":" class='hidden'"),'>
<thead><tr><th>',lang(173),'<th>',lang(174),'</thead>
';foreach($L["partition_names"]as$z=>$X){echo'<tr>','<td><input name="partition_names[]" value="'.h($X).'" autocapitalize="off">',($z==count($L["partition_names"])-1?script("qsl('input').oninput = partitionNameChange;"):''),'<td><input name="partition_values[]" value="'.h($L["partition_values"][$z]).'">';}echo'</table>
</div></fieldset>
';}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["indexes"])){$b=$_GET["indexes"];$ld=array("PRIMARY","UNIQUE","INDEX");$R=table_status($b,true);if(preg_match('~MyISAM|M?aria'.(min_version(5.6,'10.0.5')?'|InnoDB':'').'~i',$R["Engine"]))$ld[]="FULLTEXT";if(preg_match('~MyISAM|M?aria'.(min_version(5.7,'10.2.2')?'|InnoDB':'').'~i',$R["Engine"]))$ld[]="SPATIAL";$x=indexes($b);$qf=array();if($y=="mongo"){$qf=$x["_id_"];unset($ld[0]);unset($x["_id_"]);}$L=$_POST;if($L)set_adminer_settings(array("index_options"=>$L["options"]));if($_POST&&!$m&&!$_POST["add"]&&!$_POST["drop_col"]){$ta=array();foreach($L["indexes"]as$w){$E=$w["name"];if(in_array($w["type"],$ld)){$e=array();$Md=array();$Jb=array();$P=array();ksort($w["columns"]);foreach($w["columns"]as$z=>$d){if($d!=""){$Ld=$w["lengths"][$z];$Ib=$w["descs"][$z];$P[]=idf_escape($d).($Ld?"(".(+$Ld).")":"").($Ib?" DESC":"");$e[]=$d;$Md[]=($Ld?$Ld:null);$Jb[]=$Ib;}}if($e){$rc=$x[$E];if($rc){ksort($rc["columns"]);ksort($rc["lengths"]);ksort($rc["descs"]);if($w["type"]==$rc["type"]&&array_values($rc["columns"])===$e&&(!$rc["lengths"]||array_values($rc["lengths"])===$Md)&&array_values($rc["descs"])===$Jb){unset($x[$E]);continue;}}$ta[]=array($w["type"],$E,$P);}}}foreach($x
as$E=>$rc)$ta[]=array($rc["type"],$E,"DROP");if(!$ta)redirect(ME."table=".urlencode($b));queries_redirect(ME."table=".urlencode($b),lang(175),alter_indexes($b,$ta));}page_header(lang(125),$m,array("table"=>$b),h($b));$o=array_keys(fields($b));if($_POST["add"]){foreach($L["indexes"]as$z=>$w){if($w["columns"][count($w["columns"])]!="")$L["indexes"][$z]["columns"][]="";}$w=end($L["indexes"]);if($w["type"]||array_filter($w["columns"],'strlen'))$L["indexes"][]=array("columns"=>array(1=>""));}if(!$L){foreach($x
as$z=>$w){$x[$z]["name"]=$z;$x[$z]["columns"][]="";}$x[]=array("columns"=>array(1=>""));$L["indexes"]=$x;}$Md=($y=="sql"||$y=="mssql");$ig=($_POST?$_POST["options"]:adminer_setting("index_options"));echo'
<form action="" method="post">
<div class="scrollable">
<table class="nowrap">
<thead><tr>
<th id="label-type">',lang(176),'<th><input type="submit" class="wayoff">',lang(38).($Md?"<span class='idxopts".($ig?"":" hidden")."'> (".lang(177).")</span>":"");if($Md||support("descidx"))echo
checkbox("options",1,$ig,lang(101),"indexOptionsShow(this.checked)","jsonly")."\n";echo'<th id="label-name">',lang(178),'<th><noscript>',"<input type='image' class='icon' name='add[0]' src='".h(preg_replace("~\\?.*~","",ME)."?file=plus.gif&version=4.17.1")."' alt='+' title='".lang(102)."'>",'</noscript>
</thead>
';if($qf){echo"<tr><td>PRIMARY<td>";foreach($qf["columns"]as$z=>$d){echo
select_input(" disabled",$o,$d),"<label><input disabled type='checkbox'>".lang(49)."</label> ";}echo"<td><td>\n";}$xd=1;foreach($L["indexes"]as$w){if(!$_POST["drop_col"]||$xd!=key($_POST["drop_col"])){echo"<tr><td>".html_select("indexes[$xd][type]",array(-1=>"")+$ld,$w["type"],($xd==count($L["indexes"])?"indexesAddRow.call(this);":1),"label-type"),"<td>";ksort($w["columns"]);$t=1;foreach($w["columns"]as$z=>$d){echo"<span>".select_input(" name='indexes[$xd][columns][$t]' title='".lang(38)."'",($o?array_combine($o,$o):$o),$d,"partial(".($t==count($w["columns"])?"indexesAddColumn":"indexesChangeColumn").", '".js_escape($y=="sql"?"":$_GET["indexes"]."_")."')"),"<span class='idxopts".($ig?"":" hidden")."'>",($Md?"<input type='number' name='indexes[$xd][lengths][$t]' class='size' value='".h($w["lengths"][$z])."' title='".lang(100)."'>":""),(support("descidx")?checkbox("indexes[$xd][descs][$t]",1,$w["descs"][$z],lang(49)):""),"</span> </span>";$t++;}echo"<td><input name='indexes[$xd][name]' value='".h($w["name"])."' autocapitalize='off' aria-labelledby='label-name'>\n","<td><input type='image' class='icon' name='drop_col[$xd]' src='".h(preg_replace("~\\?.*~","",ME)."?file=cross.gif&version=4.17.1")."' alt='x' title='".lang(105)."'>".script("qsl('input').onclick = partial(editingRemoveRow, 'indexes\$1[type]');");}$xd++;}echo'</table>
</div>
<p>
<input type="submit" value="',lang(15),'">
<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["database"])){$L=$_POST;if($_POST&&!$m&&!isset($_POST["add_x"])){$E=trim($L["name"]);if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),lang(179),drop_databases(array(DB)));}elseif(DB!==$E){if(DB!=""){$_GET["db"]=$E;queries_redirect(preg_replace('~\bdb=[^&]*&~','',ME)."db=".urlencode($E),lang(180),rename_database($E,$L["collation"]));}else{$j=explode("\n",str_replace("\r","",$E));$Ag=true;$Fd="";foreach($j
as$k){if(count($j)==1||$k!=""){if(!create_database($k,$L["collation"]))$Ag=false;$Fd=$k;}}restart_session();set_session("dbs",null);queries_redirect(ME."db=".urlencode($Fd),lang(181),$Ag);}}else{if(!$L["collation"])redirect(substr(ME,0,-1));query_redirect("ALTER DATABASE ".idf_escape($E).(preg_match('~^[a-z0-9_]+$~i',$L["collation"])?" COLLATE $L[collation]":""),substr(ME,0,-1),lang(182));}}page_header(DB!=""?lang(57):lang(109),$m,array(),h(DB));$bb=collations();$E=DB;if($_POST)$E=$L["name"];elseif(DB!="")$L["collation"]=db_collation(DB,$bb);elseif($y=="sql"){foreach(get_vals("SHOW GRANTS")as$Qc){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\.\*)?~',$Qc,$C)&&$C[1]){$E=stripcslashes(idf_unescape("`$C[2]`"));break;}}}echo'
<form action="" method="post">
<p>
',($_POST["add_x"]||strpos($E,"\n")?'<textarea autofocus name="name" rows="10" cols="40">'.h($E).'</textarea><br>':'<input name="name" autofocus value="'.h($E).'" data-maxlength="64" autocapitalize="off">')."\n".($bb?html_select("collation",array(""=>"(".lang(95).")")+$bb,$L["collation"]).doc_link(array('sql'=>"charset-charsets.html",'mariadb'=>"supported-character-sets-and-collations/",)):""),'<input type="submit" value="',lang(15),'">
';if(DB!="")echo"<input type='submit' name='drop' value='".lang(121)."'>".confirm(lang(170,DB))."\n";elseif(!$_POST["add_x"]&&$_GET["db"]=="")echo"<input type='image' class='icon' name='add' src='".h(preg_replace("~\\?.*~","",ME)."?file=plus.gif&version=4.17.1")."' alt='+' title='".lang(102)."'>\n";echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["call"])){$ca=($_GET["name"]?$_GET["name"]:$_GET["call"]);page_header(lang(183).": ".h($ca),$m);$Qf=routine($_GET["call"],(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$jd=array();$Re=array();foreach($Qf["fields"]as$t=>$n){if(substr($n["inout"],-3)=="OUT")$Re[$t]="@".idf_escape($n["field"])." AS ".idf_escape($n["field"]);if(!$n["inout"]||substr($n["inout"],0,2)=="IN")$jd[]=$t;}if(!$m&&$_POST){$Ma=array();foreach($Qf["fields"]as$z=>$n){if(in_array($z,$jd)){$X=process_input($n);if($X===false)$X="''";if(isset($Re[$z]))$g->query("SET @".idf_escape($n["field"])." = $X");}$Ma[]=(isset($Re[$z])?"@".idf_escape($n["field"]):$X);}$I=(isset($_GET["callf"])?"SELECT":"CALL")." ".table($ca)."(".implode(", ",$Ma).")";$ug=microtime(true);$J=$g->multi_query($I);$oa=$g->affected_rows;echo$c->selectQuery($I,$ug,!$J);if(!$J)echo"<p class='error'>".error()."\n";else{$h=connect();if(is_object($h))$h->select_db(DB);do{$J=$g->store_result();if(is_object($J))select($J,$h);else
echo"<p class='message'>".lang(184,$oa)." <span class='time'>".@date("H:i:s")."</span>\n";}while($g->next_result());if($Re)select($g->query("SELECT ".implode(", ",$Re)));}}echo'
<form action="" method="post">
';if($jd){echo"<table class='layout'>\n";foreach($jd
as$z){$n=$Qf["fields"][$z];$E=$n["field"];echo"<tr><th>".$c->fieldName($n);$Y=$_POST["fields"][$E];if($Y!=""){if($n["type"]=="enum")$Y=+$Y;if($n["type"]=="set")$Y=array_sum($Y);}input($n,$Y,(string)$_POST["function"][$E]);echo"\n";}echo"</table>\n";}echo'<p>
<input type="submit" value="',lang(183),'">
<input type="hidden" name="token" value="',$T,'">
</form>
<pre>
';function
pre_tr($Tf){return
preg_replace('~^~m','<tr>',preg_replace('~\|~','<td>',preg_replace('~\|$~m',"",rtrim($Tf))));}$Q='(\+--[-+]+\+\n)';$L='(\| .* \|\n)';echo
preg_replace_callback("~^$Q?$L$Q?($L*)$Q?~m",function($C){$Ec=pre_tr($C[2]);return"<table>\n".($C[1]?"<thead>$Ec</thead>\n":$Ec).pre_tr($C[4])."\n</table>";},preg_replace('~(\n( -|mysql)&gt; )(.+)~',"\\1<code class='jush-sql'>\\3</code>",preg_replace('~(.+)\n---+\n~',"<b>\\1</b>\n",h($Qf['comment']))));echo'</pre>
';}elseif(isset($_GET["foreign"])){$b=$_GET["foreign"];$E=$_GET["name"];$L=$_POST;if($_POST&&!$m&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){$D=($_POST["drop"]?lang(185):($E!=""?lang(186):lang(187)));$B=ME."table=".urlencode($b);if(!$_POST["drop"]){$L["source"]=array_filter($L["source"],'strlen');ksort($L["source"]);$Ng=array();foreach($L["source"]as$z=>$X)$Ng[$z]=$L["target"][$z];$L["target"]=$Ng;}if($y=="sqlite")queries_redirect($B,$D,recreate_table($b,$b,array(),array(),array(" $E"=>($_POST["drop"]?"":" ".format_foreign_key($L)))));else{$ta="ALTER TABLE ".table($b);$Rb="\nDROP ".($y=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($E);if($_POST["drop"])query_redirect($ta.$Rb,$B,$D);else{query_redirect($ta.($E!=""?"$Rb,":"")."\nADD".format_foreign_key($L),$B,$D);$m=lang(188)."<br>$m";}}}page_header(lang(189),$m,array("table"=>$b),h($b));if($_POST){ksort($L["source"]);if($_POST["add"])$L["source"][]="";elseif($_POST["change"]||$_POST["change-js"])$L["target"]=array();}elseif($E!=""){$Jc=foreign_keys($b);$L=$Jc[$E];$L["source"][]="";}else{$L["table"]=$b;$L["source"]=array("");}echo'
<form action="" method="post">
';$ng=array_keys(fields($b));if($L["db"]!="")$g->select_db($L["db"]);if($L["ns"]!="")set_schema($L["ns"]);$Ef=array_keys(array_filter(table_status('',true),'fk_support'));$Ng=array_keys(fields(in_array($L["table"],$Ef)?$L["table"]:reset($Ef)));$Be="this.form['change-js'].value = '1'; this.form.submit();";echo"<p>".lang(190).": ".html_select("table",$Ef,$L["table"],$Be)."\n";if($y=="pgsql")echo
lang(191).": ".html_select("ns",$c->schemas(),$L["ns"]!=""?$L["ns"]:$_GET["ns"],$Be);elseif($y!="sqlite"){$Bb=array();foreach($c->databases()as$k){if(!information_schema($k))$Bb[]=$k;}echo
lang(65).": ".html_select("db",$Bb,$L["db"]!=""?$L["db"]:$_GET["db"],$Be);}echo'<input type="hidden" name="change-js" value="">
<noscript><p><input type="submit" name="change" value="',lang(192),'"></noscript>
<table>
<thead><tr><th id="label-source">',lang(127),'<th id="label-target">',lang(128),'</thead>
';$xd=0;foreach($L["source"]as$z=>$X){echo"<tr>","<td>".html_select("source[".(+$z)."]",array(-1=>"")+$ng,$X,($xd==count($L["source"])-1?"foreignAddRow.call(this);":1),"label-source"),"<td>".html_select("target[".(+$z)."]",$Ng,$L["target"][$z],1,"label-target");$xd++;}echo'</table>
<p>
',lang(97),': ',html_select("on_delete",array(-1=>"")+explode("|",$Ae),$L["on_delete"]),' ',lang(96),': ',html_select("on_update",array(-1=>"")+explode("|",$Ae),$L["on_update"]),doc_link(array('sql'=>"innodb-foreign-key-constraints.html",'mariadb'=>"foreign-keys/",)),'<p>
<input type="submit" value="',lang(15),'">
<noscript><p><input type="submit" name="add" value="',lang(193),'"></noscript>
';if($E!=""){echo'<input type="submit" name="drop" value="',lang(121),'">',confirm(lang(170,$E));}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["view"])){$b=$_GET["view"];$L=$_POST;$Pe="VIEW";if($y=="pgsql"&&$b!=""){$vg=table_status($b);$Pe=strtoupper($vg["Engine"]);}if($_POST&&!$m){$E=trim($L["name"]);$va=" AS\n$L[select]";$B=ME."table=".urlencode($E);$D=lang(194);$U=($_POST["materialized"]?"MATERIALIZED VIEW":"VIEW");if(!$_POST["drop"]&&$b==$E&&$y!="sqlite"&&$U=="VIEW"&&$Pe=="VIEW")query_redirect(($y=="mssql"?"ALTER":"CREATE OR REPLACE")." VIEW ".table($E).$va,$B,$D);else{$Pg=$E."_adminer_".uniqid();drop_create("DROP $Pe ".table($b),"CREATE $U ".table($E).$va,"DROP $U ".table($E),"CREATE $U ".table($Pg).$va,"DROP $U ".table($Pg),($_POST["drop"]?substr(ME,0,-1):$B),lang(195),$D,lang(196),$b,$E);}}if(!$_POST&&$b!=""){$L=view($b);$L["name"]=$b;$L["materialized"]=($Pe!="VIEW");if(!$m)$m=error();}page_header(($b!=""?lang(33):lang(197)),$m,array("table"=>$b),h($b));echo'
<form action="" method="post">
<p>',lang(178),': <input name="name" value="',h($L["name"]),'" data-maxlength="64" autocapitalize="off">
',(support("materializedview")?" ".checkbox("materialized",1,$L["materialized"],lang(122)):""),'<p>';textarea("select",$L["select"]);echo'<p>
<input type="submit" value="',lang(15),'">
';if($b!=""){echo'<input type="submit" name="drop" value="',lang(121),'">',confirm(lang(170,$b));}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["event"])){$aa=$_GET["event"];$qd=array("YEAR","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND");$wg=array("ENABLED"=>"ENABLE","DISABLED"=>"DISABLE","SLAVESIDE_DISABLED"=>"DISABLE ON SLAVE");$L=$_POST;if($_POST&&!$m){if($_POST["drop"])query_redirect("DROP EVENT ".idf_escape($aa),substr(ME,0,-1),lang(198));elseif(in_array($L["INTERVAL_FIELD"],$qd)&&isset($wg[$L["STATUS"]])){$Uf="\nON SCHEDULE ".($L["INTERVAL_VALUE"]?"EVERY ".q($L["INTERVAL_VALUE"])." $L[INTERVAL_FIELD]".($L["STARTS"]?" STARTS ".q($L["STARTS"]):"").($L["ENDS"]?" ENDS ".q($L["ENDS"]):""):"AT ".q($L["STARTS"]))." ON COMPLETION".($L["ON_COMPLETION"]?"":" NOT")." PRESERVE";queries_redirect(substr(ME,0,-1),($aa!=""?lang(199):lang(200)),queries(($aa!=""?"ALTER EVENT ".idf_escape($aa).$Uf.($aa!=$L["EVENT_NAME"]?"\nRENAME TO ".idf_escape($L["EVENT_NAME"]):""):"CREATE EVENT ".idf_escape($L["EVENT_NAME"]).$Uf)."\n".$wg[$L["STATUS"]]." COMMENT ".q($L["EVENT_COMMENT"]).rtrim(" DO\n$L[EVENT_DEFINITION]",";").";"));}}page_header(($aa!=""?lang(201).": ".h($aa):lang(202)),$m);if(!$L&&$aa!=""){$M=get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = ".q(DB)." AND EVENT_NAME = ".q($aa));$L=reset($M);}echo'
<form action="" method="post">
<table class="layout">
<tr><th>',lang(178),'<td><input name="EVENT_NAME" value="',h($L["EVENT_NAME"]),'" data-maxlength="64" autocapitalize="off">
<tr><th title="datetime">',lang(203),'<td><input name="STARTS" value="',h("$L[EXECUTE_AT]$L[STARTS]"),'">
<tr><th title="datetime">',lang(204),'<td><input name="ENDS" value="',h($L["ENDS"]),'">
<tr><th>',lang(205),'<td><input type="number" name="INTERVAL_VALUE" value="',h($L["INTERVAL_VALUE"]),'" class="size"> ',html_select("INTERVAL_FIELD",$qd,$L["INTERVAL_FIELD"]),'<tr><th>',lang(112),'<td>',html_select("STATUS",$wg,$L["STATUS"]),'<tr><th>',lang(40),'<td><input name="EVENT_COMMENT" value="',h($L["EVENT_COMMENT"]),'" data-maxlength="64">
<tr><th><td>',checkbox("ON_COMPLETION","PRESERVE",$L["ON_COMPLETION"]=="PRESERVE",lang(206)),'</table>
<p>';textarea("EVENT_DEFINITION",$L["EVENT_DEFINITION"]);echo'<p>
<input type="submit" value="',lang(15),'">
';if($aa!=""){echo'<input type="submit" name="drop" value="',lang(121),'">',confirm(lang(170,$aa));}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["procedure"])){$ca=($_GET["name"]?$_GET["name"]:$_GET["procedure"]);$Qf=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$L=$_POST;$L["fields"]=(array)$L["fields"];if($_POST&&!process_fields($L["fields"])&&!$m){$Me=routine($_GET["procedure"],$Qf);$Pg="$L[name]_adminer_".uniqid();drop_create("DROP $Qf ".routine_id($ca,$Me),create_routine($Qf,$L),"DROP $Qf ".routine_id($L["name"],$L),create_routine($Qf,array("name"=>$Pg)+$L),"DROP $Qf ".routine_id($Pg,$L),substr(ME,0,-1),lang(207),lang(208),lang(209),$ca,$L["name"]);}page_header(($ca!=""?(isset($_GET["function"])?lang(210):lang(211)).": ".h($ca):(isset($_GET["function"])?lang(212):lang(213))),$m);if(!$_POST&&$ca!=""){$L=routine($_GET["procedure"],$Qf);$L["name"]=$ca;}$bb=get_vals("SHOW CHARACTER SET");sort($bb);$Rf=routine_languages();echo'
<form action="" method="post" id="form">
<p>',lang(178),': <input name="name" value="',h($L["name"]),'" data-maxlength="64" autocapitalize="off">
',($Rf?lang(20).": ".html_select("language",$Rf,$L["language"])."\n":""),'<input type="submit" value="',lang(15),'">
<div class="scrollable">
<table class="nowrap">
';edit_fields($L["fields"],$bb,$Qf);if(isset($_GET["function"])){echo"<tr><td>".lang(214);edit_type("returns",$L["returns"],$bb,array(),($y=="pgsql"?array("void","trigger"):array()));}echo'</table>
',script("editFields();"),'</div>
<p>';textarea("definition",$L["definition"]);echo'<p>
<input type="submit" value="',lang(15),'">
';if($ca!=""){echo'<input type="submit" name="drop" value="',lang(121),'">',confirm(lang(170,$ca));}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["check"])){$b=$_GET["check"];$E=$_GET["name"];$L=$_POST;if($L&&!$m){$J=($E==""||queries("ALTER TABLE ".table($b)." DROP CONSTRAINT ".idf_escape($E)));if(!$L["drop"])$J=queries("ALTER TABLE ".table($b)." ADD".($L["name"]!=""?" CONSTRAINT ".idf_escape($L["name"])."":"")." CHECK ($L[clause])");queries_redirect(ME."table=".urlencode($b),($L["drop"]?lang(215):($E!=""?lang(216):lang(217))),$J);}page_header(($E!=""?lang(218).": ".h($E):lang(132)),$m,array("table"=>$b));if(!$L){$Sa=check_constraints($b);$L=array("name"=>$E,"clause"=>$Sa[$E]);}echo'
<form action="" method="post">
<p>',lang(178),': <input name="name" value="',h($L["name"]),'" data-maxlength="64" autocapitalize="off">',doc_link(array('sql'=>"create-table-check-constraints.html",'mariadb'=>"constraint/",)),'<p>';textarea("clause",$L["clause"]);echo'<p><input type="submit" value="',lang(15),'">
';if($E!=""){echo'<input type="submit" name="drop" value="',lang(121),'">',confirm(lang(170,$E));}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["trigger"])){$b=$_GET["trigger"];$E=$_GET["name"];$jh=trigger_options();$L=(array)trigger($E,$b)+array("Trigger"=>$b."_bi");if($_POST){if(!$m&&in_array($_POST["Timing"],$jh["Timing"])&&in_array($_POST["Event"],$jh["Event"])&&in_array($_POST["Type"],$jh["Type"])){$_e=" ON ".table($b);$Rb="DROP TRIGGER ".idf_escape($E).($y=="pgsql"?$_e:"");$B=ME."table=".urlencode($b);if($_POST["drop"])query_redirect($Rb,$B,lang(219));else{if($E!="")queries($Rb);queries_redirect($B,($E!=""?lang(220):lang(221)),queries(create_trigger($_e,$_POST)));if($E!="")queries(create_trigger($_e,$L+array("Type"=>reset($jh["Type"]))));}}$L=$_POST;}page_header(($E!=""?lang(222).": ".h($E):lang(223)),$m,array("table"=>$b));echo'
<form action="" method="post" id="form">
<table class="layout">
<tr><th>',lang(224),'<td>',html_select("Timing",$jh["Timing"],$L["Timing"],"triggerChange(/^".preg_quote($b,"/")."_[ba][iud]$/, '".js_escape($b)."', this.form);"),'<tr><th>',lang(225),'<td>',html_select("Event",$jh["Event"],$L["Event"],"this.form['Timing'].onchange();"),(in_array("UPDATE OF",$jh["Event"])?" <input name='Of' value='".h($L["Of"])."' class='hidden'>":""),'<tr><th>',lang(39),'<td>',html_select("Type",$jh["Type"],$L["Type"]),'</table>
<p>',lang(178),': <input name="Trigger" value="',h($L["Trigger"]),'" data-maxlength="64" autocapitalize="off">
',script("qs('#form')['Timing'].onchange();"),'<p>';textarea("Statement",$L["Statement"]);echo'<p>
<input type="submit" value="',lang(15),'">
';if($E!=""){echo'<input type="submit" name="drop" value="',lang(121),'">',confirm(lang(170,$E));}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["user"])){$ea=$_GET["user"];$uf=array(""=>array("All privileges"=>""));foreach(get_rows("SHOW PRIVILEGES")as$L){foreach(explode(",",($L["Privilege"]=="Grant option"?"":$L["Context"]))as$nb)$uf[$nb][$L["Privilege"]]=$L["Comment"];}$uf["Server Admin"]+=$uf["File access on server"];$uf["Databases"]["Create routine"]=$uf["Procedures"]["Create routine"];unset($uf["Procedures"]["Create routine"]);$uf["Columns"]=array();foreach(array("Select","Insert","Update","References")as$X)$uf["Columns"][$X]=$uf["Tables"][$X];unset($uf["Server Admin"]["Usage"]);foreach($uf["Tables"]as$z=>$X)unset($uf["Databases"][$z]);$me=array();if($_POST){foreach($_POST["objects"]as$z=>$X)$me[$X]=(array)$me[$X]+(array)$_POST["grants"][$z];}$Rc=array();$ye="";if(isset($_GET["host"])&&($J=$g->query("SHOW GRANTS FOR ".q($ea)."@".q($_GET["host"])))){while($L=$J->fetch_row()){if(preg_match('~GRANT (.*) ON (.*) TO ~',$L[0],$C)&&preg_match_all('~ *([^(,]*[^ ,(])( *\([^)]+\))?~',$C[1],$Td,PREG_SET_ORDER)){foreach($Td
as$X){if($X[1]!="USAGE")$Rc["$C[2]$X[2]"][$X[1]]=true;if(preg_match('~ WITH GRANT OPTION~',$L[0]))$Rc["$C[2]$X[2]"]["GRANT OPTION"]=true;}}if(preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~",$L[0],$C))$ye=$C[1];}}if($_POST&&!$m){$ze=(isset($_GET["host"])?q($ea)."@".q($_GET["host"]):"''");if($_POST["drop"])query_redirect("DROP USER $ze",ME."privileges=",lang(226));else{$oe=q($_POST["user"])."@".q($_POST["host"]);$cf=$_POST["pass"];if($cf!=''&&!$_POST["hashed"]&&!min_version(8)){$cf=$g->result("SELECT PASSWORD(".q($cf).")");$m=!$cf;}$rb=false;if(!$m){if($ze!=$oe){$rb=queries((min_version(5)?"CREATE USER":"GRANT USAGE ON *.* TO")." $oe IDENTIFIED BY ".(min_version(8)?"":"PASSWORD ").q($cf));$m=!$rb;}elseif($cf!=$ye)queries("SET PASSWORD FOR $oe = ".q($cf));}if(!$m){$Nf=array();foreach($me
as$te=>$Qc){if(isset($_GET["grant"]))$Qc=array_filter($Qc);$Qc=array_keys($Qc);if(isset($_GET["grant"]))$Nf=array_diff(array_keys(array_filter($me[$te],'strlen')),$Qc);elseif($ze==$oe){$we=array_keys((array)$Rc[$te]);$Nf=array_diff($we,$Qc);$Qc=array_diff($Qc,$we);unset($Rc[$te]);}if(preg_match('~^(.+)\s*(\(.*\))?$~U',$te,$C)&&(!grant("REVOKE",$Nf,$C[2]," ON $C[1] FROM $oe")||!grant("GRANT",$Qc,$C[2]," ON $C[1] TO $oe"))){$m=true;break;}}}if(!$m&&isset($_GET["host"])){if($ze!=$oe)queries("DROP USER $ze");elseif(!isset($_GET["grant"])){foreach($Rc
as$te=>$Nf){if(preg_match('~^(.+)(\(.*\))?$~U',$te,$C))grant("REVOKE",array_keys($Nf),$C[2]," ON $C[1] FROM $oe");}}}queries_redirect(ME."privileges=",(isset($_GET["host"])?lang(227):lang(228)),!$m);if($rb)$g->query("DROP USER $oe");}}page_header((isset($_GET["host"])?lang(25).": ".h("$ea@$_GET[host]"):lang(141)),$m,array("privileges"=>array('',lang(61))));if($_POST){$L=$_POST;$Rc=$me;}else{$L=$_GET+array("host"=>$g->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)"));$L["pass"]=$ye;if($ye!="")$L["hashed"]=true;$Rc[(DB==""||$Rc?"":idf_escape(addcslashes(DB,"%_\\"))).".*"]=array();}echo'<form action="" method="post">
<table class="layout">
<tr><th>',lang(24),'<td><input name="host" data-maxlength="60" value="',h($L["host"]),'" autocapitalize="off">
<tr><th>',lang(25),'<td><input name="user" data-maxlength="80" value="',h($L["user"]),'" autocapitalize="off">
<tr><th>',lang(26),'<td><input name="pass" id="pass" value="',h($L["pass"]),'" autocomplete="new-password">
';if(!$L["hashed"])echo
script("typePassword(qs('#pass'));");echo(min_version(8)?"":checkbox("hashed",1,$L["hashed"],lang(229),"typePassword(this.form['pass'], this.checked);")),'</table>
';echo"<table class='odds'>\n","<thead><tr><th colspan='2'>".lang(61).doc_link(array('sql'=>"grant.html#priv_level"));$t=0;foreach($Rc
as$te=>$Qc){echo'<th>'.($te!="*.*"?"<input name='objects[$t]' value='".h($te)."' size='10' autocapitalize='off'>":"<input type='hidden' name='objects[$t]' value='*.*' size='10'>*.*");$t++;}echo"</thead>\n";foreach(array(""=>"","Server Admin"=>lang(24),"Databases"=>lang(27),"Tables"=>lang(124),"Columns"=>lang(38),"Procedures"=>lang(230),)as$nb=>$Ib){foreach((array)$uf[$nb]as$tf=>$fb){echo"<tr><td".($Ib?">$Ib<td":" colspan='2'").' lang="en" title="'.h($fb).'">'.h($tf);$t=0;foreach($Rc
as$te=>$Qc){$E="'grants[$t][".h(strtoupper($tf))."]'";$Y=$Qc[strtoupper($tf)];if($nb=="Server Admin"&&$te!=(isset($Rc["*.*"])?"*.*":".*"))echo"<td>";elseif(isset($_GET["grant"]))echo"<td><select name=$E><option><option value='1'".($Y?" selected":"").">".lang(231)."<option value='0'".($Y=="0"?" selected":"").">".lang(232)."</select>";else{echo"<td align='center'><label class='block'>","<input type='checkbox' name=$E value='1'".($Y?" checked":"").($tf=="All privileges"?" id='grants-$t-all'>":">".($tf=="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(15),'">
';if(isset($_GET["host"])){echo'<input type="submit" name="drop" value="',lang(121),'">',confirm(lang(170,"$ea@$_GET[host]"));}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["processlist"])){if(support("kill")){if($_POST&&!$m){$Ad=0;foreach((array)$_POST["kill"]as$X){if(kill_process($X))$Ad++;}queries_redirect(ME."processlist=",lang(233,$Ad),$Ad||!$_POST["kill"]);}}page_header(lang(110),$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=>$L){if(!$t){echo"<thead><tr lang='en'>".(support("kill")?"<th>":"");foreach($L
as$z=>$X)echo"<th>$z".doc_link(array('sql'=>"show-processlist.html#processlist_".strtolower($z),));echo"</thead>\n";}echo"<tr>".(support("kill")?"<td>".checkbox("kill[]",$L[$y=="sql"?"Id":"pid"],0):"");foreach($L
as$z=>$X)echo"<td>".(($y=="sql"&&$z=="Info"&&preg_match("~Query|Killed~",$L["Command"])&&$X!="")||($y=="pgsql"&&$z=="current_query"&&$X!="<IDLE>")||($y=="oracle"&&$z=="sql_text"&&$X!="")?"<code class='jush-$y'>".shorten_utf8($X,100,"</code>").' <a href="'.h(ME.($L["db"]!=""?"db=".urlencode($L["db"])."&":"")."sql=".urlencode($X)).'">'.lang(234).'</a>':h($X));echo"\n";}echo'</table>
</div>
<p>
';if(support("kill")){echo($t+1)."/".lang(235,max_connections()),"<p><input type='submit' value='".lang(236)."'>\n";}echo'<input type="hidden" name="token" value="',$T,'">
</form>
',script("tableCheck();");}elseif(isset($_GET["select"])){$b=$_GET["select"];$R=table_status1($b);$x=indexes($b);$o=fields($b);$Jc=column_foreign_keys($b);$ve=$R["Oid"];parse_str($_COOKIE["adminer_import"],$na);$Of=array();$e=array();$Sg=null;foreach($o
as$z=>$n){$E=$c->fieldName($n);if(isset($n["privileges"]["select"])&&$E!=""){$e[$z]=html_entity_decode(strip_tags($E),ENT_QUOTES);if(is_shortable($n))$Sg=$c->selectLengthProcess();}$Of+=$n["privileges"];}list($N,$s)=$c->selectColumnsProcess($e,$x);$ud=count($s)<count($N);$Z=$c->selectSearchProcess($o,$x);$Ie=$c->selectOrderProcess($o,$x);$_=$c->selectLimitProcess();if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$rh=>$L){$va=convert_field($o[key($L)]);$N=array($va?$va:idf_escape(key($L)));$Z[]=where_check($rh,$o);$K=$l->select($b,$N,$Z,$N);if($K)echo
reset($K->fetch_row());}exit;}$qf=$th=null;foreach($x
as$w){if($w["type"]=="PRIMARY"){$qf=array_flip($w["columns"]);$th=($N?$qf:array());foreach($th
as$z=>$X){if(in_array(idf_escape($z),$N))unset($th[$z]);}break;}}if($ve&&!$qf){$qf=$th=array($ve=>0);$x[]=array("type"=>"PRIMARY","columns"=>array($ve));}if($_POST&&!$m){$Oh=$Z;if(!$_POST["all"]&&is_array($_POST["check"])){$Sa=array();foreach($_POST["check"]as$Pa)$Sa[]=where_check($Pa,$o);$Oh[]="((".implode(") OR (",$Sa)."))";}$Oh=($Oh?"\nWHERE ".implode(" AND ",$Oh):"");if($_POST["export"]){cookie("adminer_import","output=".urlencode($_POST["output"])."&format=".urlencode($_POST["format"]));dump_headers($b);$c->dumpTable($b,"");$Nc=($N?implode(", ",$N):"*").convert_fields($e,$o,$N)."\nFROM ".table($b);$Tc=($s&&$ud?"\nGROUP BY ".implode(", ",$s):"").($Ie?"\nORDER BY ".implode(", ",$Ie):"");if(!is_array($_POST["check"])||$qf)$I="SELECT $Nc$Oh$Tc";else{$ph=array();foreach($_POST["check"]as$X)$ph[]="(SELECT".limit($Nc,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$o).$Tc,1).")";$I=implode(" UNION ALL ",$ph);}$c->dumpData($b,"table",$I);exit;}if(!$c->selectEmailProcess($Z,$Jc)){if($_POST["save"]||$_POST["delete"]){$J=true;$oa=0;$P=array();if(!$_POST["delete"]){foreach($e
as$E=>$X){$X=process_input($o[$E]);if($X!==null&&($_POST["clone"]||$X!==false))$P[idf_escape($E)]=($X!==false?$X:idf_escape($E));}}if($_POST["delete"]||$P){if($_POST["clone"])$I="INTO ".table($b)." (".implode(", ",array_keys($P)).")\nSELECT ".implode(", ",$P)."\nFROM ".table($b);if($_POST["all"]||($qf&&is_array($_POST["check"]))||$ud){$J=($_POST["delete"]?$l->delete($b,$Oh):($_POST["clone"]?queries("INSERT $I$Oh"):$l->update($b,$P,$Oh)));$oa=$g->affected_rows;}else{foreach((array)$_POST["check"]as$X){$Nh="\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$o);$J=($_POST["delete"]?$l->delete($b,$Nh,1):($_POST["clone"]?queries("INSERT".limit1($b,$I,$Nh)):$l->update($b,$P,$Nh,1)));if(!$J)break;$oa+=$g->affected_rows;}}}$D=lang(237,$oa);if($_POST["clone"]&&$J&&$oa==1){$Gd=last_id();if($Gd)$D=lang(163," $Gd");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$D,$J);if(!$_POST["delete"]){edit_form($b,$o,(array)$_POST["fields"],!$_POST["clone"]);page_footer();exit;}}elseif(!$_POST["import"]){if(!$_POST["val"])$m=lang(238);else{$J=true;$oa=0;foreach($_POST["val"]as$rh=>$L){$P=array();foreach($L
as$z=>$X){$z=bracket_escape($z,1);$P[idf_escape($z)]=(preg_match('~char|text~',$o[$z]["type"])||$X!=""?$c->processInput($o[$z],$X):"NULL");}$J=$l->update($b,$P," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($rh,$o),!$ud&&!$qf," ");if(!$J)break;$oa+=$g->affected_rows;}queries_redirect(remove_from_uri(),lang(237,$oa),$J);}}elseif(!is_string($Ac=get_file("csv_file",true)))$m=upload_error($Ac);elseif(!preg_match('~~u',$Ac))$m=lang(239);else{cookie("adminer_import","output=".urlencode($na["output"])."&format=".urlencode($_POST["separator"]));$J=true;$cb=array_keys($o);preg_match_all('~(?>"[^"]*"|[^"\r\n]+)+~',$Ac,$Td);$oa=count($Td[0]);$l->begin();$cg=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));$M=array();foreach($Td[0]as$z=>$X){preg_match_all("~((?>\"[^\"]*\")+|[^$cg]*)$cg~",$X.$cg,$Ud);if(!$z&&!array_diff($Ud[1],$cb)){$cb=$Ud[1];$oa--;}else{$P=array();foreach($Ud[1]as$t=>$Ya)$P[idf_escape($cb[$t])]=($Ya==""&&$o[$cb[$t]]["null"]?"NULL":q(str_replace('""','"',preg_replace('~^"|"$~','',$Ya))));$M[]=$P;}}$J=(!$M||$l->insertUpdate($b,$M,$qf));if($J)$J=$l->commit();queries_redirect(remove_from_uri("page"),lang(240,$oa),$J);$l->rollback();}}}$Gg=$c->tableName($R);if(is_ajax()){page_headers();ob_start();}else
page_header(lang(43).": $Gg",$m);$P=null;if(isset($Of["insert"])||!support("table")){$We=array();foreach((array)$_GET["where"]as$X){if(isset($Jc[$X["col"]])&&count($Jc[$X["col"]])==1&&($X["op"]=="="||(!$X["op"]&&(is_array($X["val"])||!preg_match('~[_%]~',$X["val"])))))$We["set"."[".bracket_escape($X["col"])."]"]=$X["val"];}$P=$We?"&".http_build_query($We):"";}$c->selectLinks($R,$P);if(!$e&&support("table"))echo"<p class='error'>".lang(241).($o?".":": ".error())."\n";else{echo"<form action='' id='form'>\n","<div style='display: none;'>";hidden_fields_get();echo(DB!=""?'<input type="hidden" name="db" value="'.h(DB).'">'.(isset($_GET["ns"])?'<input type="hidden" name="ns" value="'.h($_GET["ns"]).'">':""):"");echo'<input type="hidden" name="select" value="'.h($b).'">',"</div>\n";$c->selectColumnsPrint($N,$e);$c->selectSearchPrint($Z,$e,$x);$c->selectOrderPrint($Ie,$e,$x);$c->selectLimitPrint($_);$c->selectLengthPrint($Sg);$c->selectActionPrint($x);echo"</form>\n";$G=$_GET["page"];if($G=="last"){$Mc=$g->result(count_rows($b,$Z,$ud,$s));$G=floor(max(0,$Mc-1)/$_);}$Xf=$N;$Sc=$s;if(!$Xf){$Xf[]="*";$ob=convert_fields($e,$o,$N);if($ob)$Xf[]=substr($ob,2);}foreach($N
as$z=>$X){$n=$o[idf_unescape($X)];if($n&&($va=convert_field($n)))$Xf[$z]="$va AS $X";}if(!$ud&&$th){foreach($th
as$z=>$X){$Xf[]=idf_escape($z);if($Sc)$Sc[]=idf_escape($z);}}$J=$l->select($b,$Xf,$Z,$Sc,$Ie,$_,$G,true);if(!$J)echo"<p class='error'>".error()."\n";else{if($y=="mssql"&&$G)$J->seek($_*$G);$dc=array();echo"<form action='' method='post' enctype='multipart/form-data'>\n";$M=array();while($L=$J->fetch_assoc()){if($G&&$y=="oracle")unset($L["RNUM"]);$M[]=$L;}if($_GET["page"]!="last"&&$_!=""&&$s&&$ud&&$y=="sql")$Mc=$g->result(" SELECT FOUND_ROWS()");if(!$M)echo"<p class='message'>".lang(13)."\n";else{$Ca=$c->backwardKeys($b,$Gg);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>".(!$s&&$N?"":"<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(242)."</a>");$le=array();$Oc=array();reset($N);$Bf=1;foreach($M[0]as$z=>$X){if(!isset($th[$z])){$X=$_GET["columns"][key($N)];$n=$o[$N?($X?$X["col"]:current($N)):$z];$E=($n?$c->fieldName($n,$Bf):($X["fun"]?"*":h($z)));if($E!=""){$Bf++;$le[$z]=$E;$d=idf_escape($z);$fd=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($z);$Ib="&desc%5B0%5D=1";echo"<th id='th[".h(bracket_escape($z))."]'>".script("mixin(qsl('th'), {onmouseover: partial(columnMouse), onmouseout: partial(columnMouse, ' hidden')});",""),'<a href="'.h($fd.($Ie[0]==$d||$Ie[0]==$z||(!$Ie&&$ud&&$s[0]==$d)?$Ib:'')).'">';echo
apply_sql_function($X["fun"],$E)."</a>";echo"<span class='column hidden'>","<a href='".h($fd.$Ib)."' title='".lang(49)."' class='text'> ↓</a>";if(!$X["fun"]){echo'<a href="#fieldset-search" title="'.lang(46).'" class="text jsonly"> =</a>',script("qsl('a').onclick = partial(selectSearch, '".js_escape($z)."');");}echo"</span>";}$Oc[$z]=$X["fun"];next($N);}}$Md=array();if($_GET["modify"]){foreach($M
as$L){foreach($L
as$z=>$X)$Md[$z]=max($Md[$z],min(40,strlen(utf8_decode($X))));}}echo($Ca?"<th>".lang(243):"")."</thead>\n";if(is_ajax())ob_end_clean();foreach($c->rowDescriptions($M,$Jc)as$ke=>$L){$qh=unique_array($M[$ke],$x);if(!$qh){$qh=array();foreach($M[$ke]as$z=>$X){if(!preg_match('~^(COUNT\((\*|(DISTINCT )?`(?:[^`]|``)+`)\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\(`(?:[^`]|``)+`\))$~',$z))$qh[$z]=$X;}}$rh="";foreach($qh
as$z=>$X){if(($y=="sql"||$y=="pgsql")&&preg_match('~char|text|enum|set~',$o[$z]["type"])&&strlen($X)>64){$z=(strpos($z,'(')?$z:idf_escape($z));$z="MD5(".($y!='sql'||preg_match("~^utf8~",$o[$z]["collation"])?$z:"CONVERT($z USING ".charset($g).")").")";$X=md5($X);}$rh.="&".($X!==null?urlencode("where[".bracket_escape($z)."]")."=".urlencode($X===false?"f":$X):"null%5B%5D=".urlencode($z));}echo"<tr>".(!$s&&$N?"":"<td>".checkbox("check[]",substr($rh,1),in_array(substr($rh,1),(array)$_POST["check"])).($ud||information_schema(DB)?"":" <a href='".h(ME."edit=".urlencode($b).$rh)."' class='edit'>".lang(244)."</a>"));foreach($L
as$z=>$X){if(isset($le[$z])){$n=$o[$z];$X=$l->value($X,$n);if($X!=""&&(!isset($dc[$z])||$dc[$z]!=""))$dc[$z]=(is_mail($X)?$le[$z]:"");$A="";if(preg_match('~blob|bytea|raw|file~',$n["type"])&&$X!="")$A=ME.'download='.urlencode($b).'&field='.urlencode($z).$rh;if(!$A&&$X!==null){foreach((array)$Jc[$z]as$p){if(count($Jc[$z])==1||end($p["source"])==$z){$A="";foreach($p["source"]as$t=>$ng)$A.=where_link($t,$p["target"][$t],$M[$ke][$ng]);$A=($p["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\1'.urlencode($p["db"]),ME):ME).'select='.urlencode($p["table"]).$A;if($p["ns"])$A=preg_replace('~([?&]ns=)[^&]+~','\1'.urlencode($p["ns"]),$A);if(count($p["source"])==1)break;}}}if($z=="COUNT(*)"){$A=ME."select=".urlencode($b);$t=0;foreach((array)$_GET["where"]as$W){if(!array_key_exists($W["col"],$qh))$A.=where_link($t++,$W["col"],$W["val"],$W["op"]);}foreach($qh
as$yd=>$W)$A.=where_link($t++,$yd,$W);}$X=select_value($X,$A,$n,$Sg);$u=h("val[$rh][".bracket_escape($z)."]");$Y=$_POST["val"][$rh][bracket_escape($z)];$Yb=!is_array($L[$z])&&is_utf8($X)&&$M[$ke][$z]==$L[$z]&&!$Oc[$z];$Rg=preg_match('~text|lob~',$n["type"]);echo"<td id='$u'";if(($_GET["modify"]&&$Yb)||$Y!==null){$Wc=h($Y!==null?$Y:$L[$z]);echo">".($Rg?"<textarea name='$u' cols='30' rows='".(substr_count($L[$z],"\n")+1)."'>$Wc</textarea>":"<input name='$u' value='$Wc' size='$Md[$z]'>");}else{$Qd=strpos($X,"<i>…</i>");echo" data-text='".($Qd?2:($Rg?1:0))."'".($Yb?"":" data-warning='".h(lang(245))."'").">$X</td>";}}}if($Ca)echo"<td>";$c->backwardKeysPrint($Ca,$M[$ke]);echo"</tr>\n";}if(is_ajax())exit;echo"</table>\n","</div>\n";}if(!is_ajax()){if($M||$G){$pc=true;if($_GET["page"]!="last"){if($_==""||(count($M)<$_&&($M||!$G)))$Mc=($G?$G*$_:0)+count($M);elseif($y!="sql"||!$ud){$Mc=($ud?false:found_rows($R,$Z));if($Mc<max(1e4,2*($G+1)*$_))$Mc=reset(slow_query(count_rows($b,$Z,$ud,$s)));else$pc=false;}}$Ue=($_!=""&&($Mc===false||$Mc>$_||$G));if($Ue){echo(($Mc===false?count($M)+1:$Mc-$G*$_)>$_?'<p><a href="'.h(remove_from_uri("page")."&page=".($G+1)).'" class="loadmore">'.lang(246).'</a>'.script("qsl('a').onclick = partial(selectLoadMore, ".(+$_).", '".lang(247)."…');",""):''),"\n";}}echo"<div class='footer'><div>\n";if($M||$G){if($Ue){$Wd=($Mc===false?$G+(count($M)>=$_?2:1):floor(($Mc-1)/$_));echo"<fieldset>";if($y!="simpledb"){echo"<legend><a href='".h(remove_from_uri("page"))."'>".lang(248)."</a></legend>",script("qsl('a').onclick = function () { pageClick(this.href, +prompt('".lang(248)."', '".($G+1)."')); return false; };"),pagination(0,$G).($G>5?"":"");for($t=max(1,$G-4);$t<min($Wd,$G+5);$t++)echo
pagination($t,$G);if($Wd>0){echo($G+5<$Wd?"":""),($pc&&$Mc!==false?pagination($Wd,$G):" <a href='".h(remove_from_uri("page")."&page=last")."' title='~$Wd'>".lang(249)."</a>");}}else{echo"<legend>".lang(248)."</legend>",pagination(0,$G).($G>1?"":""),($G?pagination($G,$G):""),($Wd>$G?pagination($G+1,$G).($Wd>$G+1?"":""):"");}echo"</fieldset>\n";}echo"<fieldset>","<legend>".lang(250)."</legend>";$Ob=($pc?"":"~ ").$Mc;echo
checkbox("all",1,0,($Mc!==false?($pc?"":"~ ").lang(145,$Mc):""),"var checked = formChecked(this, /check/); selectCount('selected', this.checked ? '$Ob' : checked); selectCount('selected2', this.checked || !checked ? '$Ob' : checked);")."\n","</fieldset>\n";if($c->selectCommandPrint()){echo'<fieldset',($_GET["modify"]?'':' class="jsonly"'),'><legend>',lang(242),'</legend><div>
<input type="submit" value="',lang(15),'"',($_GET["modify"]?'':' title="'.lang(238).'"'),'>
</div></fieldset>
<fieldset><legend>',lang(120),' <span id="selected"></span></legend><div>
<input type="submit" name="edit" value="',lang(11),'">
<input type="submit" name="clone" value="',lang(234),'">
<input type="submit" name="delete" value="',lang(19),'">',confirm(),'</div></fieldset>
';}$Kc=$c->dumpFormat();foreach((array)$_GET["columns"]as$d){if($d["fun"]){unset($Kc['sql']);break;}}if($Kc){print_fieldset("export",lang(63)." <span id='selected2'></span>");$Se=$c->dumpOutput();echo($Se?html_select("output",$Se,$na["output"])." ":""),html_select("format",$Kc,$na["format"])," <input type='submit' name='export' value='".lang(63)."'>\n","</div></fieldset>\n";}$c->selectEmailPrint(array_filter($dc,'strlen'),$e);}echo"</div></div>\n";if($c->selectImportPrint()){echo"<div>","<a href='#import'>".lang(62)."</a>",script("qsl('a').onclick = partial(toggle, 'import');",""),"<span id='import' class='hidden'>: ","<input type='file' name='csv_file'> ",html_select("separator",array("csv"=>"CSV,","csv;"=>"CSV;","tsv"=>"TSV"),$na["format"],1);echo" <input type='submit' name='import' value='".lang(62)."'>","</span>","</div>";}echo"<input type='hidden' name='token' value='$T'>\n","</form>\n",(!$s&&$N?"":script("tableCheck();"));}}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["variables"])){$vg=isset($_GET["status"]);page_header($vg?lang(112):lang(111));$Eh=($vg?show_status():show_variables());if(!$Eh)echo"<p class='message'>".lang(13)."\n";else{echo"<table>\n";foreach($Eh
as$z=>$X){echo"<tr>","<th><code class='jush-".$y.($vg?"status":"set")."'>".h($z)."</code>","<td>".h($X);}echo"</table>\n";}}elseif(isset($_GET["script"])){header("Content-Type: text/javascript; charset=utf-8");if($_GET["script"]=="db"){$Dg=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$E=>$R){json_row("Comment-$E",h($R["Comment"]));if(!is_view($R)){foreach(array("Engine","Collation")as$z)json_row("$z-$E",h($R[$z]));foreach($Dg+array("Auto_increment"=>0,"Rows"=>0)as$z=>$X){if($R[$z]!=""){$X=format_number($R[$z]);json_row("$z-$E",($z=="Rows"&&$X&&$R["Engine"]==($y=="pgsql"?"table":"InnoDB")?"~ $X":$X));if(isset($Dg[$z]))$Dg[$z]+=($R["Engine"]!="InnoDB"||$z!="Data_free"?$R[$z]:0);}elseif(array_key_exists($z,$R))json_row("$z-$E");}}}foreach($Dg
as$z=>$X)json_row("sum-$z",format_number($X));json_row("");}elseif($_GET["script"]=="kill")$g->query("KILL ".number($_POST["kill"]));else{foreach(count_tables($c->databases())as$k=>$X){json_row("tables-$k",$X);json_row("size-$k",db_size($k));}json_row("");}exit;}else{$Lg=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($Lg&&!$m&&!$_POST["search"]){$J=true;$D="";if($y=="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"])$J=truncate_tables($_POST["tables"]);$D=lang(251);}elseif($_POST["move"]){$J=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$D=lang(252);}elseif($_POST["copy"]){$J=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$D=lang(253);}elseif($_POST["drop"]){if($_POST["views"])$J=drop_views($_POST["views"]);if($J&&$_POST["tables"])$J=drop_tables($_POST["tables"]);$D=lang(254);}elseif($y!="sql"){$J=($y=="sqlite"?queries("VACUUM"):apply_queries("VACUUM".($_POST["optimize"]?"":" ANALYZE"),$_POST["tables"]));$D=lang(255);}elseif(!$_POST["tables"])$D=lang(10);elseif($J=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('idf_escape',$_POST["tables"])))){while($L=$J->fetch_assoc())$D.="<b>".h($L["Table"])."</b>: ".h($L["Msg_text"])."<br>";}queries_redirect(substr(ME,0,-1),$D,$J);}page_header(($_GET["ns"]==""?lang(27).": ".h(DB):lang(191).": ".h($_GET["ns"])),$m,true);if($c->homepage()){if($_GET["ns"]!==""){echo"<h3 id='tables-views'>".lang(256)."</h3>\n";$Kg=tables_list();if(!$Kg)echo"<p class='message'>".lang(10)."\n";else{echo"<form action='' method='post'>\n";if(support("table")){echo"<fieldset><legend>".lang(257)." <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(46)."'>\n","</div></fieldset>\n";if($_POST["search"]&&$_POST["query"]!=""){$_GET["where"][0]["op"]=$l->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(124),'<td>'.lang(258).doc_link(array('sql'=>'storage-engines.html')),'<td>'.lang(116).doc_link(array('sql'=>'charset-charsets.html','mariadb'=>'supported-character-sets-and-collations/')),'<td>'.lang(259).doc_link(array('sql'=>'show-table-status.html',)),'<td>'.lang(260).doc_link(array('sql'=>'show-table-status.html',)),'<td>'.lang(261).doc_link(array('sql'=>'show-table-status.html')),'<td>'.lang(41).doc_link(array('sql'=>'example-auto-increment.html','mariadb'=>'auto_increment/')),'<td>'.lang(262).doc_link(array('sql'=>'show-table-status.html',)),(support("comment")?'<td>'.lang(40).doc_link(array('sql'=>'show-table-status.html',)):''),"</thead>\n";$S=0;foreach($Kg
as$E=>$U){$Hh=($U!==null&&!preg_match('~table|sequence~i',$U));$u=h("Table-".$E);echo'<tr><td>'.checkbox(($Hh?"views[]":"tables[]"),$E,in_array($E,$Lg,true),"","","",$u),'<th>'.(support("table")||support("indexes")?"<a href='".h(ME)."table=".urlencode($E)."' title='".lang(32)."' id='$u'>".h($E).'</a>':h($E));if($Hh){echo'<td colspan="6"><a href="'.h(ME)."view=".urlencode($E).'" title="'.lang(33).'">'.(preg_match('~materialized~i',$U)?lang(122):lang(123)).'</a>','<td align="right"><a href="'.h(ME)."select=".urlencode($E).'" title="'.lang(31).'">?</a>';}else{foreach(array("Engine"=>array(),"Collation"=>array(),"Data_length"=>array("create",lang(34)),"Index_length"=>array("indexes",lang(126)),"Data_free"=>array("edit",lang(35)),"Auto_increment"=>array("auto_increment=1&create",lang(34)),"Rows"=>array("select",lang(31)),)as$z=>$A){$u=" id='$z-".h($E)."'";echo($A?"<td align='right'>".(support("table")||$z=="Rows"||(support("indexes")&&$z!="Data_length")?"<a href='".h(ME."$A[0]=").urlencode($E)."'$u title='$A[1]'>?</a>":"<span$u>?</span>"):"<td id='$z-".h($E)."'>");}$S++;}echo(support("comment")?"<td id='Comment-".h($E)."'>":""),"\n";}echo"<tr><td><th>".lang(235,count($Kg)),"<td>".h($y=="sql"?$g->result("SELECT @@default_storage_engine"):""),"<td>".h(db_collation(DB,collations()));foreach(array("Data_length","Index_length","Data_free")as$z)echo"<td align='right' id='sum-$z'>";echo"\n","</table>\n","</div>\n";if(!information_schema(DB)){echo"<div class='footer'><div>\n";$Ch="<input type='submit' value='".lang(263)."'> ".on_help("'VACUUM'");$Fe="<input type='submit' name='optimize' value='".lang(264)."'> ".on_help($y=="sql"?"'OPTIMIZE TABLE'":"'VACUUM OPTIMIZE'");echo"<fieldset><legend>".lang(120)." <span id='selected'></span></legend><div>".($y=="sqlite"?$Ch:($y=="pgsql"?$Ch.$Fe:($y=="sql"?"<input type='submit' value='".lang(265)."'> ".on_help("'ANALYZE TABLE'").$Fe."<input type='submit' name='check' value='".lang(266)."'> ".on_help("'CHECK TABLE'")."<input type='submit' name='repair' value='".lang(267)."'> ".on_help("'REPAIR TABLE'"):"")))."<input type='submit' name='truncate' value='".lang(268)."'> ".on_help($y=="sqlite"?"'DELETE'":"'TRUNCATE".($y=="pgsql"?"'":" TABLE'")).confirm()."<input type='submit' name='drop' value='".lang(121)."'>".on_help("'DROP TABLE'").confirm()."\n";$j=(support("scheme")?$c->schemas():$c->databases());if(count($j)!=1&&$y!="sqlite"){$k=(isset($_POST["target"])?$_POST["target"]:(support("scheme")?$_GET["ns"]:DB));echo"<p>".lang(269).": ",($j?html_select("target",$j,$k):'<input name="target" value="'.h($k).'" autocapitalize="off">')," <input type='submit' name='move' value='".lang(270)."'>",(support("copy")?" <input type='submit' name='copy' value='".lang(271)."'> ".checkbox("overwrite",1,$_POST["overwrite"],lang(272)):""),"\n";}echo"<input type='hidden' name='all' value=''>";echo
script("qsl('input').onclick = function () { selectCount('selected', formChecked(this, /^(tables|views)\[/));".(support("table")?" selectCount('selected2', formChecked(this, /^tables\[/) || $S);":"")." }"),"<input type='hidden' name='token' value='$T'>\n","</div></fieldset>\n","</div></div>\n";}echo"</form>\n",script("tableCheck();");}echo'<p class="links"><a href="'.h(ME).'create=">'.lang(64)."</a>\n",(support("view")?'<a href="'.h(ME).'view=">'.lang(197)."</a>\n":"");if(support("routine")){echo"<h3 id='routines'>".lang(138)."</h3>\n";$Sf=routines();if($Sf){echo"<table class='odds'>\n",'<thead><tr><th>'.lang(178).'<td>'.lang(39).'<td>'.lang(214)."<td></thead>\n";foreach($Sf
as$L){$E=($L["SPECIFIC_NAME"]==$L["ROUTINE_NAME"]?"":"&name=".urlencode($L["ROUTINE_NAME"]));echo'<tr>','<th><a href="'.h(ME.($L["ROUTINE_TYPE"]!="PROCEDURE"?'callf=':'call=').urlencode($L["SPECIFIC_NAME"]).$E).'">'.h($L["ROUTINE_NAME"]).'</a>','<td>'.h($L["ROUTINE_TYPE"]),'<td>'.h($L["DTD_IDENTIFIER"]),'<td><a href="'.h(ME.($L["ROUTINE_TYPE"]!="PROCEDURE"?'function=':'procedure=').urlencode($L["SPECIFIC_NAME"]).$E).'">'.lang(129)."</a>";}echo"</table>\n";}echo'<p class="links">'.(support("procedure")?'<a href="'.h(ME).'procedure=">'.lang(213).'</a>':'').'<a href="'.h(ME).'function=">'.lang(212)."</a>\n";}if(support("event")){echo"<h3 id='events'>".lang(139)."</h3>\n";$M=get_rows("SHOW EVENTS");if($M){echo"<table>\n","<thead><tr><th>".lang(178)."<td>".lang(273)."<td>".lang(203)."<td>".lang(204)."<td></thead>\n";foreach($M
as$L){echo"<tr>","<th>".h($L["Name"]),"<td>".($L["Execute at"]?lang(274)."<td>".$L["Execute at"]:lang(205)." ".$L["Interval value"]." ".$L["Interval field"]."<td>$L[Starts]"),"<td>$L[Ends]",'<td><a href="'.h(ME).'event='.urlencode($L["Name"]).'">'.lang(129).'</a>';}echo"</table>\n";$nc=$g->result("SELECT @@event_scheduler");if($nc&&$nc!="ON")echo"<p class='error'><code class='jush-sqlset'>event_scheduler</code>: ".h($nc)."\n";}echo'<p class="links"><a href="'.h(ME).'event=">'.lang(202)."</a>\n";}if($Kg)echo
script("ajaxSetHtml('".js_escape(ME)."script=db');");}}}page_footer();