credentials();$I=Driver::connect($mc[0],$mc[1],$mc[2]);return(is_object($I)?$I:null);}function idf_unescape($u){if(!preg_match('~^[`\'"[]~',$u))return$u;$_g=substr($u,-1);return str_replace($_g.$_g,$_g,substr($u,1,-1));}function q($Q){return connection()->quote($Q);}function idx($Ga,$x,$l=null){return($Ga&&array_key_exists($x,$Ga)?$Ga[$x]:$l);}function number($X){return preg_replace('~[^0-9]+~','',$X);}function int_type(){return'(tiny|small|medium|big)?int(eger|\d)?';}function number_type(){return'(^('.int_type().'|decimal|numeric|number|real|(binary_|half_|scaled_)?float\d?|(binary_)?double( precision)?|(small)?money)$)';}function text_type(){return'char|text'.(JUSH=="sql"?'|enum|set':'');}function is_user_type($U){return in_array($U,idx(driver()->structuredTypes(),lang(0),[]));}function full_type_sql(array$n){$U=$n["type"];return(is_user_type($U)?idf_escape($U).substr($n["full_type"],strlen($U)):$n["full_type"]);}function is_searchable(array$n,array$X){if(!isset($n["privileges"]["where"]))return false;if(preg_match('~NULL$~',$X["op"]))return true;$U=$n["type"];$fl=$X["val"];$Za='binary$|bytea|raw|image|bfile|^vector$'.(JUSH=="mssql"?'|^timestamp$':'|^bit').(JUSH=="oracle"?'|^blob|^long|rowid':'');if(preg_match("~$Za~",$U))return false;if(preg_match(number_type(),$U)){$ki='-?\d+(\.\d+)?';$Eh='';if(preg_match('~IN$~',$X["op"])){$fl=preg_replace('~^\s*\(\s*(.*?)\s*\)\s*$~s','\1',$fl);$Eh="( *, *$ki)*";}elseif($X["op"]=="BETWEEN")$Eh="\\s+AND\\s+$ki";return(bool)preg_match('~^'.$ki.$Eh.'$~i',$fl);}if(preg_match('~^(small)?date|^timestamp~',$U))return(bool)preg_match('~^\d+-\d+-\d+~',$fl);if(preg_match('~^time~',$U))return(bool)preg_match('~^\d+:\d+~',$fl);if(preg_match('~^bool~',$U)||(JUSH=="mssql"&&$U=="bit"))return(bool)preg_match('~^(t|f|true|false|[01])$~i',$fl);return true;}function bracket_escape($u,$Sa=false){static$in=[':'=>':1',']'=>':2','['=>':3','"'=>':4','='=>':5'];return strtr($u,($Sa?array_flip($in):$in));}function url_escape($Q){static$in=[];if(!$in){$in=[' '=>'+'];foreach(str_split("\"'<>#%&+=?".ini_get("arg_separator.input"))as$qb)$in[$qb]=sprintf('%%%02X',ord($qb));for($s=0;$s<256;$s++){if($s<32||$s>126)$in[chr($s)]=sprintf('%%%02X',$s);}}return strtr((string)$Q,$in);}function min_version($io,$Vg="",$h=null){$h=connection($h);$Cl=$h->server_info;if($Vg&&preg_match('~([\d.]+)-MariaDB~',$Cl,$A)){$Cl=$A[1];$io=$Vg;}return$io&&version_compare($Cl,$io)>=0;}function charset(Db$g){return(min_version("5.5.3",0,$g)?"utf8mb4":"utf8");}function ini_set($Ii,$Y){return(function_exists('ini_set')?\ini_set($Ii,$Y):false);}function ini_bool($Pf){$X=ini_get($Pf);return(preg_match('~^(on|true|yes)$~i',$X)||(int)$X);}function ini_bytes($Pf){$X=ini_get($Pf);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 max_input_vars($J,$aj){$Zg=(int)ini_get("max_input_vars");return($Zg?(int)floor(($Zg-$aj)/$J):0);}function max_input_vars_error(){$Pf="max_input_vars";return lang(1,"$Pf = ".ini_get($Pf)."");}function sid(){static$I;if($I===null)$I=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$I;}function set_password($ho,$N,$V,$E){$_SESSION["pwds"][$ho][$N][$V]=($_COOKIE["adminer_key"]&&is_string($E)?[encrypt_string($E,$_COOKIE["adminer_key"])]:$E);}function get_password(){$I=get_session("pwds");if(is_array($I))$I=($_COOKIE["adminer_key"]?decrypt_string($I[0],$_COOKIE["adminer_key"]):false);return$I;}function get_val($G,$n=0,$Ub=null){$Ub=connection($Ub);$H=$Ub->query($G);if(!is_object($H))return false;$J=$H->fetch_row();return($J?$J[$n]:false);}function get_vals($G,$d=0){$I=[];$H=connection()->query($G);if(is_object($H)){while($J=$H->fetch_row())$I[]=$J[$d];}return$I;}function get_key_vals($G,$h=null,$Fl=true){$h=connection($h);$I=[];$H=$h->query($G);if(is_object($H)){while($J=$H->fetch_row()){if($Fl)$I[$J[0]]=$J[1];else$I[]=$J[0];}}return$I;}function get_rows($G,$h=null,$m="
"){$Ub=connection($h);$I=[];$H=$Ub->query($G);if(is_object($H)){while($J=$H->fetch_assoc())$I[]=$J;}elseif(!$H&&!$h&&$m&&(defined('Adminer\PAGE_HEADER')||$m=="-- "))echo$m.adminer()->error()."\n";return$I;}function
unique_array($J,array$w){foreach($w
as$v){if(preg_match("~^(PRIMARY|UNIQUE)$~",$v["type"])&&!$v["partial"]&&!$v["invalid"]){$I=[];foreach($v["columns"]as$x){if(!isset($J[$x]))continue
2;$I[$x]=$J[$x];}return$I;}}}function
where_function($He,$d,array$n){if($He=="md5")return
driver()->md5($d,$n)?:$d;return(in_array($He,driver()->functions)||in_array($He,driver()->grouping)?apply_sql_function($He,$d):$d);}function
where(array$Z,array$o=[]){$I=[];foreach((array)$Z["where"]as$x=>$X){$x=bracket_escape($x,true);$d=idf_escape($x);$n=idx($o,$x,[]);$ee=$n["type"];$cg=$n&&(is_blob($n)||preg_match('~binary~',$ee));$I[]=$d.($cg&&!is_utf8($X)?" = ".driver()->quoteBinary($X):(JUSH=="sql"&&$ee=="json"?" = CAST(".q($X)." AS JSON)":(JUSH=="pgsql"&&preg_match('~^jsonb?$~',$n["full_type"])?"::jsonb = ".q($X)."::jsonb":(JUSH=="pgsql"&&preg_match('~\.~',$ee)?"::text = ".q($X):(JUSH=="sql"&&is_numeric($X)&&preg_match('~\.~',$X)?" LIKE ".q($X):(JUSH=="mssql"&&strpos($ee,"datetime")===false?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$X)):" = ".unconvert_field($n,q($X))))))));if(JUSH=="sql"&&preg_match('~char|text~',$ee)&&preg_match("~[^ -@]~",$X))$I[]="$d = ".q($X)." COLLATE ".charset(connection())."_bin";}foreach((array)$Z["null"]as$x)$I[]=idf_escape($x)." IS NULL";foreach((array)$Z["col"]as$s=>$Fb){$X=idx($Z["val"],$s);$I[]=where_function(idx($Z["fun"],$s),idf_escape($Fb),idx($o,$Fb,[])).($X!==null?" = ".q($X):" IS NULL");}return
implode(" AND ",$I);}function
where_columns(array$o){$I=[];foreach((array)$_GET["null"]as$x)$I[$x]=true;foreach(array_keys((array)$_GET["where"])as$x)$I[bracket_escape($x,true)]=true;foreach((array)$_GET["col"]as$Fb)$I[$Fb]=true;return
array_intersect_key($I,$o);}function
where_check($X,array$o=[]){parse_str($X,$tb);return
where($tb,$o);}function
where_link($s,$d,$Y,$Fi="="){$Ci=($Y!==null?$Fi:"IS NULL");return"&where[$s][col]=".url_escape($d).($Ci!=first(adminer()->operators())?"&where[$s][op]=".url_escape($Ci):"")."&where[$s][val]=".url_escape($Y);}function
convert_fields(array$e,array$o,array$M=[]){$I="";foreach($e
as$x=>$X){if($M&&!in_array(idf_escape($x),$M))continue;$Ha=convert_field($o[$x]);if($Ha)$I
.=", $Ha AS ".idf_escape($x);}return$I;}function
cookie_path(){return
strtr(preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]),[";"=>"%3B",","=>"%2C"]);}function
cookie($B,$Y,$Jg=2592000){header("Set-Cookie: $B=".rawurlencode($Y).($Jg?"; expires=".gmdate("D, d M Y H:i:s",time()+$Jg)." GMT":"")."; path=".cookie_path().(HTTPS?"; secure":"").($B=="adminer_import"?"":"; HttpOnly")."; SameSite=lax",false);}function
php_error_text($m){return(ini_bool("html_errors")?html_entity_decode(strip_tags($m)):$m);}function
php_errors($lb){$Ed=[];set_error_handler(function($Bd,$m)use(&$Ed){$Ed[]=preg_replace('~^\w+\([^)]*\)( \[[^]]*])?:\s*~','',php_error_text($m));return
true;},E_WARNING|E_NOTICE);$lb();restore_error_handler();return$Ed;}function
get_url($Qn,$dc){$Ed=php_errors(function()use($Qn,$dc,&$I,&$gf){$http_response_header=null;$I=file_get_contents($Qn,false,$dc);$gf=(function_exists('http_get_last_response_headers')?http_get_last_response_headers():$http_response_header);});return[$I,(preg_match('~^HTTP/[\d.]+ (\d+)~',idx($gf,0,''),$A)?$A[1]:''),(array)$gf,($I===false?implode("\n",$Ed):''),];}function
json_decode_exact($kg){$kg=str_replace(['\\\\','\\"'],['\\u005c','\\u0022'],$kg);$kg=preg_replace('~"(\\\\u0001[^"]*+")|"[^"]*+"(*SKIP)(*FAIL)~','"\\\\u0001$1',$kg);return
json_decode(preg_replace('~"[^"]*+"(*SKIP)(*FAIL)|-?\d[-+.\deE]*+~','"\\\\u0001$0"',$kg));}function
json_scalar($X){return(is_string($X)&&substr($X,0,1)=="\1"?substr($X,1):$X);}function
json_encode_exact($X,$qe=0){$kg=str_replace(['\\\\','\\"'],["\2","\3"],json_encode($X,$qe));$kg=preg_replace('~"\\\\u0001(-?\d[^"\\\\]*)"|(")\\\\u0001(\\\\u0001[^"]*+")|"[^"]*+"(*SKIP)(*FAIL)~','$1$2$3',$kg);return
str_replace(["\2","\3"],['\\\\','\\"'],$kg);}function
get_settings($hc){parse_str($_COOKIE[$hc],$Gl);return$Gl;}function
get_setting($x,$hc="adminer_settings",$l=null){return
idx(get_settings($hc),$x,$l);}function
save_settings(array$Gl,$hc="adminer_settings"){$Y=http_build_query($Gl+get_settings($hc));cookie($hc,$Y);$_COOKIE[$hc]=$Y;}function
restart_session(){if(!ini_bool("session.use_cookies")&&session_status()==PHP_SESSION_NONE)session_start();}function
stop_session($te=false){$Tn=ini_bool("session.use_cookies");if(!$Tn||$te){session_write_close();if($Tn&&ini_set("session.use_cookies",'0')===false)session_start();}}function&get_session($x){return$_SESSION[$x][DRIVER][SERVER][$_GET["username"]];}function
set_session($x,$X){$_SESSION[$x][DRIVER][SERVER][$_GET["username"]]=$X;}function
auth_url($ho,$N,$V,$k=null){$Pn=remove_from_uri(implode("|",array_keys(SqlDriver::$drivers))."|username|ext|".($k!==null?"db|":"").($ho=='mssql'||$ho=='pgsql'?"":"ns|").session_name());preg_match('~([^?]*)\??(.*)~',$Pn,$A);return"$A[1]?".(sid()?SID."&":"").($_GET["ext"]?"ext=".url_escape($_GET["ext"])."&":"").($ho!="server"||$N!=""?url_escape($ho)."=".url_escape($N)."&":"")."username=".url_escape($V).($k!=""?"&db=".url_escape($k):"").($A[2]?"&$A[2]":"");}function
is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
redirect($Rg,$ph=null,$P=303){if($ph!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($Rg!==null?$Rg:$_SERVER["REQUEST_URI"]))][]=$ph;}if($Rg!==null){if($Rg=="")$Rg=".";header("Location: $Rg",true,$P);exit;}}function
query_redirect($G,$Rg,$ph,$tk=true,$Md=true,$Xd=false,$Um=""){if($Md){$cm=microtime(true);$Xd=!connection()->query($G);$Um=format_time($cm);}$Vl=($G?adminer()->messageQuery($G,$Um,$Xd):"");if($Xd){adminer()->error
.=adminer()->error().$Vl.script("messagesPrint();")."
";return
false;}if($tk)redirect($Rg,$ph.$Vl);return
true;}class
Queries{static$queries=[];static$start=0;}function
remember_query($G){if(!Queries::$start)Queries::$start=microtime(true);Queries::$queries[]=(driver()->delimiter!=';'?$G:(preg_match('~;$~',$G)?"DELIMITER ;;\n$G;\nDELIMITER ":$G).";");}function
queries($G){remember_query($G);return
connection()->query($G);}function
apply_queries($G,array$T,$Gd='Adminer\table'){foreach($T
as$R){if(!queries("$G ".$Gd($R)))return
false;}return
true;}function
queries_redirect($Rg,$ph,$tk){$kk=implode("\n",Queries::$queries);$Um=format_time(Queries::$start);return
query_redirect($kk,$Rg,$ph,$tk,false,!$tk,$Um);}function
format_time($cm){return
lang(2,max(0,microtime(true)-$cm));}function
relative_uri($Pn=''){return
preg_replace_callback('~^[^?]*~',function($A){return
str_replace(":","%3A",$A[0]);},preg_replace('~^[^?]*/([^?]*)~','\1',($Pn?:$_SERVER["REQUEST_URI"])));}function
remove_from_uri($hj=""){return
substr(preg_replace("~(?<=[?&])($hj".(SID?"":"|".session_name()).")=[^&]*&~",'',relative_uri()."&"),0,-1);}function
get_files($B,$Ac=false){$ge=$_FILES[$B];if(!$ge)return
null;foreach($ge
as$x=>$X)$ge[$x]=(array)$X;$I=[];foreach($ge["error"]as$x=>$m){if($m)return$m;$p=$ge["name"][$x];$cn=$ge["tmp_name"][$x];$bc=file_get_contents($Ac&&preg_match('~\.gz$~',$p)?"compress.zlib://$cn":$cn);if($Ac){$cm=substr($bc,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$cm))$bc=iconv("utf-16","utf-8",$bc);elseif($cm=="\xEF\xBB\xBF")$bc=substr($bc,3);}$I[]=[$p,$bc];}return$I;}function
get_file($x,$Ac=false,$Ic=""){$je=get_files($x,$Ac);if(!is_array($je))return$je;$I='';foreach($je
as$ge){$bc=$ge[1];$I
.=$bc;if($Ic)$I
.=(preg_match("($Ic\\s*\$)",$bc)?"":$Ic)."\n\n";}return$I;}function
upload_error($m){$hh=($m==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($m?lang(3).($hh?" ".lang(4,$hh):""):lang(5));}function
is_utf8($X){return(preg_match('~~u',$X)&&!preg_match('~[\0-\x8\xB\xC\xE-\x1F]~',$X));}function
utf8_length($X){return
strlen(preg_replace('~[\x80-\xBF]~','',$X));}function
format_number($X){preg_match('~^#+([^#0]+)(?:(#+)\1)?(#*0)$~u',lang(6),$A);$Kl=strlen($A[3]);$I=number_format($X,0,".","");$I=preg_replace('~\B(?=(\d{'.(strlen($A[2])?:$Kl).'})*\d{'.$Kl.'}$)~',$A[1],$I);return
strtr($I,preg_split('~~u',lang(7),-1,PREG_SPLIT_NO_EMPTY));}function
format_status(array$S,$x){$X=idx($S,$x,'?');if(!is_numeric($X))return
h($X);if($X<0)return'?';$Ca=($x=="Rows"&&(JUSH=="sqlite"||$S["Engine"]==(JUSH=="pgsql"?"table":"InnoDB")));$X=in_array($x,["Data_length","Index_length","Data_free"])?adminer()->formatSizeValue($X):format_number($X);return($Ca?"~ ":"").$X;}function
friendly_url($X){return
preg_replace('~\W~i','-',$X);}function
table_status1($R,$Yd=false){$I=table_status($R,$Yd);return($I?reset($I):["Name"=>$R]);}function
column_foreign_keys($R){$I=[];foreach(adminer()->foreignKeys($R)as$q){foreach($q["source"]as$X)$I[$X][]=$q;}return$I;}function
fields_from_edit(){$I=[];foreach((array)$_POST["field_keys"]as$x=>$X){if($X!=""){$X=bracket_escape($X);$_POST["function"][$X]=$_POST["field_funs"][$x];$_POST["fields"][$X]=$_POST["field_vals"][$x];}}foreach((array)$_POST["fields"]as$x=>$X){$B=bracket_escape($x,true);$I[$B]=["field"=>$B,"full_type"=>"","type"=>"","privileges"=>["insert"=>1,"update"=>1,"where"=>1,"order"=>1],"null"=>true,"auto_increment"=>($B==driver()->primary),];}return$I;}function
dump_headers($uf,$Ih=false){$I=adminer()->dumpHeaders($uf,$Ih);$cj=$_POST["output"];if($cj!="text"||$I=="tar"){$Qb=($cj!="text"&&$cj!="file"&&preg_match('~^[0-9a-z]+$~',$cj)?".$cj":"");header("Content-Disposition: attachment; filename=".adminer()->dumpFilename($uf).".$I$Qb");}session_write_close();if(!ob_get_level())ob_start(null,4096);ob_flush();flush();return$I;}function
dump_csv(array$J){$vn=$_POST["format"]=="tsv";foreach($J
as$x=>$X){if(preg_match('~["\n]|^0[^.]|\.\d*0$|'.($vn?'\t':'[,;]|^$').'~',$X))$J[$x]='"'.str_replace('"','""',$X).'"';}echo
implode(($_POST["format"]=="csv"?",":($vn?"\t":";")),$J)."\r\n";}function
parse_csv($pc,$rl){$I=[];preg_match_all('~(?>"[^"]*"|[^"\r\n]+)+~',$pc,$Xg);foreach($Xg[0]as$J){preg_match_all("~((?>\"[^\"]*\")+|[^$rl]*)$rl~",$J.$rl,$Yg);$I[]=$Yg[1];}return$I;}function
csv_value($X){return(preg_match('~^".*"$~s',$X)?idf_unescape($X):$X);}function
apply_sql_function($r,$d){return($r?($r=="unixepoch"?"DATETIME($d, '$r')":($r=="count distinct"?"COUNT(DISTINCT ":strtoupper("$r("))."$d)"):$d);}function
get_temp_dir(){return
ini_get("upload_tmp_dir")?:sys_get_temp_dir();}function
file_open_lock($p){if(is_link($p))return;$_e=@fopen($p,"c+");if(!$_e)return;@chmod($p,0660);if(!flock($_e,LOCK_EX)){fclose($_e);return;}return$_e;}function
file_write_unlock($_e,$tc){rewind($_e);fwrite($_e,$tc);ftruncate($_e,strlen($tc));file_unlock($_e);}function
file_unlock($_e){flock($_e,LOCK_UN);fclose($_e);}function
first(array$Ga){return
reset($Ga);}function
password_file($i){$p=get_temp_dir()."/adminer.key";if(!$i&&!file_exists($p))return'';$_e=file_open_lock($p);if(!$_e)return'';$I=stream_get_contents($_e);if(!$I){$I=rand_string();file_write_unlock($_e,$I);}else
file_unlock($_e);return$I;}function
rand_string(){return(function_exists('random_bytes')?bin2hex(random_bytes(16)):md5(uniqid(strval(mt_rand()),true)));}function
select_value($X,$_,array$n,$Sm,array$Cj=[]){if(is_array($X)){$I="";if(array_filter($X,'is_array')==array_values($X)){$qg=[];foreach($X
as$W)$qg+=array_fill_keys(array_keys($W),null);foreach(array_keys($qg)as$ng)$I
.="