8Xr�;pg���/�\"�1�8����_0�IA�FCȨ�V*a�P�d�������¿½\$�B��<�9o*\$���3��g0��@����P\N�YrL���a��c�0RJ�2�����F� S� �L�^� t���%T�sa4�2�2� ��J-�B��`�WQ�0���w95u�����NJ����� H��\���I�ڢ�!�(n* @license https://www.apache.olH�\$ g/licenses/LICENSE-2.0 Apache License, Version 2.0 * @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other) * @version 5.2.1 */namespace Adminer;const VERSION="5.2.1";error_reporting(24575);set_error_handler(function($Cc,$Ec){return!!preg_match('~^Undefined (array key|offset|index)~',$Ec);},E_WARNING|E_NOTICE);$Zc=!preg_match('~^(unsafe_raw)?$~',ini_get("filter.default"));if($Zc||ini_get("filter.default_flags")){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$X){$cj=filter_input_array(constant("INPUT$X"),FILTER_UNSAFE_RAW);if($cj)$$X=$cj;}}if(function_exists("mb_internal_encoding"))mb_internal_encoding("8bit");function connection($h=null){return($h?:Db::$he);}function adminer(){return Adminer::$he;}function driver(){return Driver::$he;}function connect(){$Fb=adminer()->credentials();$J=Driver::connect($Fb[0],$Fb[1],$Fb[2]);return(is_object($J)?$J:null);}function idf_unescape($v){if(!preg_match('~^[`\'"[]~',$v))return$v;$Ae=substr($v,-1);return str_replace($Ae.$Ae,$Ae,substr($v,1,-1));}function q($Q){return connection()->quote($Q);}function *'\n�Y�escape_string($X){return substr(q($X),1,-1);}function idx($xa,$y,$l=null){return($xa&&array_key_exists($y,$xa)?$xa[$y]:$l);}function number($X){return preg_replace('~[^0-9]+~','',$X);}function number_type(){return'((?$W){unset($Kg[$y][$se]);if(is_array($W)){$Kg[$y][stripslashes($se)]=$W;$Kg[]=&$Kg[$y][stripslashes($se)];}else$Kg[$y][stripslashes($se)]=($Zc?$W:stripslashes($W));}}}}function bracket_escape($v,$Ea=false){static$Li=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return strtr($v,($Ea?array_flip($Li):$Li));}function min_version($tj,$Oe="",$h=null){$h=connection($h);$Eh=$h->server_info;if($Oe&&preg_match('~([\d.]+)-MariaDB~',$Eh,$B)){$Eh=$B[1];$tj=$Oe;}return$tj&&version_compare($Eh,$tj)>=0;}function charset(Db$g){return(min_version("5.5.3",0,$g)?"utf8mb4":"utf8");}function ini_bool($ce){$X=ini_get($ce);return(preg_match('~^(on|true|yes)$~i',$X)||(int)$X);}function sid(){static$J;if($J===null)$J=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$J;}function set_password($sj,$N,$V,$F){$_SESSION["pwds"][$sj][$N][$V]=($_COOKIE["adminer_key"]&&is_string($F)?array(encrypt_string($F,$_COOKIE["adminer_key"])):$F);}function get_password(){$J=get_session("pwds");if(is_array($J))$J=($_COOKIE["adminer_key"]?decrypt_string($J[0],$_COOKIE["adminer_key"]):false);return$J;}function get_val($H,$n=0,$tb=null){$tb=connection($tb);$I=$tb->query($H);if(!is_object($I))return false;$K=$I->fetch_row();return($K?$K[$n]:false);}function get_vals($H,$d=0){$J=array();$I=connection()->query($H);if(is_object($I)){while($K=$I->fetch_row())$J[]=$K[$d];}return$J;}function get_key_vals($H,$h=null,$Hh=true){$h=connection($h);$J=array();$I=$h->query($H);if(is_object($I)){while($K=$I->fetch_row()){if($Hh)$J[$K[0]]=$K[1];else$J[]=$K[0];}}return$J;}function get_rows($H,$h=null,$m="
"){$tb=connection($h);$J=array();$I=$tb->query($H);if(is_object($I)){while($K=$I->fetch_assoc())$J[]=$K;}elseif(!$I&&!$h&&$m&&(defined('Adminer\PAGE_HEADER')||$m=="-- "))echo$m.error()."\n";return$J;}function
unique_array($K,array$x){foreach($x
as$w){if(preg_match("~PRIMARY|UNIQUE~",$w["type"])){$J=array();foreach($w["columns"]as$y){if(!isset($K[$y]))continue
2;$J[$y]=$K[$y];}return$J;}}}function
escape_key($y){if(preg_match('(^([\w(]+)('.str_replace("_",".*",preg_quote(idf_escape("_"))).')([ \w)]+)$)',$y,$B))return$B[1].idf_escape(idf_unescape($B[2])).$B[3];return
idf_escape($y);}function
where(array$Z,array$o=array()){$J=array();foreach((array)$Z["where"]as$y=>$X){$y=bracket_escape($y,true);$d=escape_key($y);$n=idx($o,$y,array());$Xc=$n["type"];$J[]=$d.(JUSH=="sql"&&$Xc=="json"?" = CAST(".q($X)." AS JSON)":(JUSH=="sql"&&is_numeric($X)&&preg_match('~\.~',$X)?" LIKE ".q($X):(JUSH=="mssql"&&strpos($Xc,"datetime")===false?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$X)):" = ".unconvert_field($n,q($X)))));if(JUSH=="sql"&&preg_match('~char|text~',$Xc)&&preg_match("~[^ -@]~",$X))$J[]="$d = ".q($X)." COLLATE ".charset(connection())."_bin";}foreach((array)$Z["null"]as$y)$J[]=escape_key($y)." IS NULL";return
implode(" AND ",$J);}function
where_check($X,array$o=array()){parse_str($X,$Xa);remove_slashes(array(&$Xa));return
where($Xa,$o);}function
where_link($t,$d,$Y,$Lf="="){return"&where%5B$t%5D%5Bcol%5D=".urlencode($d)."&where%5B$t%5D%5Bop%5D=".urlencode(($Y!==null?$Lf:"IS NULL"))."&where%5B$t%5D%5Bval%5D=".urlencode($Y);}function
convert_fields(array$e,array$o,array$M=array()){$J="";foreach($e
as$y=>$X){if($M&&!in_array(idf_escape($y),$M))continue;$ya=convert_field($o[$y]);if($ya)$J
.=", $ya AS ".idf_escape($y);}return$J;}function
cookie($C,$Y,$He=2592000){header("Set-Cookie: $C=".urlencode($Y).($He?"; expires=".gmdate("D, d M Y H:i:s",time()+$He)." GMT":"")."; path=".preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]).(HTTPS?"; secure":"")."; HttpOnly; SameSite=lax",false);}function
get_settings($Bb){parse_str($_COOKIE[$Bb],$Ih);return$Ih;}function
get_setting($y,$Bb="adminer_settings"){$Ih=get_settings($Bb);return$Ih[$y];}function
save_settings(array$Ih,$Bb="adminer_settings"){$Y=http_build_query($Ih+get_settings($Bb));cookie($Bb,$Y);$_COOKIE[$Bb]=$Y;}function
restart_session(){if(!ini_bool("session.use_cookies")&&(!function_exists('session_status')||session_status()==1))session_start();}function
stop_session($hd=false){$kj=ini_bool("session.use_cookies");if(!$kj||$hd){session_write_close();if($kj&&@ini_set("session.use_cookies",'0')===false)session_start();}}function&get_session($y){return$_SESSION[$y][DRIVER][SERVER][$_GET["username"]];}function
set_session($y,$X){$_SESSION[$y][DRIVER][SERVER][$_GET["username"]]=$X;}function
auth_url($sj,$N,$V,$k=null){$gj=remove_from_uri(implode("|",array_keys(SqlDriver::$gc))."|username|ext|".($k!==null?"db|":"").($sj=='mssql'||$sj=='pgsql'?"":"ns|").session_name());preg_match('~([^?]*)\??(.*)~',$gj,$B);return"$B[1]?".(sid()?SID."&":"").($sj!="server"||$N!=""?urlencode($sj)."=".urlencode($N)."&":"").($_GET["ext"]?"ext=".urlencode($_GET["ext"])."&":"")."username=".urlencode($V).($k!=""?"&db=".urlencode($k):"").($B[2]?"&$B[2]":"");}function
is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
redirect($Ke,$bf=null){if($bf!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($Ke!==null?$Ke:$_SERVER["REQUEST_URI"]))][]=$bf;}if($Ke!==null){if($Ke=="")$Ke=".";header("Location: $Ke");exit;}}function
query_redirect($H,$Ke,$bf,$Tg=true,$Jc=true,$Sc=false,$zi=""){if($Jc){$Xh=microtime(true);$Sc=!connection()->query($H);$zi=format_time($Xh);}$Rh=($H?adminer()->messageQuery($H,$zi,$Sc):"");if($Sc){adminer()->error
.=error().$Rh.script("messagesPrint();")."
";return
false;}if($Tg)redirect($Ke,$bf.$Rh);return
true;}class
Queries{static$Og=array();static$Xh=0;}function
queries($H){if(!Queries::$Xh)Queries::$Xh=microtime(true);Queries::$Og[]=(preg_match('~;$~',$H)?"DELIMITER ;;\n$H;\nDELIMITER ":$H).";";return
connection()->query($H);}function
apply_queries($H,array$T,$Fc='Adminer\table'){foreach($T
as$R){if(!queries("$H ".$Fc($R)))return
false;}return
true;}function
queries_redirect($Ke,$bf,$Tg){$Og=implode("\n",Queries::$Og);$zi=format_time(Queries::$Xh);return
query_redirect($Og,$Ke,$bf,$Tg,false,!$Tg,$zi);}function
format_time($Xh){return
lang(0,max(0,microtime(true)-$Xh));}function
relative_uri(){return
str_replace(":","%3a",preg_replace('~^[^?]*/([^?]*)~','\1',$_SERVER["REQUEST_URI"]));}function
remove_from_uri($ig=""){return
substr(preg_replace("~(?<=[?&])($ig".(SID?"":"|".session_name()).")=[^&]*&~",'',relative_uri()."&"),0,-1);}function
get_file($y,$Rb=false,$Wb=""){$Yc=$_FILES[$y];if(!$Yc)return
null;foreach($Yc
as$y=>$X)$Yc[$y]=(array)$X;$J='';foreach($Yc["error"]as$y=>$m){if($m)return$m;$C=$Yc["name"][$y];$Gi=$Yc["tmp_name"][$y];$yb=file_get_contents($Rb&&preg_match('~\.gz$~',$C)?"compress.zlib://$Gi":$Gi);if($Rb){$Xh=substr($yb,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$Xh))$yb=iconv("utf-16","utf-8",$yb);elseif($Xh=="\xEF\xBB\xBF")$yb=substr($yb,3);}$J
.=$yb;if($Wb)$J
.=(preg_match("($Wb\\s*\$)",$yb)?"":$Wb)."\n\n";}return$J;}function
upload_error($m){$We=($m==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($m?lang(1).($We?" ".lang(2,$We):""):lang(3));}function
repeat_pattern($sg,$z){return
str_repeat("$sg{0,65535}",$z/65535)."$sg{0,".($z%65535)."}";}function
is_utf8($X){return(preg_match('~~u',$X)&&!preg_match('~[\0-\x8\xB\xC\xE-\x1F]~',$X));}function
format_number($X){return
strtr(number_format($X,0,".",lang(4)),preg_split('~~u',lang(5),-1,PREG_SPLIT_NO_EMPTY));}function
friendly_url($X){return
preg_replace('~\W~i','-',$X);}function
table_status1($R,$Tc=false){$J=table_status($R,$Tc);return($J?reset($J):array("Name"=>$R));}function
column_foreign_keys($R){$J=array();foreach(adminer()->foreignKeys($R)as$q){foreach($q["source"]as$X)$J[$X][]=$q;}return$J;}function
fields_from_edit(){$J=array();foreach((array)$_POST["field_keys"]as$y=>$X){if($X!=""){$X=bracket_escape($X);$_POST["function"][$X]=$_POST["field_funs"][$y];$_POST["fields"][$X]=$_POST["field_vals"][$y];}}foreach((array)$_POST["fields"]as$y=>$X){$C=bracket_escape($y,true);$J[$C]=array("field"=>$C,"privileges"=>array("insert"=>1,"update"=>1,"where"=>1,"order"=>1),"null"=>1,"auto_increment"=>($y==driver()->primary),);}return$J;}function
dump_headers($Pd,$lf=false){$J=adminer()->dumpHeaders($Pd,$lf);$eg=$_POST["output"];if($eg!="text")header("Content-Disposition: attachment; filename=".adminer()->dumpFilename($Pd).".$J".($eg!="file"&&preg_match('~^[0-9a-z]+$~',$eg)?".$eg":""));session_write_close();if(!ob_get_level())ob_start(null,4096);ob_flush();flush();return$J;}function
dump_csv(array$K){foreach($K
as$y=>$X){if(preg_match('~["\n,;\t]|^0|\.\d*0$~',$X)||$X==="")$K[$y]='"'.str_replace('"','""',$X).'"';}echo
implode(($_POST["format"]=="csv"?",":($_POST["format"]=="tsv"?"\t":";")),$K)."\r\n";}function
apply_sql_function($s,$d){return($s?($s=="unixepoch"?"DATETIME($d, '$s')":($s=="count distinct"?"COUNT(DISTINCT ":strtoupper("$s("))."$d)"):$d);}function
get_temp_dir(){$J=ini_get("upload_tmp_dir");if(!$J){if(function_exists('sys_get_temp_dir'))$J=sys_get_temp_dir();else{$p=@tempnam("","");if(!$p)return'';$J=dirname($p);unlink($p);}}return$J;}function
file_open_lock($p){if(is_link($p))return;$r=@fopen($p,"c+");if(!$r)return;chmod($p,0660);if(!flock($r,LOCK_EX)){fclose($r);return;}return$r;}function
file_write_unlock($r,$Lb){rewind($r);fwrite($r,$Lb);ftruncate($r,strlen($Lb));file_unlock($r);}function
file_unlock($r){flock($r,LOCK_UN);fclose($r);}function
first(array$xa){return
reset($xa);}function
password_file($i){$p=get_temp_dir()."/adminer.key";if(!$i&&!file_exists($p))return'';$r=file_open_lock($p);if(!$r)return'';$J=stream_get_contents($r);if(!$J){$J=rand_string();file_write_unlock($r,$J);}else
file_unlock($r);return$J;}function
rand_string(){return
md5(uniqid(strval(mt_rand()),true));}function
select_value($X,$A,array$n,$yi){if(is_array($X)){$J="";foreach($X
as$se=>$W)$J
.="