credentials();$K=Driver::connect($xb[0],$xb[1],$xb[2]);return(is_object($K)?$K:null);}function idf_unescape($u){if(!preg_match('~^[`\'"[]~',$u))return$u;$pe=substr($u,-1);return str_replace($pe.$pe,$pe,substr($u,1,-1));}function q($yh){return connection()->quote($yh);}function escape_string($X){return substr(q($X),1,-1);}function idx($ua,$y,$Jb=null){return($ua&&array_key_exists($y,$ua)?$ua[$y]:$Jb);}function number($X){return preg_replace('~[^0-9]+~','',$X);}function number_type(){return'((?$X)$K[stripslashes($y)]=(is_array($X)?remove_slashes($X,$Mc):($Mc?$X:stripslashes($X)));return$K;}function bracket_escape($u,$_a=false){static$ji=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return strtr($u,($_a?array_flip($ji):$ji));}function min_version($Ri,$Be="",$g=null){$g=connection($g);$fh=$g->server_info;if($Be&&preg_match('~([\d.]+)-MariaDB~',$fh,$B)){$fh=$B[1];$Ri=$Be;}return$Ri&&version_compare($fh,$Ri)>=0;}function charset(Db$f){return(min_version("5.5.3",0,$f)?"utf8mb4":"utf8");}function ini_bool($Sd){$X=ini_get($Sd);return(preg_match('~^(on|true|yes)$~i',$X)||(int)$X);}function ini_bytes($Sd){$X=ini_get($Sd);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 sid(){static$K;if($K===null)$K=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$K;}function set_password($Qi,$O,$V,$G){$_SESSION["pwds"][$Qi][$O][$V]=($_COOKIE["adminer_key"]&&is_string($G)?array(encrypt_string($G,$_COOKIE["adminer_key"])):$G);}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 get_val($I,$l=0,$nb=null){$nb=connection($nb);$J=$nb->query($I);if(!is_object($J))return false;$L=$J->fetch_row();return($L?$L[$l]:false);}function get_vals($I,$c=0){$K=array();$J=connection()->query($I);if(is_object($J)){while($L=$J->fetch_row())$K[]=$L[$c];}return$K;}function get_key_vals($I,$g=null,$ih=true){$g=connection($g);$K=array();$J=$g->query($I);if(is_object($J)){while($L=$J->fetch_row()){if($ih)$K[$L[0]]=$L[1];else$K[]=$L[0];}}return$K;}function get_rows($I,$g=null,$k="

"){$nb=connection($g);$K=array();$J=$nb->query($I);if(is_object($J)){while($L=$J->fetch_assoc())$K[]=$L;}elseif(!$J&&!$g&&$k&&(defined('Adminer\PAGE_HEADER')||$k=="-- "))echo$k.error()."\n";return$K;}function unique_array($L,array$w){foreach($w as$v){if(preg_match("~PRIMARY|UNIQUE~",$v["type"])&&!$v["partial"]){$K=array();foreach($v["columns"]as$y){if(!isset($L[$y]))continue 2;$K[$y]=$L[$y];}return$K;}}}function escape_key($y){if(preg_match('(^([\w(]+)('.str_replace("_",".*",preg_quote(idf_escape("_"))).')([ \w)]+)$)',$y,$B))return$B[1].idf_escape(idf_unescape($B[2])).$B[3];return idf_escape($y);}function where(array$Z,array$m=array()){$K=array();foreach((array)$Z["where"]as$y=>$X){$y=bracket_escape($y,true);$c=escape_key($y);$l=idx($m,$y,array());$Jc=$l["type"];$K[]=$c.(JUSH=="sql"&&$Jc=="json"?" = CAST(".q($X)." AS JSON)":(JUSH=="pgsql"&&preg_match('~^json~',$Jc)?"::jsonb = ".q($X)."::jsonb":(JUSH=="sql"&&is_numeric($X)&&preg_match('~\.~',$X)?" LIKE ".q($X):(JUSH=="mssql"&&strpos($Jc,"datetime")===false?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$X)):" = ".unconvert_field($l,q($X))))));if(JUSH=="sql"&&preg_match('~char|text~',$Jc)&&preg_match("~[^ -@]~",$X))$K[]="$c = ".q($X)." COLLATE ".charset(connection())."_bin";}foreach((array)$Z["null"]as$y)$K[]=escape_key($y)." IS NULL";return implode(" AND ",$K);}function where_check($X,array$m=array()){parse_str($X,$Qa);remove_slashes(array(&$Qa));return where($Qa,$m);}function where_link($s,$c,$Y,$sf="="){return"&where%5B$s%5D%5Bcol%5D=".urlencode($c)."&where%5B$s%5D%5Bop%5D=".urlencode(($Y!==null?$sf:"IS NULL"))."&where%5B$s%5D%5Bval%5D=".urlencode($Y);}function convert_fields(array$d,array$m,array$N=array()){$K="";foreach($d as$y=>$X){if($N&&!in_array(idf_escape($y),$N))continue;$va=convert_field($m[$y]);if($va)$K .=", $va AS ".idf_escape($y);}return$K;}function cookie($D,$Y,$xe=2592000){header("Set-Cookie: $D=".rawurlencode($Y).($xe?"; expires=".gmdate("D, d M Y H:i:s",time()+$xe)." GMT":"")."; path=".preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]).(HTTPS?"; secure":"")."; HttpOnly; SameSite=lax",false);}function get_settings($ub){parse_str($_COOKIE[$ub],$jh);return$jh;}function get_setting($y,$ub="adminer_settings",$Jb=null){return idx(get_settings($ub),$y,$Jb);}function save_settings(array$jh,$ub="adminer_settings"){$Y=http_build_query($jh+get_settings($ub));cookie($ub,$Y);$_COOKIE[$ub]=$Y;}function restart_session(){if(!ini_bool("session.use_cookies")&&(!function_exists('session_status')||session_status()==1))session_start();}function stop_session($Uc=false){$Hi=ini_bool("session.use_cookies");if(!$Hi||$Uc){session_write_close();if($Hi&&@ini_set("session.use_cookies",'0')===false)session_start();}}function&get_session($y){return$_SESSION[$y][DRIVER][SERVER][$_GET["username"]];}function set_session($y,$X){$_SESSION[$y][DRIVER][SERVER][$_GET["username"]]=$X;}function auth_url($Qi,$O,$V,$j=null){$Di=remove_from_uri(implode("|",array_keys(SqlDriver::$drivers))."|username|ext|".($j!==null?"db|":"").($Qi=='mssql'||$Qi=='pgsql'?"":"ns|").session_name());preg_match('~([^?]*)\??(.*)~',$Di,$B);return"$B[1]?".(sid()?SID."&":"").($Qi!="server"||$O!=""?urlencode($Qi)."=".urlencode($O)."&":"").($_GET["ext"]?"ext=".urlencode($_GET["ext"])."&":"")."username=".urlencode($V).($j!=""?"&db=".urlencode($j):"").($B[2]?"&$B[2]":"");}function is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function redirect($A,$C=null){if($C!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($A!==null?$A:$_SERVER["REQUEST_URI"]))][]=$C;}if($A!==null){if($A=="")$A=".";header("Location: $A");exit;}}function query_redirect($I,$A,$C,$yg=true,$xc=true,$Ec=false,$Wh=""){if($xc){$wh=microtime(true);$Ec=!connection()->query($I);$Wh=format_time($wh);}$sh=($I?adminer()->messageQuery($I,$Wh,$Ec):"");if($Ec){adminer()->error .=error().$sh.script("messagesPrint();")."
";return false;}if($yg)redirect($A,$C.$sh);return true;}class Queries{static$queries=array();static$start=0;}function queries($I){if(!Queries::$start)Queries::$start=microtime(true);Queries::$queries[]=(driver()->delimiter!=';'?$I:(preg_match('~;$~',$I)?"DELIMITER ;;\n$I;\nDELIMITER ":$I).";");return connection()->query($I);}function apply_queries($I,array$T,$uc='Adminer\table'){foreach($T as$R){if(!queries("$I ".$uc($R)))return false;}return true;}function queries_redirect($A,$C,$yg){$tg=implode("\n",Queries::$queries);$Wh=format_time(Queries::$start);return query_redirect($tg,$A,$C,$yg,false,!$yg,$Wh);}function format_time($wh){return lang(0,max(0,microtime(true)-$wh));}function relative_uri(){return str_replace(":","%3a",preg_replace('~^[^?]*/([^?]*)~','\1',$_SERVER["REQUEST_URI"]));}function remove_from_uri($Lf=""){return substr(preg_replace("~(?<=[?&])($Lf".(SID?"":"|".session_name()).")=[^&]*&~",'',relative_uri()."&"),0,-1);}function get_file($y,$Ib=false,$Ob=""){$Lc=$_FILES[$y];if(!$Lc)return null;foreach($Lc as$y=>$X)$Lc[$y]=(array)$X;$K='';foreach($Lc["error"]as$y=>$k){if($k)return$k;$D=$Lc["name"][$y];$ei=$Lc["tmp_name"][$y];$rb=file_get_contents($Ib&&preg_match('~\.gz$~',$D)?"compress.zlib://$ei":$ei);if($Ib){$wh=substr($rb,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$wh))$rb=iconv("utf-16","utf-8",$rb);elseif($wh=="\xEF\xBB\xBF")$rb=substr($rb,3);}$K .=$rb;if($Ob)$K .=(preg_match("($Ob\\s*\$)",$rb)?"":$Ob)."\n\n";}return$K;}function upload_error($k){$Ke=($k==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($k?lang(1).($Ke?" ".lang(2,$Ke):""):lang(3));}function repeat_pattern($Yf,$ve){return str_repeat("$Yf{0,65535}",$ve/65535)."$Yf{0,".($ve%65535)."}";}function is_utf8($X){return(preg_match('~~u',$X)&&!preg_match('~[\0-\x8\xB\xC\xE-\x1F]~',$X));}function format_number($X){return strtr(number_format($X,0,".",lang(4)),preg_split('~~u',lang(5),-1,PREG_SPLIT_NO_EMPTY));}function friendly_url($X){return preg_replace('~\W~i','-',$X);}function table_status1($R,$Fc=false){$K=table_status($R,$Fc);return($K?reset($K):array("Name"=>$R));}function column_foreign_keys($R){$K=array();foreach(adminer()->foreignKeys($R)as$o){foreach($o["source"]as$X)$K[$X][]=$o;}return$K;}function fields_from_edit(){$K=array();foreach((array)$_POST["field_keys"]as$y=>$X){if($X!=""){$X=bracket_escape($X);$_POST["function"][$X]=$_POST["field_funs"][$y];$_POST["fields"][$X]=$_POST["field_vals"][$y];}}foreach((array)$_POST["fields"]as$y=>$X){$D=bracket_escape($y,true);$K[$D]=array("field"=>$D,"privileges"=>array("insert"=>1,"update"=>1,"where"=>1,"order"=>1),"null"=>1,"auto_increment"=>($y==driver()->primary),);}return$K;}function dump_headers($_d,$Ze=false){$K=adminer()->dumpHeaders($_d,$Ze);$If=$_POST["output"];if($If!="text")header("Content-Disposition: attachment; filename=".adminer()->dumpFilename($_d).".$K".($If!="file"&&preg_match('~^[0-9a-z]+$~',$If)?".$If":""));session_write_close();if(!ob_get_level())ob_start(null,4096);ob_flush();flush();return$K;}function dump_csv(array$L){$ri=$_POST["format"]=="tsv";foreach($L as$y=>$X){if(preg_match('~["\n]|^0[^.]|\.\d*0$|'.($ri?'\t':'[,;]|^$').'~',$X))$L[$y]='"'.str_replace('"','""',$X).'"';}echo implode(($_POST["format"]=="csv"?",":($ri?"\t":";")),$L)."\r\n";}function apply_sql_function($q,$c){return($q?($q=="unixepoch"?"DATETIME($c, '$q')":($q=="count distinct"?"COUNT(DISTINCT ":strtoupper("$q("))."$c)"):$c);}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{$n=@tempnam("","");if(!$n)return'';$K=dirname($n);unlink($n);}}return$K;}function file_open_lock($n){if(is_link($n))return;$p=@fopen($n,"c+");if(!$p)return;@chmod($n,0660);if(!flock($p,LOCK_EX)){fclose($p);return;}return$p;}function file_write_unlock($p,$Cb){rewind($p);fwrite($p,$Cb);ftruncate($p,strlen($Cb));file_unlock($p);}function file_unlock($p){flock($p,LOCK_UN);fclose($p);}function first(array$ua){return reset($ua);}function password_file($h){$n=get_temp_dir()."/adminer.key";if(!$h&&!file_exists($n))return'';$p=file_open_lock($n);if(!$p)return'';$K=stream_get_contents($p);if(!$K){$K=rand_string();file_write_unlock($p,$K);}else file_unlock($p);return$K;}function rand_string(){return md5(uniqid(strval(mt_rand()),true));}function select_value($X,$_,array$l,$Vh){if(is_array($X)){$K="";if(array_filter($X,'is_array')==array_values($X)){$ie=array();foreach($X as$W)$ie+=array_fill_keys(array_keys($W),null);foreach(array_keys($ie)as$he)$K .="".h($he);foreach($X as$W){$K .="";foreach(array_merge($ie,$W)as$Li)$K .="".select_value($Li,$_,$l,$Vh);}}else{foreach($X as$he=>$W)$K .="".($X!=array_values($X)?"".h($he):"")."".select_value($W,$_,$l,$Vh);}return"$K
";}if(!$_)$_=adminer()->selectLink($X,$l);if($_===null){if(is_mail($X))$_="mailto:$X";if(is_url($X))$_=$X;}$K=adminer()->editVal(driver()->value($X,$l),$l);if($K!==null){if(!is_utf8($K))$K="\0";elseif($Vh!=""&&is_shortable($l))$K=shorten_utf8($K,max(0,+$Vh));else$K=h($K);}return adminer()->selectVal($K,$_,$l,$X);}function is_blob(array$l){return preg_match('~blob|bytea|raw|file~',$l["type"])&&!in_array($l["type"],idx(driver()->structuredTypes(),lang(6),array()));}function is_mail($hc){$wa='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$Wb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$Yf="$wa+(\\.$wa+)*@($Wb?\\.)+$Wb";return is_string($hc)&&preg_match("(^$Yf(,\\s*$Yf)*\$)i",$hc);}function is_url($yh){$Wb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return preg_match("~^((https?):)?//($Wb?\\.)+$Wb(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$yh);}function is_shortable(array$l){return!preg_match('~'.number_type().'|date|time|year~',$l["type"]);}function host_port($O){return(preg_match('~^(\[(.+)]|([^:]+)):([^:]+)$~',$O,$B)?array($B[2].$B[3],$B[4]):array($O,''));}function count_rows($R,array$Z,$be,array$r){$I=" FROM ".table($R).($Z?" WHERE ".implode(" AND ",$Z):"");return($be&&(JUSH=="sql"||count($r)==1)?"SELECT COUNT(DISTINCT ".implode(", ",$r).")$I":"SELECT COUNT(*)".($be?" FROM (SELECT 1$I GROUP BY ".implode(", ",$r).") x":$I));}function slow_query($I){$j=adminer()->database();$Xh=adminer()->queryTimeout();$nh=driver()->slowQuery($I,$Xh);$g=null;if(!$nh&&support("kill")){$g=connect();if($g&&($j==""||$g->select_db($j))){$je=get_val(connection_id(),0,$g);echo script("const timeout = setTimeout(() => { ajax('".js_escape(ME)."script=kill', function () {}, 'kill=$je&token=".get_token()."'); }, 1000 * $Xh);");}}ob_flush();flush();$K=@get_key_vals(($nh?:$I),$g,false);if($g){echo script("clearTimeout(timeout);");ob_flush();flush();}return$K;}function get_token(){$wg=rand(1,1e6);return($wg^$_SESSION["token"]).":$wg";}function verify_token(){list($fi,$wg)=explode(":",$_POST["token"]);return($wg^$_SESSION["token"])==$fi;}function lzw_decompress($Fa){$Tb=256;$Ga=8;$ab=array();$Hg=0;$Ig=0;for($s=0;$s=$Ga){$Ig-=$Ga;$ab[]=$Hg>>$Ig;$Hg&=(1<<$Ig)-1;$Tb++;if($Tb>>$Ga)$Ga++;}}$Sb=range("\0","\xFF");$K="";$aj="";foreach($ab as$s=>$Za){$gc=$Sb[$Za];if(!isset($gc))$gc=$aj.$aj[0];$K .=$gc;if($s)$Sb[]=$aj.$gc[0];$aj=$gc;}return$K;}function script($ph,$ii="\n"){return"$ph$ii";}function script_src($Ei,$Mb=false){return"\n";}function nonce(){return' nonce="'.get_nonce().'"';}function input_hidden($D,$Y=""){return"\n";}function input_token(){return input_hidden("token",get_token());}function target_blank(){return' target="_blank" rel="noreferrer noopener"';}function h($yh){return str_replace("\0","�",htmlspecialchars($yh,ENT_QUOTES,'utf-8'));}function nl_br($yh){return str_replace("\n","
",$yh);}function checkbox($D,$Y,$Ta,$le="",$rf="",$Xa="",$ne=""){$K="".($rf?script("qsl('input').onclick = function () { $rf };",""):"");return($le!=""||$Xa?"$K".h($le)."":$K);}function optionlist($vf,$Xg=null,$Ii=false){$K="";foreach($vf as$he=>$W){$wf=array($he=>$W);if(is_array($W)){$K .='';$wf=$W;}foreach($wf as$y=>$X)$K .=''.h($X);if(is_array($W))$K .='';}return$K;}function html_select($D,array$vf,$Y="",$qf="",$ne=""){static$le=0;$me="";if(!$ne&&substr($vf[""],0,1)=="("){$le++;$ne="label-$le";$me="

","$ue",script("qsl('a').onclick = partial(toggle, 'fieldset-$t');",""),"","
\n";}function selectSearchPrint(array$Z,array$d,array$w){print_fieldset("search",lang(54),$Z);foreach($w as$s=>$v){if($v["type"]=="FULLTEXT")echo"
(".implode(", ",array_map('Adminer\h',$v["columns"])).") AGAINST"," ",script("qsl('input').oninput = selectFieldChange;",""),(JUSH=='sql'?checkbox("boolean[$s]",1,isset($_GET["boolean"][$s]),"BOOL"):''),"
\n";}$Pa="this.parentNode.firstChild.onchange();";foreach(array_merge((array)$_GET["where"],array(array()))as$s=>$X){if(!$X||("$X[col]$X[val]"!=""&&in_array($X["op"],adminer()->operators())))echo"
".select_input(" name='where[$s][col]'",$d,$X["col"],($X?"selectFieldChange":"selectAddRow"),"(".lang(55).")"),html_select("where[$s][op]",adminer()->operators(),$X["op"],$Pa),"",script("mixin(qsl('input'), {oninput: function () { $Pa }, onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});",""),"
\n";}echo"\n";}function selectOrderPrint(array$xf,array$d,array$w){print_fieldset("sort",lang(56),$xf);$s=0;foreach((array)$_GET["order"]as$y=>$X){if($X!=""){echo"
".select_input(" name='order[$s]'",$d,$X,"selectFieldChange"),checkbox("desc[$s]",1,isset($_GET["desc"][$y]),lang(57))."
\n";$s++;}}echo"
".select_input(" name='order[$s]'",$d,"","selectAddRow"),checkbox("desc[$s]",1,false,lang(57))."
\n","\n";}function selectLimitPrint($z){echo"
".lang(58)."
","",script("qsl('input').oninput = selectFieldChange;",""),"
\n";}function selectLengthPrint($Vh){if($Vh!==null)echo"
".lang(59)."
","","
\n";}function selectActionPrint(array$w){echo"
".lang(60)."
",""," ","\n","const indexColumns = ";$d=array();foreach($w as$v){$Ab=reset($v["columns"]);if($v["type"]!="FULLTEXT"&&$Ab)$d[$Ab]=1;}$d[""]=1;foreach($d as$y=>$X)json_row($y);echo";\n","selectFieldChange.call(qs('#form')['select']);\n","\n","
\n";}function selectCommandPrint(){return!information_schema(DB);}function selectImportPrint(){return!information_schema(DB);}function selectEmailPrint(array$ic,array$d){}function selectColumnsProcess(array$d,array$w){$N=array();$r=array();foreach((array)$_GET["columns"]as$y=>$X){if($X["fun"]=="count"||($X["col"]!=""&&(!$X["fun"]||in_array($X["fun"],driver()->functions)||in_array($X["fun"],driver()->grouping)))){$N[$y]=apply_sql_function($X["fun"],($X["col"]!=""?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],driver()->grouping))$r[]=$N[$y];}}return array($N,$r);}function selectSearchProcess(array$m,array$w){$K=array();foreach($w as$s=>$v){if($v["type"]=="FULLTEXT"&&idx($_GET["fulltext"],$s)!="")$K[]="MATCH (".implode(", ",array_map('Adminer\idf_escape',$v["columns"])).") AGAINST (".q($_GET["fulltext"][$s]).(isset($_GET["boolean"][$s])?" IN BOOLEAN MODE":"").")";}foreach((array)$_GET["where"]as$y=>$X){$bb=$X["col"];if("$bb$X[val]"!=""&&in_array($X["op"],adminer()->operators())){$mb=array();foreach(($bb!=""?array($bb=>$m[$bb]):$m)as$D=>$l){$kg="";$lb=" $X[op]";if(preg_match('~IN$~',$X["op"])){$Ed=process_length($X["val"]);$lb .=" ".($Ed!=""?$Ed:"(NULL)");}elseif($X["op"]=="SQL")$lb=" $X[val]";elseif(preg_match('~^(I?LIKE) %%$~',$X["op"],$B))$lb=" $B[1] ".adminer()->processInput($l,"%$X[val]%");elseif($X["op"]=="FIND_IN_SET"){$kg="$X[op](".q($X["val"]).", ";$lb=")";}elseif(!preg_match('~NULL$~',$X["op"]))$lb .=" ".adminer()->processInput($l,$X["val"]);if($bb!=""||(isset($l["privileges"]["where"])&&(preg_match('~^[-\d.'.(preg_match('~IN$~',$X["op"])?',':'').']+$~',$X["val"])||!preg_match('~'.number_type().'|bit~',$l["type"]))&&(!preg_match("~[\x80-\xFF]~",$X["val"])||preg_match('~char|text|enum|set~',$l["type"]))&&(!preg_match('~date|timestamp~',$l["type"])||preg_match('~^\d+-\d+-\d+~',$X["val"]))))$mb[]=$kg.driver()->convertSearch(idf_escape($D),$X,$l).$lb;}$K[]=(count($mb)==1?$mb[0]:($mb?"(".implode(" OR ",$mb).")":"1 = 0"));}}return$K;}function selectOrderProcess(array$m,array$w){$K=array();foreach((array)$_GET["order"]as$y=>$X){if($X!="")$K[]=(preg_match('~^((COUNT\(DISTINCT |[A-Z0-9_]+\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\)|COUNT\(\*\))$~',$X)?$X:idf_escape($X)).(isset($_GET["desc"][$y])?" DESC":"");}return$K;}function selectLimitProcess(){return(isset($_GET["limit"])?intval($_GET["limit"]):50);}function selectLengthProcess(){return(isset($_GET["text_length"])?"$_GET[text_length]":"100");}function selectEmailProcess(array$Z,array$Wc){return false;}function selectQueryBuild(array$N,array$Z,array$r,array$xf,$z,$F){return"";}function messageQuery($I,$Wh,$Ec=false){restart_session();$td=&get_session("queries");if(!idx($td,$_GET["db"]))$td[$_GET["db"]]=array();if(strlen($I)>1e6)$I=preg_replace('~[\x80-\xFF]+$~','',substr($I,0,1e6))."\n…";$td[$_GET["db"]][]=array($I,time(),$Wh);$uh="sql-".count($td[$_GET["db"]]);$K="".lang(62)." 🗐\n";if(!$Ec&&($Wi=driver()->warnings())){$t="warnings-".count($td[$_GET["db"]]);$K="".lang(44).", $K\n";}return" ".@date("H:i:s").""." $K';}function editRowPrint($R,array$m,$L,$Ai){}function editFunctions(array$l){$K=($l["null"]?"NULL/":"");$Ai=isset($_GET["select"])||where($_GET);foreach(array(driver()->insertFunctions,driver()->editFunctions)as$y=>$dd){if(!$y||(!isset($_GET["call"])&&$Ai)){foreach($dd as$Yf=>$X){if(!$Yf||preg_match("~$Yf~",$l["type"]))$K .="/$X";}}if($y&&$dd&&!preg_match('~set|bool~',$l["type"])&&!is_blob($l))$K .="/SQL";}if($l["auto_increment"]&&!$Ai)$K=lang(49);return explode("/",$K);}function editInput($R,array$l,$b,$Y){if($l["type"]=="enum")return(isset($_GET["select"])?" ":"").enum_input("radio",$b,$l,$Y,"NULL");return"";}function editHint($R,array$l,$Y){return"";}function processInput(array$l,$Y,$q=""){if($q=="SQL")return$Y;$D=$l["field"];$K=q($Y);if(preg_match('~^(now|getdate|uuid)$~',$q))$K="$q()";elseif(preg_match('~^current_(date|timestamp)$~',$q))$K=$q;elseif(preg_match('~^([+-]|\|\|)$~',$q))$K=idf_escape($D)." $q $K";elseif(preg_match('~^[+-] interval$~',$q))$K=idf_escape($D)." $q ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+\$~i",$Y)&&JUSH!="pgsql"?$Y:$K);elseif(preg_match('~^(addtime|subtime|concat)$~',$q))$K="$q(".idf_escape($D).", $K)";elseif(preg_match('~^(md5|sha1|password|encrypt)$~',$q))$K="$q($K)";return unconvert_field($l,$K);}function dumpOutput(){$K=array('text'=>lang(63),'file'=>lang(64));if(function_exists('gzencode'))$K['gz']='gzip';return$K;}function dumpFormat(){return(support("dump")?array('sql'=>'SQL'):array())+array('csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function dumpDatabase($j){}function dumpTable($R,$_h,$ee=0){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($_h)dump_csv(array_keys(fields($R)));}else{if($ee==2){$m=array();foreach(fields($R)as$D=>$l)$m[]=idf_escape($D)." $l[full_type]";$h="CREATE TABLE ".table($R)." (".implode(", ",$m).")";}else$h=create_sql($R,$_POST["auto_increment"],$_h);set_utf8mb4($h);if($_h&&$h){if($_h=="DROP+CREATE"||$ee==1)echo"DROP ".($ee==2?"VIEW":"TABLE")." IF EXISTS ".table($R).";\n";if($ee==1)$h=remove_definer($h);echo"$h;\n\n";}}}function dumpData($R,$_h,$I){if($_h){$He=(JUSH=="sqlite"?0:1048576);$m=array();$Ad=false;if($_POST["format"]=="sql"){if($_h=="TRUNCATE+INSERT")echo truncate_sql($R).";\n";$m=fields($R);if(JUSH=="mssql"){foreach($m as$l){if($l["auto_increment"]){echo"SET IDENTITY_INSERT ".table($R)." ON;\n";$Ad=true;break;}}}}$J=connection()->query($I,1);if($J){$Vd="";$Ka="";$ie=array();$ed=array();$Bh="";$Hc=($R!=''?'fetch_assoc':'fetch_row');$vb=0;while($L=$J->$Hc()){if(!$ie){$Oi=array();foreach($L as$X){$l=$J->fetch_field();if(idx($m[$l->name],'generated')){$ed[$l->name]=true;continue;}$ie[]=$l->name;$y=idf_escape($l->name);$Oi[]="$y = VALUES($y)";}$Bh=($_h=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$Oi):"").";\n";}if($_POST["format"]!="sql"){if($_h=="table"){dump_csv($ie);$_h="INSERT";}dump_csv($L);}else{if(!$Vd)$Vd="INSERT INTO ".table($R)." (".implode(", ",array_map('Adminer\idf_escape',$ie)).") VALUES";foreach($L as$y=>$X){if($ed[$y]){unset($L[$y]);continue;}$l=$m[$y];$L[$y]=($X!==null?unconvert_field($l,preg_match(number_type(),$l["type"])&&!preg_match('~\[~',$l["full_type"])&&is_numeric($X)?$X:q(($X===false?0:$X))):"NULL");}$Pg=($He?"\n":" ")."(".implode(",\t",$L).")";if(!$Ka)$Ka=$Vd.$Pg;elseif(JUSH=='mssql'?$vb%1000!=0:strlen($Ka)+4+strlen($Pg)+strlen($Bh)<$He)$Ka .=",$Pg";else{echo$Ka.$Bh;$Ka=$Vd.$Pg;}}$vb++;}if($Ka)echo$Ka.$Bh;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",connection()->error)."\n";if($Ad)echo"SET IDENTITY_INSERT ".table($R)." OFF;\n";}}function dumpFilename($_d){return friendly_url($_d!=""?$_d:(SERVER?:"localhost"));}function dumpHeaders($_d,$Ze=false){$If=$_POST["output"];$Ac=(preg_match('~sql~',$_POST["format"])?"sql":($Ze?"tar":"csv"));header("Content-Type: ".($If=="gz"?"application/x-gzip":($Ac=="tar"?"application/x-tar":($Ac=="sql"||$If!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($If=="gz"){ob_start(function($yh){return gzencode($yh);},1e6);}return$Ac;}function dumpFooter(){if($_POST["format"]=="sql")echo"-- ".gmdate("Y-m-d H:i:s e")."\n";}function importServerPath(){return"adminer.sql";}function homepage(){echo'

".adminer()->name()." ".VERSION;$ff=$_COOKIE["adminer_version"];echo" ".(version_compare(VERSION,$ff)<0?h($ff):"")."","

\n";switch_lang();if($We=="auth"){$If="";foreach((array)$_SESSION["pwds"]as$Qi=>$gh){foreach($gh as$O=>$Ki){$D=h(get_setting("vendor-$Qi-$O")?:get_driver($Qi));foreach($Ki as$V=>$G){if($G!==null){$Hb=$_SESSION["db"][$Qi][$O][$V];foreach(($Hb?array_keys($Hb):array(""))as$j)$If .="
  • ($D) ".h("$V@".($O!=""?adminer()->serverName($O):"").($j!=""?" - $j":""))."\n";}}}}if($If)echo"\n".script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});");}else{$T=array();if($_GET["ns"]!==""&&!$We&&DB!=""){connection()->select_db(DB);$T=table_status('',true);}adminer()->syntaxHighlighting($T);adminer()->databasesPrint($We);$ha=array();if(DB==""||!$We){if(support("sql")){$ha[]="".lang(62)."";$ha[]="".lang(73)."";}$ha[]="".lang(74)."";}$Fd=$_GET["ns"]!==""&&!$We&&DB!="";if($Fd&&function_exists('Adminer\alter_table'))$ha[]='".lang(75)."";echo($ha?"

    ".lang(11)."

    \n";}}}function syntaxHighlighting(array$T){echo script_src(preg_replace("~\\?.*~","",ME)."?file=jush.js&version=5.4.2",true);if(support("sql")){echo"\n";if($T){$ze=array();foreach($T as$R=>$U)$ze[]=preg_quote($R,'/');echo"var jushLinks = { ".JUSH.":";json_row(js_escape(ME).(support("table")?"table":"select").'=$&','/\b('.implode('|',$ze).')\b/g',false);if(support('routine')){foreach(routines()as$L)json_row(js_escape(ME).'function='.urlencode($L["SPECIFIC_NAME"]).'&name=$&','/\b'.preg_quote($L["ROUTINE_NAME"],'/').'(?=["`]?\()/g',false);}json_row('');echo"};\n";foreach(array("bac","bra","sqlite_quo","mssql_bra")as$X)echo"jushLinks.$X = jushLinks.".JUSH.";\n";if(isset($_GET["sql"])||isset($_GET["trigger"])||isset($_GET["check"])){$Lh=array_fill_keys(array_keys($T),array());foreach(driver()->allFields()as$R=>$m){foreach($m as$l)$Lh[$R][]=$l["field"];}echo"addEventListener('DOMContentLoaded', () => { autocompleter = jush.autocompleteSql('".idf_escape("")."', ".json_encode($Lh)."); });\n";}}echo"\n";}echo script("syntaxHighlighting('".preg_replace('~^(\d\.?\d).*~s','\1',connection()->server_info)."', '".connection()->flavor."');");}function databasesPrint($We){$i=adminer()->databases();if(DB&&$i&&!in_array(DB,$i))array_unshift($i,DB);echo"
    \n

    \n";hidden_fields_get();$Fb=script("mixin(qsl('select'), {onmousedown: dbMouseDown, onchange: dbChange});");echo"","\n";if(support("scheme")){if($We!="db"&&DB!=""&&connection()->select_db(DB)){echo"
    ";if($_GET["ns"]!="")set_schema($_GET["ns"]);}}foreach(array("import","sql","schema","dump","privileges")as$X){if(isset($_GET[$X])){echo input_hidden($X);break;}}echo"

    \n";}function tablesPrint(array$T){echo"
      ".script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($T as$R=>$Q){$R="$R";$D=adminer()->tableName($Q);if($D!=""&&!$Q["partition"])echo'
    • ".lang(78)." ",(support("table")||support("indexes")?'$D":"$D")."\n";}echo"
    \n";}function showVariables(){return show_variables();}function showStatus(){return show_status();}function processList(){return process_list();}function killProcess($t){return kill_process($t);}}class Plugins{private static$append=array('dumpFormat'=>true,'dumpOutput'=>true,'editRowPrint'=>true,'editFunctions'=>true,'config'=>true);var$plugins;var$error='';private$hooks=array();function __construct($dg){if($dg===null){$dg=array();$Ea="adminer-plugins";if(is_dir($Ea)){foreach(glob("$Ea/*.php")as$n)$this->includeOnce($n);}$sd=" href='https://www.adminer.org/plugins/#use'".target_blank();if(file_exists("$Ea.php")){$Gd=$this->includeOnce("$Ea.php");if(is_array($Gd)){foreach($Gd as$cg)$dg[get_class($cg)]=$cg;}else$this->error .=lang(79,"$Ea.php",$sd)."
    ";}foreach(get_declared_classes()as$Xa){if(!$dg[$Xa]&&(preg_match('~^Adminer\w~i',$Xa)||is_subclass_of($Xa,'Adminer\Plugin'))){$Cg=new \ReflectionClass($Xa);$qb=$Cg->getConstructor();if($qb&&$qb->getNumberOfRequiredParameters())$this->error .=lang(80,$sd,"$Xa","$Ea.php")."
    ";else$dg[$Xa]=new$Xa;}}}$this->plugins=$dg;$ja=new Adminer;$dg[]=$ja;$Cg=new \ReflectionObject($ja);foreach($Cg->getMethods()as$Ue){foreach($dg as$cg){$D=$Ue->getName();if(method_exists($cg,$D))$this->hooks[$D][]=$cg;}}}function includeOnce($n){return include_once"./$n";}function __call($D,array$Mf){$ta=array();foreach($Mf as$y=>$X)$ta[]=&$Mf[$y];$K=null;foreach($this->hooks[$D]as$cg){$Y=call_user_func_array(array($cg,$D),$ta);if($Y!==null){if(!self::$append[$D])return$Y;$K=$Y+(array)$K;}}return$K;}}abstract class Plugin{protected$translations=array();function description(){return$this->lang('');}function screenshot(){return"";}protected function lang($u,$E=null){$ta=func_get_args();$ta[0]=idx($this->translations[LANG],$u)?:$u;return call_user_func_array('Adminer\lang_format',$ta);}}Adminer::$instance=(function_exists('adminer_object')?adminer_object():(is_dir("adminer-plugins")||file_exists("adminer-plugins.php")?new Plugins(null):new Adminer));define('Adminer\JUSH',Driver::$jush);define('Adminer\SERVER',"".$_GET[DRIVER]);define('Adminer\DB',"$_GET[db]");define('Adminer\ME',preg_replace('~\?.*~','',relative_uri()).'?'.(sid()?SID.'&':'').(SERVER!==null?DRIVER."=".urlencode(SERVER).'&':'').($_GET["ext"]?"ext=".urlencode($_GET["ext"]).'&':'').(isset($_GET["username"])?"username=".urlencode($_GET["username"]).'&':'').(DB!=""?'db='.urlencode(DB).'&'.(isset($_GET["ns"])?"ns=".urlencode($_GET["ns"])."&":""):''));function page_header($Zh,$k="",$Ja=array(),$ai=""){page_headers();if(is_ajax()&&$k){page_messages($k);exit;}if(!ob_get_level())ob_start('ob_gzhandler',4096);$bi=$Zh.($ai!=""?": $ai":"");$ci=strip_tags($bi.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".adminer()->name());echo' ',$ci,' ';$zb=adminer()->css();if(is_int(key($zb)))$zb=array_fill_keys($zb,'light');$od=in_array('light',$zb)||in_array('',$zb);$md=in_array('dark',$zb)||in_array('',$zb);$Bb=($od?($md?null:false):($md?:null));$Ne=" media='(prefers-color-scheme: dark)'";if($Bb!==false)echo"\n";echo"\n",script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=5.4.2");if(adminer()->head($Bb))echo"\n","\n";foreach($zb as$Ei=>$Xe){$b=($Xe=='dark'&&!$Bb?$Ne:($Xe=='light'&&$md?" media='(prefers-color-scheme: light)'":""));echo"\n";}echo"\n\n";$n=get_temp_dir()."/adminer.version";echo script("mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick".(isset($_COOKIE["adminer_version"])?"":", onload: partial(verifyVersion, '".VERSION."')")."}); document.body.classList.replace('nojs', 'js'); const offlineMessage = '".js_escape(lang(82))."'; const thousandsSeparator = '".js_escape(lang(4))."';"),"\n",script("mixin(qs('#help'), {onmouseover: () => { helpOpen = 1; }, onmouseout: helpMouseout});"),"
    \n","".icon("move","","menu","")."".script("qs('#menuopen').onclick = event => { qs('#foot').classList.toggle('foot'); event.stopPropagation(); }");if($Ja!==null){$_=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'

    $bi

    \n","\n";restart_session();page_messages($k);$i=&get_session("dbs");if(DB!=""&&$i&&!in_array(DB,$i,true))$i=null;stop_session();define('Adminer\PAGE_HEADER',1);}function page_headers(){header("Content-Type: text/html; charset=utf-8");header("Cache-Control: no-cache");header("X-Frame-Options: deny");header("X-XSS-Protection: 0");header("X-Content-Type-Options: nosniff");header("Referrer-Policy: origin-when-cross-origin");foreach(adminer()->csp(csp())as$yb){$qd=array();foreach($yb as$y=>$X)$qd[]="$y $X";header("Content-Security-Policy: ".implode("; ",$qd));}adminer()->headers();}function csp(){return array(array("script-src"=>"'self' 'unsafe-inline' 'nonce-".get_nonce()."' 'strict-dynamic'","connect-src"=>"'self' https://www.adminer.org","frame-src"=>"'none'","object-src"=>"'none'","base-uri"=>"'none'","form-action"=>"'self'",),);}function get_nonce(){static$hf;if(!$hf)$hf=base64_encode(rand_string());return$hf;}function page_messages($k){$Di=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Te=idx($_SESSION["messages"],$Di);if($Te){echo"
    ".implode("
    \n
    ",$Te)."
    ".script("messagesPrint();");unset($_SESSION["messages"][$Di]);}if($k)echo"
    $k
    \n";if(adminer()->error)echo"
    ".adminer()->error."
    \n";}function page_footer($We=""){echo"
    \n\n\n\n",script("setupSubmitHighlight(document);");}function int32($bf){while($bf>=2147483648)$bf-=4294967296;while($bf<=-2147483649)$bf+=4294967296;return(int)$bf;}function long2str(array$W,$Vi){$Pg='';foreach($W as$X)$Pg .=pack('V',$X);if($Vi)return substr($Pg,0,end($W));return$Pg;}function str2long($Pg,$Vi){$W=array_values(unpack('V*',str_pad($Pg,4*ceil(strlen($Pg)/4),"\0")));if($Vi)$W[]=strlen($Pg);return$W;}function xxtea_mx($cj,$bj,$Ch,$he){return int32((($cj>>5&0x7FFFFFF)^$bj<<2)+(($bj>>3&0x1FFFFFFF)^$cj<<4))^int32(($Ch^$bj)+($he^$cj));}function encrypt_string($xh,$y){if($xh=="")return"";$y=array_values(unpack("V*",pack("H*",md5($y))));$W=str2long($xh,true);$bf=count($W)-1;$cj=$W[$bf];$bj=$W[0];$H=floor(6+52/($bf+1));$Ch=0;while($H-->0){$Ch=int32($Ch+0x9E3779B9);$cc=$Ch>>2&3;for($Jf=0;$Jf<$bf;$Jf++){$bj=$W[$Jf+1];$af=xxtea_mx($cj,$bj,$Ch,$y[$Jf&3^$cc]);$cj=int32($W[$Jf]+$af);$W[$Jf]=$cj;}$bj=$W[0];$af=xxtea_mx($cj,$bj,$Ch,$y[$Jf&3^$cc]);$cj=int32($W[$bf]+$af);$W[$bf]=$cj;}return long2str($W,false);}function decrypt_string($xh,$y){if($xh=="")return"";if(!$y)return false;$y=array_values(unpack("V*",pack("H*",md5($y))));$W=str2long($xh,false);$bf=count($W)-1;$cj=$W[$bf];$bj=$W[0];$H=floor(6+52/($bf+1));$Ch=int32($H*0x9E3779B9);while($Ch){$cc=$Ch>>2&3;for($Jf=$bf;$Jf>0;$Jf--){$cj=$W[$Jf-1];$af=xxtea_mx($cj,$bj,$Ch,$y[$Jf&3^$cc]);$bj=int32($W[$Jf]-$af);$W[$Jf]=$bj;}$cj=$W[$bf];$af=xxtea_mx($cj,$bj,$Ch,$y[$Jf&3^$cc]);$bj=int32($W[0]-$af);$W[0]=$bj;$Ch=int32($Ch-0x9E3779B9);}return long2str($W,true);}$ag=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($y)=explode(":",$X);$ag[$y]=$X;}}function add_invalid_login(){$Ca=get_temp_dir()."/adminer.invalid";foreach(glob("$Ca*")?:array($Ca)as$n){$p=file_open_lock($n);if($p)break;}if(!$p)$p=file_open_lock("$Ca-".rand_string());if(!$p)return;$Zd=unserialize(stream_get_contents($p));$Wh=time();if($Zd){foreach($Zd as$ae=>$X){if($X[0]<$Wh)unset($Zd[$ae]);}}$Yd=&$Zd[adminer()->bruteForceKey()];if(!$Yd)$Yd=array($Wh+30*60,0);$Yd[1]++;file_write_unlock($p,serialize($Zd));}function check_invalid_login(array&$ag){$Zd=array();foreach(glob(get_temp_dir()."/adminer.invalid*")as$n){$p=file_open_lock($n);if($p){$Zd=unserialize(stream_get_contents($p));file_unlock($p);break;}}$Yd=idx($Zd,adminer()->bruteForceKey(),array());$gf=($Yd[1]>29?$Yd[0]-time():0);if($gf>0)auth_error(lang(84,ceil($gf/60)),$ag);}$xa=$_POST["auth"];if($xa){session_regenerate_id();$Qi=$xa["driver"];$O=$xa["server"];$V=$xa["username"];$G=(string)$xa["password"];$j=$xa["db"];set_password($Qi,$O,$V,$G);$_SESSION["db"][$Qi][$O][$V][$j]=true;if($xa["permanent"]){$y=implode("-",array_map('base64_encode',array($Qi,$O,$V,$j)));$pg=adminer()->permanentLogin(true);$ag[$y]="$y:".base64_encode($pg?encrypt_string($G,$pg):"");cookie("adminer_permanent",implode(" ",$ag));}if(count($_POST)==1||DRIVER!=$Qi||SERVER!=$O||$_GET["username"]!==$V||DB!=$j)redirect(auth_url($Qi,$O,$V,$j));}elseif($_POST["logout"]&&(!$_SESSION["token"]||verify_token())){foreach(array("pwds","db","dbs","queries")as$y)set_session($y,null);unset_permanent($ag);redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),lang(85).' '.lang(86));}elseif($ag&&!$_SESSION["pwds"]){session_regenerate_id();$pg=adminer()->permanentLogin();foreach($ag as$y=>$X){list(,$Wa)=explode(":",$X);list($Qi,$O,$V,$j)=array_map('base64_decode',explode("-",$y));set_password($Qi,$O,$V,decrypt_string(base64_decode($Wa),$pg));$_SESSION["db"][$Qi][$O][$V][$j]=true;}}function unset_permanent(array&$ag){foreach($ag as$y=>$X){list($Qi,$O,$V,$j)=array_map('base64_decode',explode("-",$y));if($Qi==DRIVER&&$O==SERVER&&$V==$_GET["username"]&&$j==DB)unset($ag[$y]);}cookie("adminer_permanent",implode(" ",$ag));}function auth_error($k,array&$ag){$hh=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$hh]||$_GET[$hh])&&!$_SESSION["token"])$k=lang(87);else{restart_session();add_invalid_login();$G=get_password();if($G!==null){if($G===false)$k .=($k?'
    ':'').lang(88,target_blank(),'permanentLogin()');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent($ag);}}if(!$_COOKIE[$hh]&&$_GET[$hh]&&ini_bool("session.use_only_cookies"))$k=lang(89);$Mf=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?:rand_string()),$Mf["lifetime"]);if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);page_header(lang(36),$k,null);echo"
    \n","
    ";if(hidden_fields($_POST,array("auth")))echo"

    ".lang(90)."\n";echo"

    \n";adminer()->loginForm();echo"
    \n";page_footer("auth");exit;}if(isset($_GET["username"])&&!class_exists('Adminer\Db')){unset($_SESSION["pwds"][DRIVER]);unset_permanent($ag);page_header(lang(91),lang(92,implode(", ",Driver::$extensions)),false);page_footer("auth");exit;}$f='';if(isset($_GET["username"])&&is_string(get_password())){list(,$eg)=host_port(SERVER);if(preg_match('~^\s*([-+]?\d+)~',$eg,$B)&&($B[1]<1024||$B[1]>65535))auth_error(lang(93),$ag);check_invalid_login($ag);$xb=adminer()->credentials();$f=Driver::connect($xb[0],$xb[1],$xb[2]);if(is_object($f)){Db::$instance=$f;Driver::$instance=new Driver($f);if($f->flavor)save_settings(array("vendor-".DRIVER."-".SERVER=>get_driver(DRIVER)));}}$_e=null;if(!is_object($f)||($_e=adminer()->login($_GET["username"],get_password()))!==true){$k=(is_string($f)?nl_br(h($f)):(is_string($_e)?$_e:lang(94))).(preg_match('~^ | $~',get_password())?'
    '.lang(95):'');auth_error($k,$ag);}if($_POST["logout"]&&$_SESSION["token"]&&!verify_token()){page_header(lang(83),lang(96));page_footer("db");exit;}if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);stop_session(true);if($xa&&$_POST["token"])$_POST["token"]=get_token();$k='';if($_POST){if(!verify_token()){$Sd="max_input_vars";$Le=ini_get($Sd);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$y){$X=ini_get($y);if($X&&(!$Le||$X<$Le)){$Sd=$y;$Le=$X;}}}$k=(!$_POST["token"]&&$Le?lang(97,"'$Sd'"):lang(96).' '.lang(98));}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$k=lang(99,"'post_max_size'");if(isset($_GET["sql"]))$k .=' '.lang(100);}function print_select_result($J,$g=null,array$Af=array(),$z=0){$ze=array();$w=array();$d=array();$Ha=array();$ti=array();$K=array();for($s=0;(!$z||$s<$z)&&($L=$J->fetch_row());$s++){if(!$s){echo"
    \n","\n","";for($x=0;$xfetch_field();$D=$l->name;$_f=(isset($l->orgtable)?$l->orgtable:"");$zf=(isset($l->orgname)?$l->orgname:$D);if($Af&&JUSH=="sql")$ze[$x]=($D=="table"?"table=":($D=="possible_keys"?"indexes=":null));elseif($_f!=""){if(isset($l->table))$K[$l->table]=$_f;if(!isset($w[$_f])){$w[$_f]=array();foreach(indexes($_f,$g)as$v){if($v["type"]=="PRIMARY"){$w[$_f]=array_flip($v["columns"]);break;}}$d[$_f]=$w[$_f];}if(isset($d[$_f][$zf])){unset($d[$_f][$zf]);$w[$_f][$zf]=$x;$ze[$x]=$_f;}}if($l->charsetnr==63)$Ha[$x]=true;$ti[$x]=$l->type;echo"name!=$zf?" title='".h(($_f!=""?"$_f.":"").$zf)."'":"").">".h($D).($Af?'':"");}echo"\n";}echo"";foreach($L as$y=>$X){$_="";if(isset($ze[$y])&&!$d[$ze[$y]]){if($Af&&JUSH=="sql"){$R=$L[array_search("table=",$ze)];$_=ME.$ze[$y].urlencode($Af[$R]!=""?$Af[$R]:$R);}else{$_=ME."edit=".urlencode($ze[$y]);foreach($w[$ze[$y]]as$bb=>$x){if($L[$x]===null){$_="";break;}$_ .="&where".urlencode("[".bracket_escape($bb)."]")."=".urlencode($L[$x]);}}}$l=array('type'=>($Ha[$y]?'blob':($ti[$y]==254?'char':'')),);$X=select_value($X,$_,$l,null);echo"$X";}}echo($s?"
    \n
    ":"

    ".lang(14))."\n";return$K;}function referencable_primary($Zg){$K=array();foreach(table_status('',true)as$Gh=>$R){if($Gh!=$Zg&&fk_support($R)){foreach(fields($Gh)as$l){if($l["primary"]){if($K[$Gh]){unset($K[$Gh]);break;}$K[$Gh]=$l;}}}}return$K;}function textarea($D,$Y,$M=10,$fb=80){echo"";}function select_input($b,array$vf,$Y="",$qf="",$bg=""){$Oh=($vf?"select":"input");return"<$Oh$b".($vf?">

    ".lang(120,get_driver(DRIVER),"".h(connection()->server_info)."","".connection()->extension."")."\n","

    ".lang(121,"".h(logged_user())."")."\n";$i=adminer()->databases();if($i){$Sg=support("scheme");$eb=collations();echo"

    \n","\n",script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"),"".(support("database")?"\n";$i=($_GET["dbsize"]?count_tables($i):array_flip($i));foreach($i as$j=>$T){$Lg=h(ME)."db=".urlencode($j);$t=h("Db-".$j);echo"".(support("database")?"
    ":"")."".lang(35).(get_session("dbs")!==null?" - ".lang(122)."":"")."".lang(123)."".lang(124)."".lang(125)." - ".lang(126)."".script("qsl('a').onclick = partial(ajaxSetHtml, '".js_escape(ME)."script=connect');","")."
    ".checkbox("db[]",$j,in_array($j,(array)$_POST["db"]),"","","",$t):""),"".h($j)."";$db=h(db_collation($j,$eb));echo"".(support("database")?"$db":$db),"".($_GET["dbsize"]?$T:"?")."","".($_GET["dbsize"]?db_size($j):"?"),"\n";}echo"
    \n",(support("database")?"\n":""),input_token(),"
    \n",script("tableCheck();");}if(!empty(adminer()->plugins)){echo"
    \n","

    ".lang(129)."

    \n
      \n";foreach(adminer()->plugins as$cg){$Qb=(method_exists($cg,'description')?$cg->description():"");if(!$Qb){$Cg=new \ReflectionObject($cg);if(preg_match('~^/[\s*]+(.+)~',$Cg->getDocComment(),$B))$Qb=$B[1];}$Tg=(method_exists($cg,'screenshot')?$cg->screenshot():"");echo"
    • ".get_class($cg)."".h($Qb?": $Qb":"").($Tg?" (".lang(130).")":"")."\n";}echo"
    \n";adminer()->pluginsLinks();echo"
    \n";}}page_footer("db");exit;}if(support("scheme")){if(DB!=""&&$_GET["ns"]!==""){if(!isset($_GET["ns"]))redirect(preg_replace('~ns=[^&]*&~','',ME)."ns=".get_schema());if(!set_schema($_GET["ns"])){header("HTTP/1.1 404 Not Found");page_header(lang(77).": ".h($_GET["ns"]),lang(131),true);page_footer("ns");exit;}}}adminer()->afterConnect();class TmpFile{private$handler;var$size;function __construct(){$this->handler=tmpfile();}function write($sb){$this->size+=strlen($sb);fwrite($this->handler,$sb);}function send(){fseek($this->handler,0);fpassthru($this->handler);fclose($this->handler);}}if(isset($_GET["select"])&&($_POST["edit"]||$_POST["clone"])&&!$_POST["save"])$_GET["edit"]=$_GET["select"];if(isset($_GET["callf"]))$_GET["call"]=$_GET["callf"];if(isset($_GET["function"]))$_GET["procedure"]=$_GET["function"];if(isset($_GET["download"])){$a=$_GET["download"];$m=fields($a);header("Content-Type: application/octet-stream");header("Content-Disposition: attachment; filename=".friendly_url("$a-".implode("_",$_GET["where"])).".".friendly_url($_GET["field"]));$N=array(idf_escape($_GET["field"]));$J=driver()->select($a,$N,array(where($_GET,$m)),$N);$L=($J?$J->fetch_row():array());echo driver()->value($L[0],$m[$_GET["field"]]);exit;}elseif(isset($_GET["table"])){$a=$_GET["table"];$m=fields($a);if(!$m)$k=error()?:lang(11);$S=table_status1($a);$D=adminer()->tableName($S);page_header(($m&&is_view($S)?$S['Engine']=='materialized view'?lang(132):lang(133):lang(134)).": ".($D!=""?$D:h($a)),$k);$Kg=array();foreach($m as$y=>$l)$Kg+=$l["privileges"];adminer()->selectLinks($S,(isset($Kg["insert"])||!support("table")?"":null));$ib=$S["Comment"];if($ib!="")echo"

    ".lang(48).": ".h($ib)."\n";if($m)adminer()->tableStructurePrint($m,$S);function tables_links(array$T){echo"

    \n";}$Rd=driver()->inheritsFrom($a);if($Rd){echo"

    ".lang(135)."

    \n";tables_links($Rd);}if(support("indexes")&&driver()->supportsIndex($S)){echo"

    ".lang(136)."

    \n";$w=indexes($a);if($w)adminer()->tableIndexesPrint($w,$S);echo'

    ".lang(101)."

    \n";$Xc=foreign_keys($a);if($Xc){echo"\n","\n";foreach($Xc as$D=>$o){echo"","
    ".lang(138)."".lang(139)."".lang(104)."".lang(103)."
    ".implode(", ",array_map('Adminer\h',$o["source"]))."";$_=($o["db"]!=""?preg_replace('~db=[^&]*~',"db=".urlencode($o["db"]),ME):($o["ns"]!=""?preg_replace('~ns=[^&]*~',"ns=".urlencode($o["ns"]),ME):ME));echo"".($o["db"]!=""&&$o["db"]!=DB?"".h($o["db"]).".":"").($o["ns"]!=""&&$o["ns"]!=$_GET["ns"]?"".h($o["ns"]).".":"").h($o["table"])."","(".implode(", ",array_map('Adminer\h',$o["target"])).")","".h($o["on_delete"]),"".h($o["on_update"]),''.lang(140).'',"\n";}echo"
    \n";}echo'

    ".lang(142)."

    \n";$Ra=driver()->checkConstraints($a);if($Ra){echo"\n";foreach($Ra as$y=>$X)echo"","
    ".h($X),"".lang(140)."","\n";echo"
    \n";}echo'

    ".lang(144)."

    \n";$qi=triggers($a);if($qi){echo"\n";foreach($qi as$y=>$X)echo"
    ".h($X[0])."".h($X[1])."".h($y)."".lang(140)."\n";echo"
    \n";}echo'

    ".lang(146)."

    \n";$Qf=driver()->partitionsInfo($a);if($Qf)echo"

    BY ".h("$Qf[partition_by]($Qf[partition])")."\n";tables_links($Qd);}}elseif(isset($_GET["schema"])){page_header(lang(68),"",array(),h(DB.($_GET["ns"]?".$_GET[ns]":"")));$Ih=array();$Jh=array();$ca=($_GET["schema"]?:$_COOKIE["adminer_schema-".str_replace(".","_",DB)]);preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',$ca,$De,PREG_SET_ORDER);foreach($De as$s=>$B){$Ih[$B[1]]=array($B[2],$B[3]);$Jh[]="\n\t'".js_escape($B[1])."': [ $B[2], $B[3] ]";}$gi=0;$Da=-1;$Qg=array();$Bg=array();$te=array();$qa=driver()->allFields();foreach(table_status('',true)as$R=>$S){if(is_view($S))continue;$fg=0;$Qg[$R]["fields"]=array();foreach($qa[$R]as$l){$fg+=1.25;$l["pos"]=$fg;$Qg[$R]["fields"][$l["field"]]=$l;}$Qg[$R]["pos"]=($Ih[$R]?:array($gi,0));foreach(adminer()->foreignKeys($R)as$X){if(!$X["db"]){$re=$Da;if(idx($Ih[$R],1)||idx($Ih[$X["table"]],1))$re=min(idx($Ih[$R],1,0),idx($Ih[$X["table"]],1,0))-1;else$Da-=.1;while($te[(string)$re])$re-=.0001;$Qg[$R]["references"][$X["table"]][(string)$re]=array($X["source"],$X["target"]);$Bg[$X["table"]][$R][(string)$re]=$X["target"];$te[(string)$re]=true;}}$gi=max($gi,$Qg[$R]["pos"][0]+2.5+$fg);}echo'

    qs(\'#schema\').onselectstart = () => false; const tablePos = {',implode(",",$Jh)."\n",'}; const em = qs(\'#schema\').offsetHeight / ',$gi,'; document.onmousemove = schemaMousemove; document.onmouseup = partialArg(schemaMouseup, \'',js_escape(DB),'\'); ';foreach($Qg as$D=>$R){echo"
    ",''.h($D)."",script("qsl('div').onmousedown = schemaMousedown;");foreach($R["fields"]as$l){$X=''.h($l["field"]).'';echo"
    ".($l["primary"]?"$X":$X);}foreach((array)$R["references"]as$Qh=>$Dg){foreach($Dg as$re=>$zg){$se=$re-idx($Ih[$D],1);$s=0;foreach($zg[0]as$ph)echo"\n
    "."
    ";}}foreach((array)$Bg[$D]as$Qh=>$Dg){foreach($Dg as$re=>$d){$se=$re-idx($Ih[$D],1);$s=0;foreach($d as$Ph)echo"\n
    "."
    "."
    ";}}echo"\n
    \n";}foreach($Qg as$D=>$R){foreach((array)$R["references"]as$Qh=>$Dg){foreach($Dg as$re=>$zg){$Ve=$gi;$Je=-10;foreach($zg[0]as$y=>$ph){$gg=$R["pos"][0]+$R["fields"][$ph]["pos"];$hg=$Qg[$Qh]["pos"][0]+$Qg[$Qh]["fields"][$zg[1][$y]]["pos"];$Ve=min($Ve,$gg,$hg);$Je=max($Je,$gg,$hg);}echo"
    \n";}}}echo'
    ';$Gb=array('','USE','DROP+CREATE','CREATE');$Kh=array('','DROP+CREATE','CREATE');$Db=array('','TRUNCATE+INSERT','INSERT');if(JUSH=="sql")$Db[]='INSERT+UPDATE';$L=get_settings("adminer_export");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"
    ".lang(148)."".html_radios("output",adminer()->dumpOutput(),$L["output"])."\n","
    ".lang(149)."".html_radios("format",adminer()->dumpFormat(),$L["format"])."\n",(JUSH=="sqlite"?"":"
    ".lang(35)."".html_select('db_style',$Gb,$L["db_style"]).(support("type")?checkbox("types",1,$L["types"],lang(6)):"").(support("routine")?checkbox("routines",1,$L["routines"],lang(70)):"").(support("event")?checkbox("events",1,$L["events"],lang(72)):"")),"
    ".lang(124)."".html_select('table_style',$Kh,$L["table_style"]).checkbox("auto_increment",1,$L["auto_increment"],lang(49)).(support("trigger")?checkbox("triggers",1,$L["triggers"],lang(144)):""),"
    ".lang(150)."".html_select('data_style',$Db,$L["data_style"]),'

    ',input_token(),' ',script("qsl('table').onclick = dumpClick;");$lg=array();if(DB!=""){$Ta=($a!=""?"":" checked");echo"","\n";$Ti="";$Mh=tables_list();foreach($Mh as$D=>$U){$kg=preg_replace('~_.*~','',$D);$Ta=($a==""||$a==(substr($a,-1)=="%"?"$kg%":$D));$og="\n";$i=adminer()->databases();if($i){foreach($i as$j){if(!information_schema($j)){$kg=preg_replace('~_.*~','',$j);echo"
    ".script("qs('#check-tables').onclick = partial(formCheck, /^tables\\[/);",""),"".script("qs('#check-data').onclick = partial(formCheck, /^data\\[/);",""),"
    ".checkbox("tables[]",$D,$Ta,$D,"","block");if($U!==null&&!preg_match('~table~i',$U))$Ti .="$og\n";else echo"$og\n";$lg[$kg]++;}echo$Ti;if($Mh)echo script("ajaxSetHtml('".js_escape(ME)."script=db');");}else{echo"
    ","",script("qs('#check-databases').onclick = partial(formCheck, /^databases\\[/);",""),"
    ".checkbox("databases[]",$j,$a==""||$a=="$kg%",$j,"","block")."\n";$lg[$kg]++;}}}else echo"
    ";}echo'

    ';$Nc=true;foreach($lg as$y=>$X){if($y!=""&&$X>1){echo($Nc?"

    ":" ")."".h($y)."";$Nc=false;}}}elseif(isset($_GET["sql"])){if(!$k&&$_POST["export"]){save_settings(array("output"=>$_POST["output"],"format"=>$_POST["format"]),"adminer_import");dump_headers("sql");if($_POST["format"]=="sql")echo"$_POST[query]\n";else{adminer()->dumpTable("","");adminer()->dumpData("","table",$_POST["query"]);adminer()->dumpFooter();}exit;}restart_session();$ud=&get_session("queries");$td=&$ud[DB];if(!$k&&$_POST["clear"]){$td=array();redirect(remove_from_uri("history"));}stop_session();page_header((isset($_GET["import"])?lang(73):lang(62)),$k);$ye='--'.(JUSH=='sql'?' ':'');if(!$k&&$_POST){$p=false;if(!isset($_GET["import"]))$I=$_POST["query"];elseif($_POST["webfile"]){$th=adminer()->importServerPath();$p=@fopen((file_exists($th)?$th:"compress.zlib://$th.gz"),"rb");$I=($p?fread($p,1e6):false);}else$I=get_file("sql_file",true,";");if(is_string($I)){if(function_exists('memory_get_usage')&&($Oe=ini_bytes("memory_limit"))!="-1")@ini_set("memory_limit",max($Oe,strval(2*strlen($I)+memory_get_usage()+8e6)));if($I!=""&&strlen($I)<1e6){$H=$I.(preg_match("~;[ \t\r\n]*\$~",$I)?"":";");if(!$td||first(end($td))!=$H){restart_session();$td[]=array($H,time());set_session("queries",$ud);stop_session();}}$qh="(?:\\s|/\\*[\s\S]*?\\*/|(?:#|$ye)[^\n]*\n?|--\r?\n)";$Ob=driver()->delimiter;$lf=0;$kc=true;$g=connect();if($g&&DB!=""){$g->select_db(DB);if($_GET["ns"]!="")set_schema($_GET["ns"],$g);}$hb=0;$sc=array();$Nf='[\'"'.(JUSH=="sql"?'`#':(JUSH=="sqlite"?'`[':(JUSH=="mssql"?'[':''))).']|/\*|'.$ye.'|$'.(JUSH=="pgsql"?'|\$([a-zA-Z]\w*)?\$':'');$hi=microtime(true);$ka=get_settings("adminer_import");while($I!=""){if(!$lf&&preg_match("~^$qh*+DELIMITER\\s+(\\S+)~i",$I,$B)){$Ob=preg_quote($B[1]);$I=substr($I,strlen($B[0]));}elseif(!$lf&&JUSH=='pgsql'&&preg_match("~^($qh*+COPY\\s+)[^;]+\\s+FROM\\s+stdin;~i",$I,$B)){$Ob="\n\\\\\\.\r?\n";$lf=strlen($B[0]);}else{preg_match("($Ob\\s*|$Nf)",$I,$B,PREG_OFFSET_CAPTURE,$lf);list($Zc,$fg)=$B[0];if(!$Zc&&$p&&!feof($p))$I .=fread($p,1e5);else{if(!$Zc&&rtrim($I)=="")break;$lf=$fg+strlen($Zc);if($Zc&&!preg_match("(^$Ob)",$Zc)){$Na=driver()->hasCStyleEscapes()||(JUSH=="pgsql"&&($fg>0&&strtolower($I[$fg-1])=="e"));$Yf=($Zc=='/*'?'\*/':($Zc=='['?']':(preg_match("~^$ye|^#~",$Zc)?"\n":preg_quote($Zc).($Na?'|\\\\.':''))));while(preg_match("($Yf|\$)s",$I,$B,PREG_OFFSET_CAPTURE,$lf)){$Pg=$B[0][0];if(!$Pg&&$p&&!feof($p))$I .=fread($p,1e5);else{$lf=$B[0][1]+strlen($Pg);if(!$Pg||$Pg[0]!="\\")break;}}}else{$kc=false;$H=substr($I,0,$fg+($Ob[0]=="\n"?3:0));$hb++;$og="

    ".adminer()->sqlCommandQuery($H)."
    \n";if(JUSH=="sqlite"&&preg_match("~^$qh*+ATTACH\\b~i",$H,$B)){echo$og,"

    ".lang(151)."\n";$sc[]=" $hb";if($_POST["error_stops"])break;}else{if(!$_POST["only_errors"]){echo$og;ob_flush();flush();}$wh=microtime(true);if(connection()->multi_query($H)&&$g&&preg_match("~^$qh*+USE\\b~i",$H))$g->query($H);do{$J=connection()->store_result();if(connection()->error){echo($_POST["only_errors"]?$og:""),"

    ".lang(152).(connection()->errno?" (".connection()->errno.")":"").": ".error()."\n";$sc[]=" $hb";if($_POST["error_stops"])break 2;}else{$Wh=" (".format_time($wh).")".(strlen($H)<1000?" ".lang(12)."":"");$ma=connection()->affected_rows;$Wi=($_POST["only_errors"]?"":driver()->warnings());$Xi="warnings-$hb";if($Wi)$Wh .=", ".lang(44)."".script("qsl('a').onclick = partial(toggle, '$Xi');","");$zc=null;$Af=null;$_c="explain-$hb";if(is_object($J)){$z=$_POST["limit"];$Af=print_select_result($J,$g,array(),$z);if(!$_POST["only_errors"]){echo"

    \n";$kf=$J->num_rows;echo"
    \n";}}else{if(preg_match("~^$qh*+(CREATE|DROP|ALTER)$qh++(DATABASE|SCHEMA)\\b~i",$H)){restart_session();set_session("dbs",null);stop_session();}if(!$_POST["only_errors"])echo"

    ".lang(155,$ma)."$Wh\n";}echo($Wi?"

    \n":"");if($zc){echo"\n";}}$wh=microtime(true);}while(connection()->next_result());}$I=substr($I,$lf);$lf=0;}}}}if($kc)echo"

    ".lang(156)."\n";elseif($_POST["only_errors"])echo"

    ".lang(157,$hb-count($sc))," (".format_time($hi).")\n";elseif($sc&&$hb>1)echo"

    ".lang(152).": ".implode("",$sc)."\n";}else echo"

    ".upload_error($I)."\n";}echo'

    ';$xc="";if(!isset($_GET["import"])){$H=$_GET["sql"];if($_POST)$H=$_POST["query"];elseif($_GET["history"]=="all")$H=$td;elseif($_GET["history"]!="")$H=idx($td[$_GET["history"]],0);echo"

    ";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"))."');"),"

    ";adminer()->sqlPrintAfter();echo"$xc\n",lang(159).": \n";}else{$jd=(extension_loaded("zlib")?"[.gz]":"");echo"

    ".lang(160)."
    ",file_input("SQL$jd: \n$xc"),"
    \n";$Dd=adminer()->importServerPath();if($Dd)echo"
    ".lang(161)."
    ",lang(162,"".h($Dd)."$jd"),' ',"
    \n";echo"

    ";}echo checkbox("error_stops",1,($_POST?$_POST["error_stops"]:isset($_GET["import"])||$_GET["error_stops"]),lang(164))."\n",checkbox("only_errors",1,($_POST?$_POST["only_errors"]:isset($_GET["import"])||$_GET["only_errors"]),lang(165))."\n",input_token();if(!isset($_GET["import"])&&$td){print_fieldset("history",lang(166),$_GET["history"]!="");for($X=end($td);$X;$X=prev($td)){$y=key($td);list($H,$Wh,$fc)=$X;echo''.lang(12).""." ".@date("H:i:s",$Wh).""." ".shorten_utf8(ltrim(str_replace("\n"," ",str_replace("\r","",preg_replace("~^(#|$ye).*~m",'',$H)))),80,"").($fc?" ($fc)":"")."
    \n";}echo"\n","".lang(168)."\n","\n";}echo'

    ';}elseif(isset($_GET["edit"])){$a=$_GET["edit"];$m=fields($a);$Z=(isset($_GET["select"])?($_POST["check"]&&count($_POST["check"])==1?where_check($_POST["check"][0],$m):""):where($_GET,$m));$Ai=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($m as$D=>$l){if((!$Ai&&!isset($l["privileges"]["insert"]))||adminer()->fieldName($l)=="")unset($m[$D]);}if($_POST&&!$k&&!isset($_GET["select"])){$A=$_POST["referer"];if($_POST["insert"])$A=($Ai?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$A))$A=ME."select=".urlencode($a);$w=indexes($a);$wi=unique_array($_GET["where"],$w);$vg="\nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($A,lang(169),driver()->delete($a,$vg,$wi?0:1));else{$P=array();foreach($m as$D=>$l){$X=process_input($l);if($X!==false&&$X!==null)$P[idf_escape($D)]=$X;}if($Ai){if(!$P)redirect($A);queries_redirect($A,lang(170),driver()->update($a,$P,$vg,$wi?0:1));if(is_ajax()){page_headers();page_messages($k);exit;}}else{$J=driver()->insert($a,$P);$qe=($J?last_id($J):0);queries_redirect($A,lang(171,($qe?" $qe":"")),$J);}}}$L=null;if($Z){$N=array();foreach($m as$D=>$l){if(isset($l["privileges"]["select"])){$va=($_POST["clone"]&&$l["auto_increment"]?"''":convert_field($l));$N[]=($va?"$va AS ":"").idf_escape($D);}}$L=array();if(!support("table"))$N=array("*");if($N){$J=driver()->select($a,$N,array($Z),$N,array(),(isset($_GET["select"])?2:1));if(!$J)$k=error();else{$L=$J->fetch_assoc();if(!$L)$L=false;}if(isset($_GET["select"])&&(!$L||$J->fetch_assoc()))$L=null;}}if(!support("table")&&!$m){if(!$Z){$J=driver()->select($a,array("*"),array(),array("*"));$L=($J?$J->fetch_assoc():false);if(!$L)$L=array(driver()->primary=>"");}if($L){foreach($L as$y=>$X){if(!$Z)$L[$y]=null;$m[$y]=array("field"=>$y,"null"=>($y!=driver()->primary),"auto_increment"=>($y==driver()->primary));}}}if($_POST["save"])$L=(array)$_POST["fields"]+($L?$L:array());edit_form($a,$m,$L,$Ai,$k);}elseif(isset($_GET["create"])){$a=$_GET["create"];$Sf=driver()->partitionBy;$Wf=($Sf?driver()->partitionsInfo($a):array());$Ag=referencable_primary($a);$Xc=array();foreach($Ag as$Gh=>$l)$Xc[str_replace("`","``",$Gh)."`".str_replace("`","``",$l["field"])]=$Gh;$Df=array();$S=array();if($a!=""){$Df=fields($a);$S=table_status1($a);if(count($S)<2)$k=lang(11);}$L=$_POST;$L["fields"]=(array)$L["fields"];if($L["auto_increment_col"])$L["fields"][$L["auto_increment_col"]]["auto_increment"]=true;if($_POST)save_settings(array("comments"=>$_POST["comments"],"defaults"=>$_POST["defaults"]));if($_POST&&!process_fields($L["fields"])&&!$k){if($_POST["drop"])queries_redirect(substr(ME,0,-1),lang(172),drop_tables(array($a)));else{$m=array();$qa=array();$Gi=false;$Vc=array();$Cf=reset($Df);$oa=" FIRST";foreach($L["fields"]as$y=>$l){$o=$Xc[$l["type"]];$si=($o!==null?$Ag[$o]:$l);if($l["field"]!=""){if(!$l["generated"])$l["default"]=null;$sg=process_field($l,$si);$qa[]=array($l["orig"],$sg,$oa);if(!$Cf||$sg!==process_field($Cf,$Cf)){$m[]=array($l["orig"],$sg,$oa);if($l["orig"]!=""||$oa)$Gi=true;}if($o!==null)$Vc[idf_escape($l["field"])]=($a!=""&&JUSH!="sqlite"?"ADD":" ").format_foreign_key(array('table'=>$Xc[$l["type"]],'source'=>array($l["field"]),'target'=>array($si["field"]),'on_delete'=>$l["on_delete"],));$oa=" AFTER ".idf_escape($l["field"]);}elseif($l["orig"]!=""){$Gi=true;$m[]=array($l["orig"]);}if($l["orig"]!=""){$Cf=next($Df);if(!$Cf)$oa="";}}$Uf=array();if(in_array($L["partition_by"],$Sf)){foreach($L as$y=>$X){if(preg_match('~^partition~',$y))$Uf[$y]=$X;}foreach($Uf["partition_names"]as$y=>$D){if($D==""){unset($Uf["partition_names"][$y]);unset($Uf["partition_values"][$y]);}}$Uf["partition_names"]=array_values($Uf["partition_names"]);$Uf["partition_values"]=array_values($Uf["partition_values"]);if($Uf==$Wf)$Uf=array();}elseif(preg_match("~partitioned~",$S["Create_options"]))$Uf=null;$C=lang(173);if($a==""){cookie("adminer_engine",$L["Engine"]);$C=lang(174);}$D=trim($L["name"]);queries_redirect(ME.(support("table")?"table=":"select=").urlencode($D),$C,alter_table($a,$D,(JUSH=="sqlite"&&($Gi||$Vc)?$qa:$m),$Vc,($L["Comment"]!=$S["Comment"]?$L["Comment"]:null),($L["Engine"]&&$L["Engine"]!=$S["Engine"]?$L["Engine"]:""),($L["Collation"]&&$L["Collation"]!=$S["Collation"]?$L["Collation"]:""),($L["Auto_increment"]!=""?number($L["Auto_increment"]):""),$Uf));}}page_header(($a!=""?lang(42):lang(75)),$k,array("table"=>$a),h($a));if(!$_POST){$ti=driver()->types();$L=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($ti["int"])?"int":(isset($ti["integer"])?"integer":"")),"on_update"=>"")),"partition_names"=>array(""),);if($a!=""){$L=$S;$L["name"]=$a;$L["fields"]=array();if(!$_GET["auto_increment"])$L["Auto_increment"]="";foreach($Df as$l){$l["generated"]=$l["generated"]?:(isset($l["default"])?"DEFAULT":"");$L["fields"][]=$l;}if($Sf){$L+=$Wf;$L["partition_names"][]="";$L["partition_values"][]="";}}}$eb=collations();if(is_array(reset($eb)))$eb=call_user_func_array('array_merge',array_values($eb));$mc=driver()->engines();foreach($mc as$lc){if(!strcasecmp($lc,$L["Engine"])){$L["Engine"]=$lc;break;}}echo'

    ';if(support("columns")||$a==""){echo lang(175).": \n",($mc?html_select("Engine",array(""=>"(".lang(176).")")+$mc,$L["Engine"]).on_help("event.target.value",1).script("qsl('select').onchange = helpClose;")."\n":"");if($eb)echo"".optionlist($eb)."\n",(preg_match("~sqlite|mssql~",JUSH)?"":"\n");echo"\n";}if(support("columns")){echo"

    \n","\n";edit_fields($L["fields"],$eb,"TABLE",$Xc);echo"
    \n",script("editFields();"),"
    \n

    \n",lang(49).": \n",checkbox("defaults",1,($_POST?$_POST["defaults"]:get_setting("defaults")),lang(177),"columnShow(this.checked, 5)","jsonly");$kb=($_POST?$_POST["comments"]:get_setting("comments"));echo(support("comment")?checkbox("comments",1,$kb,lang(48),"editingCommentsClick(this, true);","jsonly").' '.(preg_match('~\n~',$L["Comment"])?"":''):''),'

    ';}echo' ';if($a!="")echo'',confirm(lang(178,$a));if($Sf&&(JUSH=='sql'||$a=="")){$Tf=preg_match('~RANGE|LIST~',$L["partition_by"]);print_fieldset("partition",lang(179),$L["partition_by"]);echo"

    ".html_select("partition_by",array_merge(array(""),$Sf),$L["partition_by"]).on_help("event.target.value.replace(/./, 'PARTITION BY \$&')",1).script("qsl('select').onchange = partitionByChange;"),"()\n",lang(180).": \n","\n","\n";foreach($L["partition_names"]as$y=>$X)echo'','\n\n";}echo input_token(),'

    ';}elseif(isset($_GET["indexes"])){$a=$_GET["indexes"];$Ld=array("PRIMARY","UNIQUE","INDEX");$S=table_status1($a,true);$Id=driver()->indexAlgorithms($S);if(preg_match('~MyISAM|M?aria'.(min_version(5.6,'10.0.5')?'|InnoDB':'').'~i',$S["Engine"]))$Ld[]="FULLTEXT";if(preg_match('~MyISAM|M?aria'.(min_version(5.7,'10.2.2')?'|InnoDB':'').'~i',$S["Engine"]))$Ld[]="SPATIAL";$w=indexes($a);$m=fields($a);$ng=array();if(JUSH=="mongo"){$ng=$w["_id_"];unset($Ld[0]);unset($w["_id_"]);}$L=$_POST;if($L)save_settings(array("index_options"=>$L["options"]));if($_POST&&!$k&&!$_POST["add"]&&!$_POST["drop_col"]){$ra=array();foreach($L["indexes"]as$v){$D=$v["name"];if(in_array($v["type"],$Ld)){$d=array();$we=array();$Rb=array();$Jd=(support("partial_indexes")?$v["partial"]:"");$Hd=(in_array($v["algorithm"],$Id)?$v["algorithm"]:"");$P=array();ksort($v["columns"]);foreach($v["columns"]as$y=>$c){if($c!=""){$ve=idx($v["lengths"],$y);$Pb=idx($v["descs"],$y);$P[]=($m[$c]?idf_escape($c):$c).($ve?"(".(+$ve).")":"").($Pb?" DESC":"");$d[]=$c;$we[]=($ve?:null);$Rb[]=$Pb;}}$yc=$w[$D];if($yc){ksort($yc["columns"]);ksort($yc["lengths"]);ksort($yc["descs"]);if($v["type"]==$yc["type"]&&array_values($yc["columns"])===$d&&(!$yc["lengths"]||array_values($yc["lengths"])===$we)&&array_values($yc["descs"])===$Rb&&$yc["partial"]==$Jd&&(!$Id||$yc["algorithm"]==$Hd)){unset($w[$D]);continue;}}if($d)$ra[]=array($v["type"],$D,$P,$Hd,$Jd);}}foreach($w as$D=>$yc)$ra[]=array($yc["type"],$D,"DROP");if(!$ra)redirect(ME."table=".urlencode($a));queries_redirect(ME."table=".urlencode($a),lang(183),alter_indexes($a,$ra));}page_header(lang(136),$k,array("table"=>$a),h($a));$Kc=array_keys($m);if($_POST["add"]){foreach($L["indexes"]as$y=>$v){if($v["columns"][count($v["columns"])]!="")$L["indexes"][$y]["columns"][]="";}$v=end($L["indexes"]);if($v["type"]||array_filter($v["columns"],'strlen'))$L["indexes"][]=array("columns"=>array(1=>""));}if(!$L){foreach($w as$y=>$v){$w[$y]["name"]=$y;$w[$y]["columns"][]="";}$w[]=array("columns"=>array(1=>""));$L["indexes"]=$w;}$we=(JUSH=="sql"||JUSH=="mssql");$kh=($_POST?$_POST["options"]:get_setting("index_options"));echo'
    ';if($ng){echo"
    ',lang(184);$Bd=" class='idxopts".($kh?"":" hidden")."'";if($Id)echo"".lang(185).doc_link(array('pgsql'=>'indexes-types.html',));echo'',lang(186).($we?" (".lang(187).")":"");if($we||support("descidx"))echo checkbox("options",1,$kh,lang(108),"indexOptionsShow(this.checked)","jsonly")."\n";echo'',lang(188);if(support("partial_indexes"))echo"".lang(189);echo'
    PRIMARY";foreach($ng["columns"]as$y=>$c)echo select_input(" disabled",$Kc,$c)," ";echo"\n";}$x=1;foreach($L["indexes"]as$v){if(!$_POST["drop_col"]||$x!=key($_POST["drop_col"])){echo"
    ".html_select("indexes[$x][type]",array(-1=>"")+$Ld,$v["type"],($x==count($L["indexes"])?"indexesAddRow.call(this);":""),"label-type");if($Id)echo"".html_select("indexes[$x][algorithm]",array_merge(array(""),$Id),$v['algorithm'],"label-algorithm");echo"";ksort($v["columns"]);$s=1;foreach($v["columns"]as$y=>$c){echo"".select_input(" name='indexes[$x][columns][$s]' title='".lang(46)."'",($m&&($c==""||$m[$c])?array_combine($Kc,$Kc):array()),$c,"partial(".($s==count($v["columns"])?"indexesAddColumn":"indexesChangeColumn").", '".js_escape(JUSH=="sql"?"":$_GET["indexes"]."_")."')"),"",($we?"":""),(support("descidx")?checkbox("indexes[$x][descs][$s]",1,idx($v["descs"],$y),lang(57)):"")," ";$s++;}echo"\n";if(support("partial_indexes"))echo"\n";echo"".icon("cross","drop_col[$x]","x",lang(112)).script("qsl('button').onclick = partial(editingRemoveRow, 'indexes\$1[type]');");}$x++;}echo'

    ',input_token(),'

    ';}elseif(isset($_GET["database"])){$L=$_POST;if($_POST&&!$k&&!$_POST["add"]){$D=trim($L["name"]);if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),lang(190),drop_databases(array(DB)));}elseif(DB!==$D){if(DB!=""){$_GET["db"]=$D;queries_redirect(preg_replace('~\bdb=[^&]*&~','',ME)."db=".urlencode($D),lang(191),rename_database($D,$L["collation"]));}else{$i=explode("\n",str_replace("\r","",$D));$Ah=true;$pe="";foreach($i as$j){if(count($i)==1||$j!=""){if(!create_database($j,$L["collation"]))$Ah=false;$pe=$j;}}restart_session();set_session("dbs",null);queries_redirect(ME."db=".urlencode($pe),lang(192),$Ah);}}else{if(!$L["collation"])redirect(substr(ME,0,-1));query_redirect("ALTER DATABASE ".idf_escape($D).(preg_match('~^[a-z0-9_]+$~i',$L["collation"])?" COLLATE $L[collation]":""),substr(ME,0,-1),lang(193));}}page_header(DB!=""?lang(65):lang(116),$k,array(),h(DB));$eb=collations();$D=DB;if($_POST)$D=$L["name"];elseif(DB!="")$L["collation"]=db_collation(DB,$eb);elseif(JUSH=="sql"){foreach(get_vals("SHOW GRANTS")as$fd){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\.\*)?~',$fd,$B)&&$B[1]){$D=stripcslashes(idf_unescape("`$B[2]`"));break;}}}echo'

    ',($_POST["add"]||strpos($D,"\n")?'
    ':'')."\n".($eb?html_select("collation",array(""=>"(".lang(102).")")+$eb,$L["collation"]).'':""),' ';if(DB!="")echo"".confirm(lang(178,DB))."\n";elseif(!$_POST["add"]&&$_GET["db"]=="")echo icon("plus","add[0]","+",lang(109))."\n";echo input_token(),'

    ';}elseif(isset($_GET["scheme"])){$L=$_POST;if($_POST&&!$k){$_=preg_replace('~ns=[^&]*&~','',ME)."ns=";if($_POST["drop"])query_redirect("DROP SCHEMA ".idf_escape($_GET["ns"]),$_,lang(194));else{$D=trim($L["name"]);$_ .=urlencode($D);if($_GET["ns"]=="")query_redirect("CREATE SCHEMA ".idf_escape($D),$_,lang(195));elseif($_GET["ns"]!=$D)query_redirect("ALTER SCHEMA ".idf_escape($_GET["ns"])." RENAME TO ".idf_escape($D),$_,lang(196));else redirect($_);}}page_header($_GET["ns"]!=""?lang(66):lang(67),$k);if(!$L)$L["name"]=$_GET["ns"];echo'

    ';if($_GET["ns"]!="")echo"".confirm(lang(178,$_GET["ns"]))."\n";echo input_token(),'

    ';}elseif(isset($_GET["call"])){$ba=($_GET["name"]?:$_GET["call"]);page_header(lang(197).": ".h($ba),$k);$Mg=routine($_GET["call"],(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$Ed=array();$Hf=array();foreach($Mg["fields"]as$s=>$l){if(substr($l["inout"],-3)=="OUT"&&JUSH=='sql')$Hf[$s]="@".idf_escape($l["field"])." AS ".idf_escape($l["field"]);if(!$l["inout"]||substr($l["inout"],0,2)=="IN")$Ed[]=$s;}if(!$k&&$_POST){$Oa=array();foreach($Mg["fields"]as$y=>$l){$X="";if(in_array($y,$Ed)){$X=process_input($l);if($X===false)$X="''";if(isset($Hf[$y]))connection()->query("SET @".idf_escape($l["field"])." = $X");}if(isset($Hf[$y]))$Oa[]="@".idf_escape($l["field"]);elseif(in_array($y,$Ed))$Oa[]=$X;}$I=(isset($_GET["callf"])?"SELECT ":"CALL ").(idx($Mg["returns"],"type")=="record"?"* FROM ":"").table($ba)."(".implode(", ",$Oa).")";$wh=microtime(true);$J=connection()->multi_query($I);$ma=connection()->affected_rows;echo adminer()->selectQuery($I,$wh,!$J);if(!$J)echo"

    ".error()."\n";else{$g=connect();if($g)$g->select_db(DB);do{$J=connection()->store_result();if(is_object($J))print_select_result($J,$g);else echo"

    ".lang(198,$ma)." ".@date("H:i:s")."\n";}while(connection()->next_result());if($Hf)print_select_result(connection()->query("SELECT ".implode(", ",$Hf)));}}echo'

    ';if($Ed){echo"\n";foreach($Ed as$y){$l=$Mg["fields"][$y];$D=$l["field"];echo"
    ".adminer()->fieldName($l);$Y=idx($_POST["fields"],$D);if($Y!=""){if($l["type"]=="set")$Y=implode(",",$Y);}input($l,$Y,idx($_POST["function"],$D,""));echo"\n";}echo"
    \n";}echo'

    ',input_token(),'

    ';function
    pre_tr($Pg){return
    preg_replace('~^~m','',preg_replace('~\|~','',preg_replace('~\|$~m',"",rtrim($Pg))));}$R='(\+--[-+]+\+\n)';$L='(\| .* \|\n)';echo
    preg_replace_callback("~^$R?$L$R?($L*)$R?~m",function($B){$Oc=pre_tr($B[2]);return"\n".($B[1]?"$Oc\n":$Oc).pre_tr($B[4])."\n
    ";},preg_replace('~(\n( -|mysql)> )(.+)~',"\\1\\3",preg_replace('~(.+)\n---+\n~',"\\1\n",h($Mg['comment']))));echo'
    ';}elseif(isset($_GET["foreign"])){$a=$_GET["foreign"];$D=$_GET["name"];$L=$_POST;if($_POST&&!$k&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){if(!$_POST["drop"]){$L["source"]=array_filter($L["source"],'strlen');ksort($L["source"]);$Ph=array();foreach($L["source"]as$y=>$X)$Ph[$y]=$L["target"][$y];$L["target"]=$Ph;}if(JUSH=="sqlite")$J=recreate_table($a,$a,array(),array(),array(" $D"=>($L["drop"]?"":" ".format_foreign_key($L))));else{$ra="ALTER TABLE ".table($a);$J=($D==""||queries("$ra DROP ".(JUSH=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($D)));if(!$L["drop"])$J=queries("$ra ADD".format_foreign_key($L));}queries_redirect(ME."table=".urlencode($a),($L["drop"]?lang(199):($D!=""?lang(200):lang(201))),$J);if(!$L["drop"])$k=lang(202);}page_header(lang(203),$k,array("table"=>$a),h($a));if($_POST){ksort($L["source"]);if($_POST["add"])$L["source"][]="";elseif($_POST["change"]||$_POST["change-js"])$L["target"]=array();}elseif($D!=""){$Xc=foreign_keys($a);$L=$Xc[$D];$L["source"][]="";}else{$L["table"]=$a;$L["source"]=array("");}echo'
    ';$ph=array_keys(fields($a));if($L["db"]!="")connection()->select_db($L["db"]);if($L["ns"]!=""){$Ef=get_schema();set_schema($L["ns"]);}$_g=array_keys(array_filter(table_status('',true),'Adminer\fk_support'));$Ph=array_keys(fields(in_array($L["table"],$_g)?$L["table"]:reset($_g)));$qf="this.form['change-js'].value = '1'; this.form.submit();";echo"

    \n";if(support("scheme")){$Rg=array_filter(adminer()->schemas(),function($Qg){return!preg_match('~^information_schema$~i',$Qg);});echo"";if($L["ns"]!="")set_schema($Ef);}elseif(JUSH!="sqlite"){$Hb=array();foreach(adminer()->databases()as$j){if(!information_schema($j))$Hb[]=$j;}echo"";}echo input_hidden("change-js"),'

    ';$x=0;foreach($L["source"]as$y=>$X){echo"","
    ',lang(138),'',lang(139),'
    ".html_select("source[".(+$y)."]",array(-1=>"")+$ph,$X,($x==count($L["source"])-1?"foreignAddRow.call(this);":""),"label-source"),"".html_select("target[".(+$y)."]",$Ph,idx($L["target"],$y),"","label-target");$x++;}echo'

    ',(DRIVER==='pgsql'?html_select("deferrable",array('NOT DEFERRABLE','DEFERRABLE','DEFERRABLE INITIALLY DEFERRED'),$L["deferrable"]).' ':''),doc_link(array('pgsql'=>"sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES",)),'

    ';if($D!="")echo'',confirm(lang(178,$D));echo input_token(),'

    ';}elseif(isset($_GET["view"])){$a=$_GET["view"];$L=$_POST;$Ff="VIEW";if(JUSH=="pgsql"&&$a!=""){$Q=table_status1($a);$Ff=strtoupper($Q["Engine"]);}if($_POST&&!$k){$D=trim($L["name"]);$va=" AS\n$L[select]";$A=ME."table=".urlencode($D);$C=lang(207);$U=($_POST["materialized"]?"MATERIALIZED VIEW":"VIEW");if(!$_POST["drop"]&&$a==$D&&JUSH!="sqlite"&&$U=="VIEW"&&$Ff=="VIEW")query_redirect((JUSH=="mssql"?"ALTER":"CREATE OR REPLACE")." VIEW ".table($D).$va,$A,$C);else{$Rh=$D."_adminer_".uniqid();drop_create("DROP $Ff ".table($a),"CREATE $U ".table($D).$va,"DROP $U ".table($D),"CREATE $U ".table($Rh).$va,"DROP $U ".table($Rh),($_POST["drop"]?substr(ME,0,-1):$A),lang(208),$C,lang(209),$a,$D);}}if(!$_POST&&$a!=""){$L=view($a);$L["name"]=$a;$L["materialized"]=($Ff!="VIEW");if(!$k)$k=error();}page_header(($a!=""?lang(41):lang(210)),$k,array("table"=>$a),h($a));echo'

    ',lang(188),': ',(support("materializedview")?" ".checkbox("materialized",1,$L["materialized"],lang(132)):""),'

    ';textarea("select",$L["select"]);echo'

    ';if($a!="")echo'',confirm(lang(178,$a));echo input_token(),'

    ';}elseif(isset($_GET["procedure"])){$ba=($_GET["name"]?:$_GET["procedure"]);$Mg=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$L=$_POST;$L["fields"]=(array)$L["fields"];if($_POST&&!process_fields($L["fields"])&&!$k){$Bf=routine($_GET["procedure"],$Mg);$Rh="$L[name]_adminer_".uniqid();foreach($L["fields"]as$y=>$l){if($l["field"]=="")unset($L["fields"][$y]);}drop_create("DROP $Mg ".routine_id($ba,$Bf),create_routine($Mg,$L),"DROP $Mg ".routine_id($L["name"],$L),create_routine($Mg,array("name"=>$Rh)+$L),"DROP $Mg ".routine_id($Rh,$L),substr(ME,0,-1),lang(211),lang(212),lang(213),$ba,$L["name"]);}page_header(($ba!=""?(isset($_GET["function"])?lang(214):lang(215)).": ".h($ba):(isset($_GET["function"])?lang(216):lang(217))),$k);if(!$_POST){if($ba=="")$L["language"]="sql";else{$L=routine($_GET["procedure"],$Mg);$L["name"]=$ba;}}$eb=get_vals("SHOW CHARACTER SET");sort($eb);$Ng=routine_languages();echo($eb?"".optionlist($eb)."":""),'

    ',lang(188),': ',($Ng?"\n":""),'

    ';edit_fields($L["fields"],$eb,$Mg);if(isset($_GET["function"])){echo"
    ".lang(218);edit_type("returns",(array)$L["returns"],$eb,array(),(JUSH=="pgsql"?array("void","trigger"):array()));}echo'
    ',script("editFields();"),'

    ';textarea("definition",$L["definition"],20);echo'

    ';if($ba!="")echo'',confirm(lang(178,$ba));echo input_token(),'

    ';}elseif(isset($_GET["sequence"])){$da=$_GET["sequence"];$L=$_POST;if($_POST&&!$k){$_=substr(ME,0,-1);$D=trim($L["name"]);if($_POST["drop"])query_redirect("DROP SEQUENCE ".idf_escape($da),$_,lang(219));elseif($da=="")query_redirect("CREATE SEQUENCE ".idf_escape($D),$_,lang(220));elseif($da!=$D)query_redirect("ALTER SEQUENCE ".idf_escape($da)." RENAME TO ".idf_escape($D),$_,lang(221));else redirect($_);}page_header($da!=""?lang(222).": ".h($da):lang(223),$k);if(!$L)$L["name"]=$da;echo'

    ';if($da!="")echo"".confirm(lang(178,$da))."\n";echo input_token(),'

    ';}elseif(isset($_GET["type"])){$ea=$_GET["type"];$L=$_POST;if($_POST&&!$k){$_=substr(ME,0,-1);if($_POST["drop"])query_redirect("DROP TYPE ".idf_escape($ea),$_,lang(224));else query_redirect("CREATE TYPE ".idf_escape(trim($L["name"]))." $L[as]",$_,lang(225));}page_header($ea!=""?lang(226).": ".h($ea):lang(227),$k);if(!$L)$L["as"]="AS ";echo'

    ';if($ea!=""){$ti=driver()->types();$qc=type_values($ti[$ea]);if($qc)echo"ENUM (".h($qc).")\n

    ";echo"".confirm(lang(178,$ea))."\n";}else{echo lang(188).": \n",doc_link(array('pgsql'=>"datatype-enum.html",),"?");textarea("as",$L["as"]);echo"

    \n";}echo input_token(),'

    ';}elseif(isset($_GET["check"])){$a=$_GET["check"];$D=$_GET["name"];$L=$_POST;if($L&&!$k){if(JUSH=="sqlite")$J=recreate_table($a,$a,array(),array(),array(),"",array(),"$D",($L["drop"]?"":$L["clause"]));else{$J=($D==""||queries("ALTER TABLE ".table($a)." DROP CONSTRAINT ".idf_escape($D)));if(!$L["drop"])$J=queries("ALTER TABLE ".table($a)." ADD".($L["name"]!=""?" CONSTRAINT ".idf_escape($L["name"]):"")." CHECK ($L[clause])");}queries_redirect(ME."table=".urlencode($a),($L["drop"]?lang(228):($D!=""?lang(229):lang(230))),$J);}page_header(($D!=""?lang(231).": ".h($D):lang(143)),$k,array("table"=>$a));if(!$L){$Ua=driver()->checkConstraints($a);$L=array("name"=>$D,"clause"=>$Ua[$D]);}echo'

    ';if(JUSH!="sqlite")echo lang(188).': ';echo doc_link(array('pgsql'=>"ddl-constraints.html#DDL-CONSTRAINTS-CHECK-CONSTRAINTS",),"?"),'

    ';textarea("clause",$L["clause"]);echo'

    ';if($D!="")echo'',confirm(lang(178,$D));echo input_token(),'

    ';}elseif(isset($_GET["trigger"])){$a=$_GET["trigger"];$D="$_GET[name]";$pi=trigger_options();$L=(array)trigger($D,$a)+array("Trigger"=>$a."_bi");if($_POST){if(!$k&&in_array($_POST["Timing"],$pi["Timing"])&&in_array($_POST["Event"],$pi["Event"])&&in_array($_POST["Type"],$pi["Type"])){$of=" ON ".table($a);$Yb="DROP TRIGGER ".idf_escape($D).(JUSH=="pgsql"?$of:"");$A=ME."table=".urlencode($a);if($_POST["drop"])query_redirect($Yb,$A,lang(232));else{if($D!="")queries($Yb);queries_redirect($A,($D!=""?lang(233):lang(234)),queries(create_trigger($of,$_POST)));if($D!="")queries(create_trigger($of,$L+array("Type"=>reset($pi["Type"]))));}}$L=$_POST;}page_header(($D!=""?lang(235).": ".h($D):lang(236)),$k,array("table"=>$a));echo'
    ',lang(237),'',html_select("Timing",$pi["Timing"],$L["Timing"],"triggerChange(/^".preg_quote($a,"/")."_[ba][iud]$/, '".js_escape($a)."', this.form);"),'
    ',lang(238),'',html_select("Event",$pi["Event"],$L["Event"],"this.form['Timing'].onchange();"),(in_array("UPDATE OF",$pi["Event"])?" ":""),'
    ',lang(47),'',html_select("Type",$pi["Type"],$L["Type"]),'

    ',lang(188),': ',script("qs('#form')['Timing'].onchange();"),'

    ';textarea("Statement",$L["Statement"]);echo'

    ';if($D!="")echo'',confirm(lang(178,$D));echo input_token(),'

    ';}elseif(isset($_GET["processlist"])){if(support("kill")){if($_POST&&!$k){$ke=0;foreach((array)$_POST["kill"]as$X){if(adminer()->killProcess($X))$ke++;}queries_redirect(ME."processlist=",lang(239,$ke),$ke||!$_POST["kill"]);}}page_header(lang(117),$k);echo'
    ',script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});");$s=-1;foreach(adminer()->processList()as$s=>$L){if(!$s){echo"".(support("kill")?"\n";}echo"".(support("kill")?"
    ":"");foreach($L as$y=>$X)echo"$y".doc_link(array('pgsql'=>"monitoring-stats.html#PG-STAT-ACTIVITY-VIEW",));echo"
    ".checkbox("kill[]",$L[JUSH=="sql"?"Id":"pid"],0):"");foreach($L as$y=>$X)echo"".((JUSH=="sql"&&$y=="Info"&&preg_match("~Query|Killed~",$L["Command"])&&$X!="")||(JUSH=="pgsql"&&$y=="current_query"&&$X!="")||(JUSH=="oracle"&&$y=="sql_text"&&$X!="")?"".shorten_utf8($X,100,"").' '.lang(240).'':h($X));echo"\n";}echo'

    ';if(support("kill"))echo($s+1)."/".lang(241,max_connections()),"

    \n";echo input_token(),'

    ',script("tableCheck();");}elseif(isset($_GET["select"])){$a=$_GET["select"];$S=table_status1($a);$w=indexes($a);$m=fields($a);$Xc=column_foreign_keys($a);$mf=$S["Oid"];$la=get_settings("adminer_import");$Kg=array();$d=array();$Vg=array();$yf=array();$Vh="";foreach($m as$y=>$l){$D=adminer()->fieldName($l);$cf=html_entity_decode(strip_tags($D),ENT_QUOTES);if(isset($l["privileges"]["select"])&&$D!=""){$d[$y]=$cf;if(is_shortable($l))$Vh=adminer()->selectLengthProcess();}if(isset($l["privileges"]["where"])&&$D!="")$Vg[$y]=$cf;if(isset($l["privileges"]["order"])&&$D!="")$yf[$y]=$cf;$Kg+=$l["privileges"];}list($N,$r)=adminer()->selectColumnsProcess($d,$w);$N=array_unique($N);$r=array_unique($r);$be=count($r)selectSearchProcess($m,$w);$xf=adminer()->selectOrderProcess($m,$w);$z=adminer()->selectLimitProcess();if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$xi=>$L){$va=convert_field($m[key($L)]);$N=array($va?:idf_escape(key($L)));$Z[]=where_check($xi,$m);$K=driver()->select($a,$N,$Z,$N);if($K)echo first($K->fetch_row());}exit;}$ng=$zi=array();foreach($w as$v){if($v["type"]=="PRIMARY"){$ng=array_flip($v["columns"]);$zi=($N?$ng:array());foreach($zi as$y=>$X){if(in_array(idf_escape($y),$N))unset($zi[$y]);}break;}}if($mf&&!$ng){$ng=$zi=array($mf=>0);$w[]=array("type"=>"PRIMARY","columns"=>array($mf));}if($_POST&&!$k){$Zi=$Z;if(!$_POST["all"]&&is_array($_POST["check"])){$Ua=array();foreach($_POST["check"]as$Qa)$Ua[]=where_check($Qa,$m);$Zi[]="((".implode(") OR (",$Ua)."))";}$Zi=($Zi?"\nWHERE ".implode(" AND ",$Zi):"");if($_POST["export"]){save_settings(array("output"=>$_POST["output"],"format"=>$_POST["format"]),"adminer_import");dump_headers($a);adminer()->dumpTable($a,"");$bd=($N?implode(", ",$N):"*").convert_fields($d,$m,$N)."\nFROM ".table($a);$hd=($r&&$be?"\nGROUP BY ".implode(", ",$r):"").($xf?"\nORDER BY ".implode(", ",$xf):"");$I="SELECT $bd$Zi$hd";if(is_array($_POST["check"])&&!$ng){$vi=array();foreach($_POST["check"]as$X)$vi[]="(SELECT".limit($bd,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$m).$hd,1).")";$I=implode(" UNION ALL ",$vi);}adminer()->dumpData($a,"table",$I);adminer()->dumpFooter();exit;}if(!adminer()->selectEmailProcess($Z,$Xc)){if($_POST["save"]||$_POST["delete"]){$J=true;$ma=0;$P=array();if(!$_POST["delete"]){foreach($_POST["fields"]as$D=>$X){$X=process_input($m[$D]);if($X!==null&&($_POST["clone"]||$X!==false))$P[idf_escape($D)]=($X!==false?$X:idf_escape($D));}}if($_POST["delete"]||$P){$I=($_POST["clone"]?"INTO ".table($a)." (".implode(", ",array_keys($P)).")\nSELECT ".implode(", ",$P)."\nFROM ".table($a):"");if($_POST["all"]||($ng&&is_array($_POST["check"]))||$be){$J=($_POST["delete"]?driver()->delete($a,$Zi):($_POST["clone"]?queries("INSERT $I$Zi".driver()->insertReturning($a)):driver()->update($a,$P,$Zi)));$ma=connection()->affected_rows;if(is_object($J))$ma+=$J->num_rows;}else{foreach((array)$_POST["check"]as$X){$Yi="\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$m);$J=($_POST["delete"]?driver()->delete($a,$Yi,1):($_POST["clone"]?queries("INSERT".limit1($a,$I,$Yi)):driver()->update($a,$P,$Yi,1)));if(!$J)break;$ma+=connection()->affected_rows;}}}$C=lang(243,$ma);if($_POST["clone"]&&$J&&$ma==1){$qe=last_id($J);if($qe)$C=lang(171," $qe");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$C,$J);if(!$_POST["delete"]){$ig=(array)$_POST["fields"];edit_form($a,array_intersect_key($m,$ig),$ig,!$_POST["clone"],$k);page_footer();exit;}}elseif(!$_POST["import"]){if(!$_POST["val"])$k=lang(244);else{$J=true;$ma=0;foreach($_POST["val"]as$xi=>$L){$P=array();foreach($L as$y=>$X){$y=bracket_escape($y,true);$P[idf_escape($y)]=(preg_match('~char|text~',$m[$y]["type"])||$X!=""?adminer()->processInput($m[$y],$X):"NULL");}$J=driver()->update($a,$P," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($xi,$m),($be||$ng?0:1)," ");if(!$J)break;$ma+=connection()->affected_rows;}queries_redirect(remove_from_uri(),lang(243,$ma),$J);}}elseif(!is_string($Lc=get_file("csv_file",true)))$k=upload_error($Lc);elseif(!preg_match('~~u',$Lc))$k=lang(245);else{save_settings(array("output"=>$la["output"],"format"=>$_POST["separator"]),"adminer_import");$J=true;$fb=array_keys($m);preg_match_all('~(?>"[^"]*"|[^"\r\n]+)+~',$Lc,$De);$ma=count($De[0]);driver()->begin();$bh=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));$M=array();foreach($De[0]as$y=>$X){preg_match_all("~((?>\"[^\"]*\")+|[^$bh]*)$bh~",$X.$bh,$Ee);if(!$y&&!array_diff($Ee[1],$fb)){$fb=$Ee[1];$ma--;}else{$P=array();foreach($Ee[1]as$s=>$bb)$P[idf_escape($fb[$s])]=($bb==""&&$m[$fb[$s]]["null"]?"NULL":q(preg_match('~^".*"$~s',$bb)?str_replace('""','"',substr($bb,1,-1)):$bb));$M[]=$P;}}$J=(!$M||driver()->insertUpdate($a,$M,$ng));if($J)driver()->commit();queries_redirect(remove_from_uri("page"),lang(246,$ma),$J);driver()->rollback();}}}$Gh=adminer()->tableName($S);if(is_ajax()){page_headers();ob_start();}else page_header(lang(51).": $Gh",$k);$P=null;if(isset($Kg["insert"])||!support("table")){$Mf=array();foreach((array)$_GET["where"]as$X){if(isset($Xc[$X["col"]])&&count($Xc[$X["col"]])==1&&($X["op"]=="="||(!$X["op"]&&(is_array($X["val"])||!preg_match('~[_%]~',$X["val"])))))$Mf["set"."[".bracket_escape($X["col"])."]"]=$X["val"];}$P=$Mf?"&".http_build_query($Mf):"";}adminer()->selectLinks($S,$P);if(!$d&&support("table"))echo"

    ".lang(247).($m?".":": ".error())."\n";else{echo"

    \n","
    ";hidden_fields_get();echo(DB!=""?input_hidden("db",DB).(isset($_GET["ns"])?input_hidden("ns",$_GET["ns"]):""):""),input_hidden("select",$a),"
    \n";adminer()->selectColumnsPrint($N,$d);adminer()->selectSearchPrint($Z,$Vg,$w);adminer()->selectOrderPrint($xf,$yf,$w);adminer()->selectLimitPrint($z);adminer()->selectLengthPrint($Vh);adminer()->selectActionPrint($w);echo"
    \n";$F=$_GET["page"];$ad=null;if($F=="last"){$ad=get_val(count_rows($a,$Z,$be,$r));$F=floor(max(0,intval($ad)-1)/$z);}$Wg=$N;$gd=$r;if(!$Wg){$Wg[]="*";$tb=convert_fields($d,$m,$N);if($tb)$Wg[]=substr($tb,2);}foreach($N as$y=>$X){$l=$m[idf_unescape($X)];if($l&&($va=convert_field($l)))$Wg[$y]="$va AS $X";}if(!$be&&$zi){foreach($zi as$y=>$X){$Wg[]=idf_escape($y);if($gd)$gd[]=idf_escape($y);}}$J=driver()->select($a,$Wg,$Z,$gd,$xf,$z,$F,true);if(!$J)echo"

    ".error()."\n";else{if(JUSH=="mssql"&&$F)$J->seek($z*$F);$jc=array();echo"

    \n";$M=array();while($L=$J->fetch_assoc()){if($F&&JUSH=="oracle")unset($L["RNUM"]);$M[]=$L;}if($_GET["page"]!="last"&&$z&&$r&&$be&&JUSH=="sql")$ad=get_val(" SELECT FOUND_ROWS()");if(!$M)echo"

    ".lang(14)."\n";else{$Ba=adminer()->backwardKeys($a,$Gh);echo"

    ","",script("mixin(qs('#table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true), onkeydown: editingKeydown});"),"".(!$r&&$N?"":"\n";if(is_ajax())ob_end_clean();foreach(adminer()->rowDescriptions($M,$Xc)as$bf=>$L){$wi=unique_array($M[$bf],$w);if(!$wi){$wi=array();reset($N);foreach($M[$bf]as$y=>$X){if(!preg_match('~^(COUNT|AVG|GROUP_CONCAT|MAX|MIN|SUM)\(~',current($N)))$wi[$y]=$X;next($N);}}$xi="";foreach($wi as$y=>$X){$l=(array)$m[$y];if((JUSH=="sql"||JUSH=="pgsql")&&preg_match('~char|text|enum|set~',$l["type"])&&strlen($X)>64){$y=(strpos($y,'(')?$y:idf_escape($y));$y="MD5(".(JUSH!='sql'||preg_match("~^utf8~",$l["collation"])?$y:"CONVERT($y USING ".charset(connection()).")").")";$X=md5($X);}$xi .="&".($X!==null?urlencode("where[".bracket_escape($y)."]")."=".urlencode($X===false?"f":$X):"null%5B%5D=".urlencode($y));}echo"".(!$r&&$N?"":"\n";}if(is_ajax())exit;echo"
    ".script("qs('#all-page').onclick = partial(formCheck, /check/);","")." ".lang(248)."");$df=array();$dd=array();reset($N);$xg=1;foreach($M[0]as$y=>$X){if(!isset($zi[$y])){$X=idx($_GET["columns"],key($N))?:array();$l=$m[$N?($X?$X["col"]:current($N)):$y];$D=($l?adminer()->fieldName($l,$xg):($X["fun"]?"*":h($y)));if($D!=""){$xg++;$df[$y]=$D;$c=idf_escape($y);$xd=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($y);$Pb="&desc%5B0%5D=1";echo"".script("mixin(qsl('th'), {onmouseover: partial(columnMouse), onmouseout: partial(columnMouse, ' hidden')});","");$cd=apply_sql_function($X["fun"],$D);$oh=isset($l["privileges"]["order"])||$cd!=$D;echo($oh?"$cd":$cd);$Pe=($oh?"":'');if(!$X["fun"]&&isset($l["privileges"]["where"])){$Pe .=' =';$Pe .=script("qsl('a').onclick = partial(selectSearch, '".js_escape($y)."');");}echo($Pe?"":"");}$dd[$y]=$X["fun"];next($N);}}$we=array();if($_GET["modify"]){foreach($M as$L){foreach($L as$y=>$X)$we[$y]=max($we[$y],min(40,strlen(utf8_decode($X))));}}echo($Ba?"".lang(249):"")."
    ".checkbox("check[]",substr($xi,1),in_array(substr($xi,1),(array)$_POST["check"])).($be||information_schema(DB)?"":" ".lang(250).""));reset($N);foreach($L as$y=>$X){if(isset($df[$y])){$c=current($N);$l=(array)$m[$y];if($X!=""&&(!isset($jc[$y])||$jc[$y]!=""))$jc[$y]=(is_mail($X)?$df[$y]:"");$_="";if(is_blob($l)&&$X!="")$_=ME.'download='.urlencode($a).'&field='.urlencode($y).$xi;if(!$_&&$X!==null){foreach((array)$Xc[$y]as$o){if(count($Xc[$y])==1||end($o["source"])==$y){$_="";foreach($o["source"]as$s=>$ph)$_ .=where_link($s,$o["target"][$s],$M[$bf][$ph]);$_=($o["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\1'.urlencode($o["db"]),ME):ME).'select='.urlencode($o["table"]).$_;if($o["ns"])$_=preg_replace('~([?&]ns=)[^&]+~','\1'.urlencode($o["ns"]),$_);if(count($o["source"])==1)break;}}}if($c=="COUNT(*)"){$_=ME."select=".urlencode($a);$s=0;foreach((array)$_GET["where"]as$W){if(!array_key_exists($W["col"],$wi))$_ .=where_link($s++,$W["col"],$W["val"],$W["op"]);}foreach($wi as$he=>$W)$_ .=where_link($s++,$he,$W);}$yd=select_value($X,$_,$l,$Vh);$t=h("val[$xi][".bracket_escape($y)."]");$jg=idx(idx($_POST["val"],$xi),bracket_escape($y));$ec=!is_array($L[$y])&&is_utf8($yd)&&$M[$bf][$y]==$L[$y]&&!$dd[$y]&&!$l["generated"];$U=(preg_match('~^(AVG|MIN|MAX)\((.+)\)~',$c,$B)?$m[idf_unescape($B[2])]["type"]:$l["type"]);$Th=preg_match('~text|json|lob~',$U);$ce=preg_match(number_type(),$U)||preg_match('~^(CHAR_LENGTH|ROUND|FLOOR|CEIL|TIME_TO_SEC|COUNT|SUM)\(~',$c);echo"".($Th?"":"");}else{$Ae=strpos($yd,"");echo" data-text='".($Ae?2:($Th?1:0))."'".($ec?"":" data-warning='".h(lang(251))."'").">$yd";}}next($N);}if($Ba)echo"";adminer()->backwardKeysPrint($Ba,$M[$bf]);echo"
    \n","
    \n";}if(!is_ajax()){if($M||$F){$wc=true;if($_GET["page"]!="last"){if(!$z||(count($M)<$z&&($M||!$F)))$ad=($F?$F*$z:0)+count($M);elseif(JUSH!="sql"||!$be){$ad=($be?false:found_rows($S,$Z));if(intval($ad)$z||$F));if($Kf)echo(($ad===false?count($M)+1:$ad-$F*$z)>$z?'

    '.lang(252).''.script("qsl('a').onclick = partial(selectLoadMore, $z, '".lang(253)."…');",""):''),"\n";echo"

    \n";}if(adminer()->selectImportPrint())echo"

    ","".lang(73)."",script("qsl('a').onclick = partial(toggle, 'import');",""),"";echo input_token(),"

    \n",(!$r&&$N?"":script("tableCheck();"));}}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["variables"])){$Q=isset($_GET["status"]);page_header($Q?lang(119):lang(118));$Pi=($Q?adminer()->showStatus():adminer()->showVariables());if(!$Pi)echo"

    ".lang(14)."\n";else{echo"\n";foreach($Pi as$L){echo"";$y=array_shift($L);echo"
    ".h($y)."";foreach($L as$X)echo"".nl_br(h($X));}echo"
    \n";}}elseif(isset($_GET["script"])){header("Content-Type: text/javascript; charset=utf-8");if($_GET["script"]=="db"){$Dh=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$D=>$S){json_row("Comment-$D",h($S["Comment"]));if(!is_view($S)||preg_match('~materialized~i',$S["Engine"])){foreach(array("Engine","Collation")as$y)json_row("$y-$D",h($S[$y]));foreach($Dh+array("Auto_increment"=>0,"Rows"=>0)as$y=>$X){if($S[$y]!=""){$X=format_number($S[$y]);if($X>=0)json_row("$y-$D",($y=="Rows"&&$X&&$S["Engine"]==(JUSH=="pgsql"?"table":"InnoDB")?"~ $X":$X));if(isset($Dh[$y]))$Dh[$y]+=($S["Engine"]!="InnoDB"||$y!="Data_free"?$S[$y]:0);}elseif(array_key_exists($y,$S))json_row("$y-$D","?");}}}foreach($Dh as$y=>$X)json_row("sum-$y",format_number($X));json_row("");}elseif($_GET["script"]=="kill")connection()->query("KILL ".number($_POST["kill"]));else{foreach(count_tables(adminer()->databases())as$j=>$X){json_row("tables-$j",$X);json_row("size-$j",db_size($j));}json_row("");}exit;}else{$Nh=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($Nh&&!$k&&!$_POST["search"]){$J=true;$C="";if(JUSH=="sql"&&$_POST["tables"]&&count($_POST["tables"])>1&&($_POST["drop"]||$_POST["truncate"]||$_POST["copy"]))queries("SET foreign_key_checks = 0");if($_POST["truncate"]){if($_POST["tables"])$J=truncate_tables($_POST["tables"]);$C=lang(257);}elseif($_POST["move"]){$J=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$C=lang(258);}elseif($_POST["copy"]){$J=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$C=lang(259);}elseif($_POST["drop"]){if($_POST["views"])$J=drop_views($_POST["views"]);if($J&&$_POST["tables"])$J=drop_tables($_POST["tables"]);$C=lang(260);}elseif(JUSH=="sqlite"&&$_POST["check"]){foreach((array)$_POST["tables"]as$R){foreach(get_rows("PRAGMA integrity_check(".q($R).")")as$L)$C .="".h($R).": ".h($L["integrity_check"])."
    ";}}elseif(JUSH!="sql"){$J=(JUSH=="sqlite"?queries("VACUUM"):apply_queries("VACUUM".($_POST["optimize"]?"":" ANALYZE"),$_POST["tables"]));$C=lang(261);}elseif(!$_POST["tables"])$C=lang(11);elseif($J=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('Adminer\idf_escape',$_POST["tables"])))){while($L=$J->fetch_assoc())$C .="".h($L["Table"]).": ".h($L["Msg_text"])."
    ";}queries_redirect(substr(ME,0,-1),$C,$J);}page_header(($_GET["ns"]==""?lang(35).": ".h(DB):lang(77).": ".h($_GET["ns"])),$k,true);if(adminer()->homepage()){if($_GET["ns"]!==""){echo"

    ".lang(262)."

    \n";$Mh=tables_list();if(!$Mh)echo"

    ".lang(11)."\n";else{echo"

    \n";if(support("table")){echo"
    ".lang(263)."
    ",html_select("op",adminer()->operators(),idx($_POST,"op",JUSH=="elastic"?"should":"LIKE %%"))," ",script("qsl('input').onkeydown = partialArg(bodyKeydown, 'search');","")," \n","
    \n";if($_POST["search"]&&$_POST["query"]!=""){$_GET["where"][0]["op"]=$_POST["op"];search_tables();}}echo"
    \n","\n",script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"),'','\n";$T=0;foreach($Mh as$D=>$U){$Si=($U!==null&&!preg_match('~table|sequence~i',$U));$t=h("Table-".$D);echo'
    '.script("qs('#check-all').onclick = partial(formCheck, /^(tables|views)\[/);",""),''.lang(134);$d=array("Engine"=>array(lang(264).''));if(collations())$d["Collation"]=array(lang(123).'');if(function_exists('Adminer\alter_table'))$d["Data_length"]=array(lang(265).doc_link(array('pgsql'=>'functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT',)),"create",lang(42));if(support('indexes'))$d["Index_length"]=array(lang(266).doc_link(array('pgsql'=>'functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT')),"indexes",lang(137));$d["Data_free"]=array(lang(267).'',"edit",lang(43));if(function_exists('Adminer\alter_table'))$d["Auto_increment"]=array(lang(49).'',"auto_increment=1&create",lang(42));$d["Rows"]=array(lang(268).doc_link(array('pgsql'=>'catalog-pg-class.html#CATALOG-PG-CLASS',)),"select",lang(39));if(support("comment"))$d["Comment"]=array(lang(48).doc_link(array('pgsql'=>'functions-info.html#FUNCTIONS-INFO-COMMENT-TABLE')));foreach($d as$c)echo"$c[0]";echo"
    '.checkbox(($Si?"views[]":"tables[]"),$D,in_array("$D",$Nh,true),"","","",$t),''.(support("table")||support("indexes")?"".h($D).'':h($D));if($Si&&!preg_match('~materialized~i',$U)){$Zh=lang(133);echo''.(support("view")?"$Zh":$Zh),'?';}else{foreach($d as$y=>$c){$t=" id='$y-".h($D)."'";echo($c[1]?"?":"");}$T++;}echo"\n";}echo"
    ".lang(241,count($Mh)),"".h(JUSH=="sql"?get_val("SELECT @@default_storage_engine"):""),"".h(db_collation(DB,collations()));foreach(array("Data_length","Index_length","Data_free")as$y)echo($d[$y]?"":"");echo"\n","
    \n",script("ajaxSetHtml('".js_escape(ME)."script=db');"),"
    \n";if(!information_schema(DB)){$Mi=" ".on_help("'VACUUM'");$uf=" ".on_help(JUSH=="sql"?"'OPTIMIZE TABLE'":"'VACUUM OPTIMIZE'");$og=(JUSH=="sqlite"?$Mi." ".on_help("'PRAGMA integrity_check'"):(JUSH=="pgsql"?$Mi.$uf:(JUSH=="sql"?" ".on_help("'ANALYZE TABLE'").$uf." ".on_help("'CHECK TABLE'")." ".on_help("'REPAIR TABLE'"):""))).(function_exists('Adminer\truncate_tables')?" ".on_help(JUSH=="sqlite"?"'DELETE'":"'TRUNCATE".(JUSH=="pgsql"?"'":" TABLE'")).confirm():"").(function_exists('Adminer\drop_tables')?"".on_help("'DROP TABLE'").confirm():"");echo($og?"\n";}echo"
    \n",script("tableCheck();");}echo(function_exists('Adminer\alter_table')?"

    ".lang(70)."

    \n";$Og=routines();if($Og){echo"\n",'\n";foreach($Og as$L){$D=($L["SPECIFIC_NAME"]==$L["ROUTINE_NAME"]?"":"&name=".urlencode($L["ROUTINE_NAME"]));echo'','
    '.lang(188).''.lang(47).''.lang(218)."
    '.h($L["ROUTINE_NAME"]).'',''.h($L["ROUTINE_TYPE"]),''.h($L["DTD_IDENTIFIER"]),''.lang(140)."";}echo"
    \n";}echo'

    ".lang(71)."

    \n";$eh=get_vals("SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = current_schema() ORDER BY sequence_name");if($eh){echo"\n","\n";foreach($eh as$X)echo"
    ".lang(188)."
    ".h($X)."\n";echo"
    \n";}echo"

    ".lang(6)."

    \n";$Ji=types();if($Ji){echo"\n","\n";foreach($Ji as$X)echo"
    ".lang(188)."
    ".h($X)."\n";echo"
    \n";}echo"