9 `'Cۗ889 xQ\0e4QʘlPVbT4 \\W/\n`  7\"hq4ZM6T\rr\\C{h7\rx67J2.39KH,!mƆo\$.[\r&#\$ X:\rܺ3b-8SLK.-ҥ\rH@ml:;J0LR2! A 2 m0eI-:U\r9MWL0GcJv2(F9`C1HRSd9%U1Sna|.ԁ`8:#C2*[o4Xx.k\">AO+,x\\5tцց`\\o%j]n\\h=zê2\$F[NYR[I7tҔ7(Wj02v};k2Var=(,\rj*B(R2CN\\9{a\0ŕVR4B/zn6(wssǴB[Mi#:#U=M-~h) pC9/,r=s#BvM t=@hs`kp.=S\"j& 5up#YY ~)s41 naV*TSq6\"[LgB\"|2Q:8ƨ՞\rV4aj!.&Ão%0F9\"\$Dȹ?' 2BAgakr'\$9\rؠ6`eϻ di2p\\\$>7\n\\,9 I+Ln]HHJ KLehA@ؒ @ڨdʽ*H10f!ܸ71HA`4?ZU w@(R(ϺT20RD`bqqihVj[!SX:\n0FL¢vjۦ9JfTx7z\\˛+R@ҏd^G\0.c `>N\\Fsgi\$ ߯%A˴TI@v.\0P+ cNEDKve9볮*uVZ`=~dDe}fӹ\05Ϭf:j`ME1ȯECA}):nUFYLf?e+.ZQZCxzԣ(`ˋ~A5[yJ1;}NSL )aS c9 2mt+bcRTw|7+9\\0SA g؟:T.'-bq29cP SHֹ#1gTQiּ]u(v`ث\r>1k~-_,0&C\$<0{g0ֲط%Bv2.sbvhdBwu=cCE@>");}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");echo lzw_decompress("f:gCI\n:saPi2\nOgc e6Le7s)Ћ\rHGI3as'cDi6N2H8uFR#r7#v}@`Qo5aI,2O'8R-q:PS(a*w(%p-C \" XS`\\F֬h83`X:O,) 898c<*2c9>HzOjB'B5,Pb5453@:N+ijJڊ\\ Ƈ@> 4Xr(Qr R١ du=tA8A{c\\)|ׁC4\n6W7(V4l6 9\rvˎa&:CK!-p:\r\0VMQ#K@\0.ـVywE\"f|jbgټF>ċ B HnݺZB B\$F0=kC-9CO9^Z3\rr70uwMgŰv2qIph5cPyDž.[hV'-YTݛ:vO&&6Zλ rnBco 0Mxz]ԌՍ!vdz/sC푦=d9KeVXs:pш8rA0&i)֤R\$Y_V4z;ia4lI,&t58I#_sFû`\niE<' Jy0@40a5>3̺@ĕ0Dk2uOB [42dV'EwAL[iSER[\rߐx<\\+ xxp\0 ;ApCV YR&3vy6'y)xj@rIzhBpIfņJZr<\"\$T^H,3搐P蜐8f,2 pNs|NUsCMt_na,BVbp4\$w#5%8t ӝmP3nϤh6IlNrQ eE2Lf'd*\":YM#ELzh\0%SDH1!S&[5 3%({^<(H6X+\"hW<_tz9Zuhf^ȋ=h:+Bq P&Š pba\naV2W& Z\0naݭdX8Zv>Ъb\nCSJrZW%`[/hR{\$-e BGLzNBp(@ݰs(fdGbS557i?PZt\nz>`]x0=JcrRByY]c_#S-/\0\nl a12@W\nA#a,1d0%ad5|EkBOK+̪P~60e5!2@ø(vdbq.@adRCe)X:#cYZ.|cZ4>/&PV 2wHB5WBp \nCsnC!M0Or/h2BdUs䖃\"XK>}@@Ч 4ޥ7D\0C'oG\"ovoMvHy%\$Fv\nUzBi)ݺmQ!\"\n;\0M*C\rOjvFDO /(˻y;g/}t9lB[i02AnpK &ݸ\n!o{ =a*gE\\1M~{7._ Akb >'y *nnVJH\"P\$F*xeϨ! \0 p DF# 1'b 8eLDi\n,N+*fؙOhk0&;/Hh,!| # //CB%L̰\$bE p𿊾 \r\"dϞIj(hOfvyF\0/CNjxoI/dFF\0>>rqT,UF EĄF\n- Î*#p6`'rzХ\nn'|t\r Jf)tPS. =&'2*Ø)''R*L~`\rRxX\r`.\0 %*+J'\\I\r @10S %22f t\0\\#\\6 \rDo3SP U5\\ c :>E3k\nUBSFN/\"Cb8NA)ƈ\\'fQ.cF2\\e XO3LP,KPMXԐ|5K%gzf3U< \0`#cr0(J\rfj՞Hhh5k܇#: / L)Ү\n޴ÈeB (82@oVooW\00067BparBIs4pB(EtE?8?@2D@P `^4 |8&879i8);Ԁ#\0:Dmː\"ؕr mJlm\$HJF PL^@Ծu_-H.2&\$d벞Sd0X? \n4dcBD|7\r\0 3 OO#K b`NKݽcMI(~EPi \n@;@\nXTӟ\0-/Bx 4d# Jq>Ly\0~D%Љ=VCp㝾}.`X_~?jb@9\nM S `\"P߯ qmV\r \0e;bqEj3>ZҌ@%g]sܚ!7q\$Qg.A9*}z'@G_ \"y c;yZ \n@q,{ӻq\$ qF<@ĵf@2 L4y09B`I1f.]:Ā\"A+`B?H8D_!%p!EVUl ]p\n//}B:6:(e#J\$G8`Fc80BPa|\"ȿ4P^fH(|^8X\$@m\nd|r6%\r3wr3):ʆr(1|>rq y#JP @m!aH! yF#!mqܑfhd+K(-xXX1*PI9Y0~Sp*3\" \0GY#nCBO@8c\rN%SaW*N- AE GLG^,E[*ʀk|P8*q\r.L3|Є51DZV\nJ\\l] 4Dd.l܉yǁpv\0\n)'9)/ɣ:9l ! pguQ)`)\"gJy3y*O\r\\y@H?C`@^(,BӑgUsW(&SSZEhP8\ngL4 ϦC綖'^_&@D\0Iğ,K0qVb0amM 3iw :LPQJ{'8,tQ,WekW,b6\"0) S:t*h~ 8\\ZT {gS7T!, F @[BT:T\0-t'Sq< |iU˜!3і\$,@sU^2he\"'. .UUr%p\"Yˀ̒}]i\\nTl+Umla[l6F>Z>QC&i)Zd[q_] -NZ&\"8InjȲ0F`al@ )8Q \"|m`@APlYiqьVahs/ZBa8N{0ˑn݁lA+Q>`tt! ťp:(NH/C Hۗ8FNvՒbhx\0< )Nd Դ 'C{ n5YKg`\\,yT0;ԆWP=@O@`C 4N$W){unset($we[$x][$Rc]);if(is_array($W)){$we[$x][stripslashes($Rc)]=$W;$we[]=&$we[$x][stripslashes($Rc)];}else$we[$x][stripslashes($Rc)]=($hc?$W:stripslashes($W));}}}}function bracket_escape($Cc,$za=false){static$Lf=array(':'=>':1',']'=>':2','['=>':3');return strtr($Cc,($za?array_flip($Lf):$Lf));}function h($kf){return htmlspecialchars(str_replace("\0","",$kf),ENT_QUOTES);}function nbsp($kf){return(trim($kf)!=""?h($kf):" ");}function nl_br($kf){return str_replace("\n","
",$kf);}function checkbox($D,$Y,$La,$Vc="",$Kd="",$Qc=false){static$t=0;$t++;$K="";return($Vc!=""?"":$K);}function optionlist($Nd,$Xe=null,$eg=false){$K="";foreach($Nd as$Rc=>$W){$Od=array($Rc=>$W);if(is_array($W)){$K.='';$Od=$W;}foreach($Od as$x=>$X)$K.=''.h($X);if(is_array($W))$K.='';}return$K;}function html_select($D,$Nd,$Y="",$Jd=true){if($Jd)return"";$K="";foreach($Nd as$x=>$X)$K.="";return$K;}function confirm($fb=""){return" onclick=\"return confirm('".lang(0).($fb?" (' + $fb + ')":"")."');\"";}function print_fieldset($t,$cd,$kg=false,$Kd=""){echo"
$cd
\n";}function selectSearchPrint($Z,$f,$v){print_fieldset("search",lang(34),$Z);foreach($v as$s=>$u){if($u["type"]=="FULLTEXT"){echo"(".implode(", ",array_map('h',$u["columns"])).") AGAINST"," ",checkbox("boolean[$s]",1,isset($_GET["boolean"][$s]),"BOOL"),"
\n";}}$_GET["where"]=(array)$_GET["where"];reset($_GET["where"]);$Ja="this.nextSibling.onchange();";for($s=0;$s<=count($_GET["where"]);$s++){list(,$X)=each($_GET["where"]);if(!$X||("$X[col]$X[val]"!=""&&in_array($X["op"],$this->operators))){echo"
",html_select("where[$s][op]",$this->operators,$X["op"],$Ja),"
\n";}}echo"\n";}function selectOrderPrint($Pd,$f,$v){print_fieldset("sort",lang(36),$Pd);$s=0;foreach((array)$_GET["order"]as$x=>$X){if(isset($f[$X])){echo"
",checkbox("desc[$s]",1,isset($_GET["desc"][$x]),lang(37))."
\n";$s++;}}echo"
","
\n";echo"\n";}function selectLimitPrint($y){echo"
".lang(38)."
";echo"","
\n";}function selectLengthPrint($Cf){if($Cf!==null){echo"
".lang(39)."
","","
\n";}}function selectActionPrint($v){echo"
".lang(40)."
",""," ","\n","
\n";}function selectCommandPrint(){return!information_schema(DB);}function selectImportPrint(){return!information_schema(DB);}function selectEmailPrint($Jb,$f){}function selectColumnsProcess($f,$v){global$sc,$wc;$N=array();$uc=array();foreach((array)$_GET["columns"]as$x=>$X){if($X["fun"]=="count"||(isset($f[$X["col"]])&&(!$X["fun"]||in_array($X["fun"],$sc)||in_array($X["fun"],$wc)))){$N[$x]=apply_sql_function($X["fun"],(isset($f[$X["col"]])?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],$wc))$uc[]=$N[$x];}}return array($N,$uc);}function selectSearchProcess($n,$v){global$w;$K=array();foreach($v as$s=>$u){if($u["type"]=="FULLTEXT"&&$_GET["fulltext"][$s]!="")$K[]="MATCH (".implode(", ",array_map('idf_escape',$u["columns"])).") AGAINST (".q($_GET["fulltext"][$s]).(isset($_GET["boolean"][$s])?" IN BOOLEAN MODE":"").")";}foreach((array)$_GET["where"]as$X){if("$X[col]$X[val]"!=""&&in_array($X["op"],$this->operators)){$ab=" $X[op]";if(ereg('IN$',$X["op"])){$Ec=process_length($X["val"]);$ab.=" (".($Ec!=""?$Ec:"NULL").")";}elseif(!$X["op"])$ab.=$X["val"];elseif($X["op"]=="LIKE %%")$ab=" LIKE ".$this->processInput($n[$X["col"]],"%$X[val]%");elseif(!ereg('NULL$',$X["op"]))$ab.=" ".$this->processInput($n[$X["col"]],$X["val"]);if($X["col"]!="")$K[]=idf_escape($X["col"]).$ab;else{$Ta=array();foreach($n as$D=>$m){$Nc=ereg('char|text|enum|set',$m["type"]);if((is_numeric($X["val"])||!ereg('int|float|double|decimal|bit',$m["type"]))&&(!ereg("[\x80-\xFF]",$X["val"])||$Nc)){$D=idf_escape($D);$Ta[]=($w=="sql"&&$Nc&&!ereg('^utf8',$m["collation"])?"CONVERT($D USING utf8)":$D);}}$K[]=($Ta?"(".implode("$ab OR ",$Ta)."$ab)":"0");}}}return$K;}function selectOrderProcess($n,$v){$K=array();foreach((array)$_GET["order"]as$x=>$X){if(isset($n[$X])||preg_match('~^((COUNT\\(DISTINCT |[A-Z0-9_]+\\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\\)|COUNT\\(\\*\\))$~',$X))$K[]=(isset($n[$X])?idf_escape($X):$X).(isset($_GET["desc"][$x])?" DESC":"");}return$K;}function selectLimitProcess(){return(isset($_GET["limit"])?$_GET["limit"]:"30");}function selectLengthProcess(){return(isset($_GET["text_length"])?$_GET["text_length"]:"100");}function selectEmailProcess($Z,$lc){return false;}function selectQueryBuild($N,$Z,$uc,$Pd,$y,$F){return"";}function messageQuery($I){global$w;static$fb=0;restart_session();$t="sql-".($fb++);$yc=&get_session("queries");if(strlen($I)>1e6)$I=ereg_replace('[\x80-\xFF]+$','',substr($I,0,1e6))."\n...";$yc[$_GET["db"]][]=array($I,time());return" ".@date("H:i:s")." ".lang(42)."';}function editFunctions($m){global$Fb;$K=($m["null"]?"NULL/":"");foreach($Fb as$x=>$sc){if(!$x||(!isset($_GET["call"])&&(isset($_GET["select"])||where($_GET)))){foreach($sc as$G=>$X){if(!$G||ereg($G,$m["type"]))$K.="/$X";}if($x&&!ereg('set|blob|bytea|raw|file',$m["type"]))$K.="/=";}}return explode("/",$K);}function editInput($R,$m,$wa,$Y){if($m["type"]=="enum")return(isset($_GET["select"])?" ":"").($m["null"]?" ":"").enum_input("radio",$wa,$m,$Y,0);return"";}function processInput($m,$Y,$q=""){if($q=="=")return$Y;$D=$m["field"];$K=($m["type"]=="bit"&&ereg("^([0-9]+|b'[0-1]+')\$",$Y)?$Y:q($Y));if(ereg('^(now|getdate|uuid)$',$q))$K="$q()";elseif(ereg('^current_(date|timestamp)$',$q))$K=$q;elseif(ereg('^([+-]|\\|\\|)$',$q))$K=idf_escape($D)." $q $K";elseif(ereg('^[+-] interval$',$q))$K=idf_escape($D)." $q ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+$~i",$Y)?$Y:$K);elseif(ereg('^(addtime|subtime|concat)$',$q))$K="$q(".idf_escape($D).", $K)";elseif(ereg('^(md5|sha1|password|encrypt)$',$q))$K="$q($K)";return unconvert_field($m,$K);}function dumpOutput(){$K=array('text'=>lang(43),'file'=>lang(44));if(function_exists('gzencode'))$K['gz']='gzip';if(function_exists('bzcompress'))$K['bz2']='bzip2';return$K;}function dumpFormat(){return array('sql'=>'SQL','csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function dumpTable($R,$Q,$Oc=false){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($Q)dump_csv(array_keys(fields($R)));}elseif($Q){$gb=create_sql($R,$_POST["auto_increment"]);if($gb){if($Q=="DROP+CREATE")echo"DROP ".($Oc?"VIEW":"TABLE")." IF EXISTS ".table($R).";\n";if($Oc)$gb=remove_definer($gb);echo($Q!="CREATE+ALTER"?$gb:($Oc?substr_replace($gb," OR REPLACE",6,0):substr_replace($gb," IF NOT EXISTS",12,0))).";\n\n";}if($Q=="CREATE+ALTER"&&!$Oc){$I="SELECT COLUMN_NAME, COLUMN_DEFAULT, IS_NULLABLE, COLLATION_NAME, COLUMN_TYPE, EXTRA, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ".q($R)." ORDER BY ORDINAL_POSITION";echo"DELIMITER ;; CREATE PROCEDURE adminer_alter (INOUT alter_command text) BEGIN DECLARE _column_name, _collation_name, after varchar(64) DEFAULT ''; DECLARE _column_type, _column_default text; DECLARE _is_nullable char(3); DECLARE _extra varchar(30); DECLARE _column_comment varchar(255); DECLARE done, set_after bool DEFAULT 0; DECLARE add_columns text DEFAULT '";$n=array();$oa="";foreach(get_rows($I)as$L){$rb=$L["COLUMN_DEFAULT"];$L["default"]=($rb!==null?q($rb):"NULL");$L["after"]=q($oa);$L["alter"]=escape_string(idf_escape($L["COLUMN_NAME"])." $L[COLUMN_TYPE]".($L["COLLATION_NAME"]?" COLLATE $L[COLLATION_NAME]":"").($rb!==null?" DEFAULT ".($rb=="CURRENT_TIMESTAMP"?$rb:$L["default"]):"").($L["IS_NULLABLE"]=="YES"?"":" NOT NULL").($L["EXTRA"]?" $L[EXTRA]":"").($L["COLUMN_COMMENT"]?" COMMENT ".q($L["COLUMN_COMMENT"]):"").($oa?" AFTER ".idf_escape($oa):" FIRST"));echo", ADD $L[alter]";$n[]=$L;$oa=$L["COLUMN_NAME"];}echo"'; DECLARE columns CURSOR FOR $I; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; SET @alter_table = ''; OPEN columns; REPEAT FETCH columns INTO _column_name, _column_default, _is_nullable, _collation_name, _column_type, _extra, _column_comment; IF NOT done THEN SET set_after = 1; CASE _column_name";foreach($n as$L)echo" WHEN ".q($L["COLUMN_NAME"])." THEN SET add_columns = REPLACE(add_columns, ', ADD $L[alter]', IF( _column_default <=> $L[default] AND _is_nullable = '$L[IS_NULLABLE]' AND _collation_name <=> ".(isset($L["COLLATION_NAME"])?"'$L[COLLATION_NAME]'":"NULL")." AND _column_type = ".q($L["COLUMN_TYPE"])." AND _extra = '$L[EXTRA]' AND _column_comment = ".q($L["COLUMN_COMMENT"])." AND after = $L[after] , '', ', MODIFY $L[alter]'));";echo" ELSE SET @alter_table = CONCAT(@alter_table, ', DROP ', _column_name); SET set_after = 0; END CASE; IF set_after THEN SET after = _column_name; END IF; END IF; UNTIL done END REPEAT; CLOSE columns; IF @alter_table != '' OR add_columns != '' THEN SET alter_command = CONCAT(alter_command, 'ALTER TABLE ".table($R)."', SUBSTR(CONCAT(add_columns, @alter_table), 2), ';\\n'); END IF; END;; DELIMITER ; CALL adminer_alter(@adminer_alter); DROP PROCEDURE adminer_alter; ";}}}function dumpData($R,$Q,$I){global$h,$w;$ld=($w=="sqlite"?0:1048576);if($Q){if($_POST["format"]=="sql"&&$Q=="TRUNCATE+INSERT")echo truncate_sql($R).";\n";if($_POST["format"]=="sql")$n=fields($R);$J=$h->query($I,1);if($J){$Jc="";$Ha="";$Sc=array();$nf="";while($L=$J->fetch_row()){if(!$Sc){$gg=array();foreach($L as$X){$m=$J->fetch_field();$Sc[]=$m->name;$x=idf_escape($m->name);$gg[]="$x = VALUES($x)";}$nf=($Q=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$gg):"").";\n";}if($_POST["format"]!="sql"){if($Q=="table"){dump_csv($Sc);$Q="INSERT";}dump_csv($L);}else{if(!$Jc)$Jc="INSERT INTO ".table($R)." (".implode(", ",array_map('idf_escape',$Sc)).") VALUES";foreach($L as$x=>$X)$L[$x]=($X!==null?(ereg('int|float|double|decimal|bit',$n[$Sc[$x]]["type"])?$X:q($X)):"NULL");$Te=($ld?"\n":" ")."(".implode(",\t",$L).")";if(!$Ha)$Ha=$Jc.$Te;elseif(strlen($Ha)+4+strlen($Te)+strlen($nf)<$ld)$Ha.=",$Te";else{echo$Ha.$nf;$Ha=$Jc.$Te;}}}if($Ha)echo$Ha.$nf;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",$h->error)."\n";}}function dumpFilename($Bc){return friendly_url($Bc!=""?$Bc:(SERVER!=""?SERVER:"localhost"));}function dumpHeaders($Bc,$wd=false){$Yd=$_POST["output"];$bc=($_POST["format"]=="sql"?"sql":($wd?"tar":"csv"));header("Content-Type: ".($Yd=="bz2"?"application/x-bzip":($Yd=="gz"?"application/x-gzip":($bc=="tar"?"application/x-tar":($bc=="sql"||$Yd!="file"?"text/plain":"text/csv")."; charset=utf-8"))));if($Yd=="bz2")ob_start('bzcompress',1e6);if($Yd=="gz")ob_start('gzencode',1e6);return$bc;}function homepage(){echo'

'.($_GET["ns"]==""?''.lang(45)."\n":""),(support("scheme")?"".($_GET["ns"]!=""?lang(46):lang(47))."\n":""),($_GET["ns"]!==""?''.lang(48)."\n":""),(support("privileges")?"".lang(49)."\n":"");return true;}function navigation($vd){global$fa,$T,$w,$_b;echo'

',$this->name(),' ',$fa,' ',(version_compare($fa,$_COOKIE["adminer_version"])<0?h($_COOKIE["adminer_version"]):""),'

';if($vd=="auth"){$ic=true;foreach((array)$_SESSION["pwds"]as$zb=>$bf){foreach($bf as$O=>$fg){foreach($fg as$V=>$ie){if($ie!==null){if($ic){echo"

\n";$ic=false;}$pb=$_SESSION["db"][$zb][$O][$V];foreach(($pb?array_keys($pb):array(""))as$k)echo"($_b[$zb]) ".h($V.($O!=""?"@$O":"").($k!=""?" - $k":""))."
\n";}}}}}else{echo'

';if(DB==""||!$vd){echo"".lang(42)."\n";if(support("dump"))echo"".lang(50)."\n";}echo'

';$this->databasesPrint($vd);if($_GET["ns"]!==""&&!$vd&&DB!=""){echo'

".lang(52)."\n";$xf=tables_list();if(!$xf)echo"

".lang(6)."\n";else{$this->tablesPrint($xf);$gd=array();foreach($xf as$R=>$U)$gd[]=preg_quote($R,'/');echo"\n";}}}}function databasesPrint($vd){global$h;$j=$this->databases();echo'

';hidden_fields_get();echo($j?html_select("db",array(""=>"(".lang(53).")")+$j,DB,"this.form.submit();"):''),' ';if($vd!="db"&&DB!=""&&$h->select_db(DB)){}echo(isset($_GET["sql"])?'':(isset($_GET["schema"])?'':(isset($_GET["dump"])?'':""))),"

\n";}function tablesPrint($xf){echo"

\n";foreach($xf as$R=>$U){echo'".lang(54)." ",'".$this->tableName(array("Name"=>$R))."
\n";}}}$c=(function_exists('adminer_object')?adminer_object():new Adminer);if($c->operators===null)$c->operators=$Md;function page_header($Ff,$l="",$Ga=array(),$Gf=""){global$a,$c,$h,$_b;header("Content-Type: text/html; charset=utf-8");if($c->headers()){header("X-Frame-Options: deny");header("X-XSS-Protection: 0");}$Hf=$Ff.($Gf!=""?": ".h($Gf):"");$If=strip_tags($Hf.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$c->name());echo' ',$If,' ';if($c->head()){echo' ';if(file_exists("adminer.css")){echo' ';}}echo'

';if($Ga!==null){$z=substr(preg_replace('~(username|db|ns)=[^&]*&~','',ME),0,-1);echo'

$Hf

\n";restart_session();$cg=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$td=$_SESSION["messages"][$cg];if($td){echo"
".implode("
\n
",$td)."
\n";unset($_SESSION["messages"][$cg]);}$j=&get_session("dbs");if(DB!=""&&$j&&!in_array(DB,$j,true))$j=null;stop_session();if($l)echo"
$l
\n";define("PAGE_HEADER",1);}function page_footer($vd=""){global$c;echo'
';switch_lang();echo' ';}function int32($C){while($C>=2147483648)$C-=4294967296;while($C<=-2147483649)$C+=4294967296;return(int)$C;}function long2str($W,$lg){$Te='';foreach($W as$X)$Te.=pack('V',$X);if($lg)return substr($Te,0,end($W));return$Te;}function str2long($Te,$lg){$W=array_values(unpack('V*',str_pad($Te,4*ceil(strlen($Te)/4),"\0")));if($lg)$W[]=strlen($Te);return$W;}function xxtea_mx($qg,$pg,$pf,$Rc){return int32((($qg>>5&0x7FFFFFF)^$pg<<2)+(($pg>>3&0x1FFFFFFF)^$qg<<4))^int32(($pf^$pg)+($Rc^$qg));}function encrypt_string($jf,$x){if($jf=="")return"";$x=array_values(unpack("V*",pack("H*",md5($x))));$W=str2long($jf,true);$C=count($W)-1;$qg=$W[$C];$pg=$W[0];$H=floor(6+52/($C+1));$pf=0;while($H-->0){$pf=int32($pf+0x9E3779B9);$Eb=$pf>>2&3;for($Zd=0;$Zd<$C;$Zd++){$pg=$W[$Zd+1];$xd=xxtea_mx($qg,$pg,$pf,$x[$Zd&3^$Eb]);$qg=int32($W[$Zd]+$xd);$W[$Zd]=$qg;}$pg=$W[0];$xd=xxtea_mx($qg,$pg,$pf,$x[$Zd&3^$Eb]);$qg=int32($W[$C]+$xd);$W[$C]=$qg;}return long2str($W,false);}function decrypt_string($jf,$x){if($jf=="")return"";$x=array_values(unpack("V*",pack("H*",md5($x))));$W=str2long($jf,false);$C=count($W)-1;$qg=$W[$C];$pg=$W[0];$H=floor(6+52/($C+1));$pf=int32($H*0x9E3779B9);while($pf){$Eb=$pf>>2&3;for($Zd=$C;$Zd>0;$Zd--){$qg=$W[$Zd-1];$xd=xxtea_mx($qg,$pg,$pf,$x[$Zd&3^$Eb]);$pg=int32($W[$Zd]-$xd);$W[$Zd]=$pg;}$qg=$W[$C];$xd=xxtea_mx($qg,$pg,$pf,$x[$Zd&3^$Eb]);$pg=int32($W[0]-$xd);$W[0]=$pg;$pf=int32($pf-0x9E3779B9);}return long2str($W,true);}$h='';$T=$_SESSION["token"];if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);$je=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($x)=explode(":",$X);$je[$x]=$X;}}$d=$_POST["auth"];if($d){session_regenerate_id();$_SESSION["pwds"][$d["driver"]][$d["server"]][$d["username"]]=$d["password"];$_SESSION["db"][$d["driver"]][$d["server"]][$d["username"]][$d["db"]]=true;if($d["permanent"]){$x=base64_encode($d["driver"])."-".base64_encode($d["server"])."-".base64_encode($d["username"])."-".base64_encode($d["db"]);$te=$c->permanentLogin();$je[$x]="$x:".base64_encode($te?encrypt_string($d["password"],$te):"");cookie("adminer_permanent",implode(" ",$je));}if(count($_POST)==1||DRIVER!=$d["driver"]||SERVER!=$d["server"]||$_GET["username"]!==$d["username"]||DB!=$d["db"])redirect(auth_url($d["driver"],$d["server"],$d["username"],$d["db"]));}elseif($_POST["logout"]){if($T&&$_POST["token"]!=$T){page_header(lang(51),lang(56));page_footer("db");exit;}else{foreach(array("pwds","db","dbs","queries")as$x)set_session($x,null);unset_permanent();redirect(substr(preg_replace('~(username|db|ns)=[^&]*&~','',ME),0,-1),lang(57));}}elseif($je&&!$_SESSION["pwds"]){session_regenerate_id();$te=$c->permanentLogin();foreach($je as$x=>$X){list(,$Na)=explode(":",$X);list($zb,$O,$V,$k)=array_map('base64_decode',explode("-",$x));$_SESSION["pwds"][$zb][$O][$V]=decrypt_string(base64_decode($Na),$te);$_SESSION["db"][$zb][$O][$V][$k]=true;}}function unset_permanent(){global$je;foreach($je as$x=>$X){list($zb,$O,$V)=array_map('base64_decode',explode("-",$x));if($zb==DRIVER&&$O==SERVER&&$k==$_GET["username"])unset($je[$x]);}cookie("adminer_permanent",implode(" ",$je));}function auth_error($Vb=null){global$h,$c,$T;$cf=session_name();$l="";if(!$_COOKIE[$cf]&&$_GET[$cf]&&ini_bool("session.use_only_cookies"))$l=lang(58);elseif(isset($_GET["username"])){if(($_COOKIE[$cf]||$_GET[$cf])&&!$T)$l=lang(59);else{$ie=&get_session("pwds");if($ie!==null){$l=h($Vb?$Vb->getMessage():(is_string($h)?$h:lang(60)));$ie=null;}unset_permanent();}}page_header(lang(21),$l,null);echo"
\n";$c->loginForm();echo"
";hidden_fields($_POST,array("auth"));echo"
\n","
\n";page_footer("auth");}if(isset($_GET["username"])){if(!class_exists("Min_DB")){unset($_SESSION["pwds"][DRIVER]);unset_permanent();page_header(lang(61),lang(62,implode(", ",$oe)),false);page_footer("auth");exit;}$h=connect();}if(is_string($h)||!$c->login($_GET["username"],get_session("pwds"))){auth_error();exit;}$T=$_SESSION["token"];if($d&&$_POST["token"])$_POST["token"]=$T;$l=($_POST?($_POST["token"]==$T?"":lang(56)):($_SERVER["REQUEST_METHOD"]!="POST"?"":lang(63,'"post_max_size"')));if(!ini_bool("session.use_cookies")||@ini_set("session.use_cookies",false)!==false){session_cache_limiter("");session_write_close();}function connect_error(){global$c,$h,$T,$l,$_b;$j=array();if(DB!="")page_header(lang(20).": ".h(DB),lang(64),true);else{if($_POST["db"]&&!$l)queries_redirect(substr(ME,0,-1),lang(65),drop_databases($_POST["db"]));page_header(lang(66),$l,false);echo"

".lang(67)."\n";foreach(array('privileges'=>lang(49),'processlist'=>lang(68),'variables'=>lang(69),'status'=>lang(70),)as$x=>$X){if(support($x))echo"$X\n";}echo"

".lang(71,$_b[DRIVER],"$h->server_info","$h->extension")."\n","

".lang(72,"".h(logged_user())."")."\n";$Fe="".lang(73)."\n";$j=$c->databases();if($j){$We=support("scheme");$e=collations();echo"

\n","\n","\n";foreach($j as$k){$Oe=h(ME)."db=".urlencode($k);echo"
 ".lang(20)."".lang(74)."".lang(75)."
".checkbox("db[]",$k,in_array($k,(array)$_POST["db"])),"".h($k)."","".nbsp(db_collation($k,$e))."","?","\n";}echo"
\n","\n","

\n","\n",$Fe,"

\n";}else echo"

$Fe";}page_footer("db");if($j)echo"\n";}if(isset($_GET["status"]))$_GET["variables"]=$_GET["status"];if(!(DB!=""?$h->select_db(DB):isset($_GET["sql"])||isset($_GET["dump"])||isset($_GET["database"])||isset($_GET["processlist"])||isset($_GET["privileges"])||isset($_GET["user"])||isset($_GET["variables"])||$_GET["script"]=="connect"||$_GET["script"]=="kill")){if(DB!=""||$_GET["refresh"]){restart_session();set_session("dbs",null);}connect_error();exit;}function select($J,$i=null,$Ac="",$Sd=array()){$gd=array();$v=array();$f=array();$Ea=array();$Tf=array();$K=array();odd('');for($s=0;$L=$J->fetch_row();$s++){if(!$s){echo"\n","";for($Pc=0;$Pcfetch_field();$D=$m->name;$Rd=$m->orgtable;$Qd=$m->orgname;$K[$m->table]=$Rd;if($Ac)$gd[$Pc]=($D=="table"?"table=":($D=="possible_keys"?"indexes=":null));elseif($Rd!=""){if(!isset($v[$Rd])){$v[$Rd]=array();foreach(indexes($Rd,$i)as$u){if($u["type"]=="PRIMARY"){$v[$Rd]=array_flip($u["columns"]);break;}}$f[$Rd]=$v[$Rd];}if(isset($f[$Rd][$Qd])){unset($f[$Rd][$Qd]);$v[$Rd][$Qd]=$Pc;$gd[$Pc]=$Rd;}}if($m->charsetnr==63)$Ea[$Pc]=true;$Tf[$Pc]=$m->type;$D=h($D);echo"name!=$Qd?" title='".h(($Rd!=""?"$Rd.":"").$Qd)."'":"").">".($Ac?"$D":$D);}echo"\n";}echo"";foreach($L as$x=>$X){if($X===null)$X="NULL";elseif($Ea[$x]&&!is_utf8($X))$X="".lang(30,strlen($X))."";elseif(!strlen($X))$X=" ";else{$X=h($X);if($Tf[$x]==254)$X="$X";}if(isset($gd[$x])&&!$f[$gd[$x]]){if($Ac){$R=$L[array_search("table=",$gd)];$z=$gd[$x].urlencode($Sd[$R]!=""?$Sd[$R]:$R);}else{$z="edit=".urlencode($gd[$x]);foreach($v[$gd[$x]]as$Qa=>$Pc)$z.="&where".urlencode("[".bracket_escape($Qa)."]")."=".urlencode($L[$Pc]);}$X="$X";}echo"
$X";}}echo($s?"
":"

".lang(77))."\n";return$K;}function referencable_primary($Ye){$K=array();foreach(table_status()as$tf=>$R){if($tf!=$Ye&&fk_support($R)){foreach(fields($tf)as$m){if($m["primary"]){if($K[$tf]){unset($K[$tf]);break;}$K[$tf]=$m;}}}}return$K;}function textarea($D,$Y,$M=10,$Ta=80){echo"";}function format_time($gf,$Mb){return" (".lang(78,max(0,array_sum(explode(" ",$Mb))-array_sum(explode(" ",$gf)))).")";}function edit_type($x,$m,$e,$p=array()){global$lf,$Tf,$ag,$Id;echo' ';echo"',($ag?"':''),($p?" ":" ");}function process_length($dd){global$Pb;return(preg_match("~^\\s*(?:$Pb)(?:\\s*,\\s*(?:$Pb))*\\s*\$~",$dd)&&preg_match_all("~$Pb~",$dd,$jd)?implode(",",$jd[0]):preg_replace('~[^0-9,+-]~','',$dd));}function process_type($m,$Ra="COLLATE"){global$ag;return" $m[type]".($m["length"]!=""?"(".process_length($m["length"]).")":"").(ereg('int|float|double|decimal',$m["type"])&&in_array($m["unsigned"],$ag)?" $m[unsigned]":"").(ereg('char|text|enum|set',$m["type"])&&$m["collation"]?" $Ra ".q($m["collation"]):"");}function process_field($m,$Rf){return array(idf_escape(trim($m["field"])),process_type($Rf),($m["null"]?" NULL":" NOT NULL"),(isset($m["default"])?" DEFAULT ".(($m["type"]=="timestamp"&&eregi('^CURRENT_TIMESTAMP$',$m["default"]))||($m["type"]=="bit"&&ereg("^([0-9]+|b'[0-1]+')\$",$m["default"]))?$m["default"]:q($m["default"])):""),($m["on_update"]?" ON UPDATE $m[on_update]":""),(support("comment")&&$m["comment"]!=""?" COMMENT ".q($m["comment"]):""),($m["auto_increment"]?auto_increment():null),);}function type_class($U){foreach(array('char'=>'text','date'=>'time|year','binary'=>'blob','enum'=>'set',)as$x=>$X){if(ereg("$x|$X",$U))return" class='$x'";}}function edit_fields($n,$e,$U="TABLE",$ra=0,$p=array(),$Ya=false){global$h,$Hc;echo' ';if($U=="PROCEDURE"){echo' ';}echo'',($U=="TABLE"?lang(82):lang(83)),'',lang(84),' ',lang(85),'',lang(86);if($U=="TABLE"){echo'NULL AI ',lang(88),(support("comment")?"

".lang(89).": ".h($Xa)."\n";if($n){echo"\n","\n";foreach($n as$m){echo"
".lang(96)."".lang(84).(support("comment")?"".lang(89):"")."
".h($m["field"]),"".h($m["full_type"]).($m["null"]?" NULL":"").($m["auto_increment"]?" ".lang(87)."":""),(isset($m["default"])?" [".h($m["default"])."]":""),(support("comment")?"".nbsp($m["comment"]):""),"\n";}echo"
\n";if(!is_view($S)){echo"

".lang(97)."

\n";$v=indexes($b);if($v){echo"\n";foreach($v as$D=>$u){ksort($u["columns"]);$se=array();foreach($u["columns"]as$x=>$X)$se[]="".h($X)."".($u["lengths"][$x]?"(".$u["lengths"][$x].")":"");echo"
$u[type]".implode(", ",$se)."\n";}echo"
\n";}echo'

'.lang(98)."\n";if(fk_support($S)){echo"

".lang(79)."

\n";$p=foreign_keys($b);if($p){echo"\n","\n";foreach($p as$D=>$o){echo"","
".lang(99)."".lang(100)."".lang(81)."".lang(101).($w!="sqlite"?" ":"")."
".implode(", ",array_map('h',$o["source"]))."","".($o["db"]!=""?"".h($o["db"]).".":"").($o["ns"]!=""?"".h($o["ns"]).".":"").h($o["table"])."","(".implode(", ",array_map('h',$o["target"])).")","".nbsp($o["on_delete"])."\n","".nbsp($o["on_update"])."\n",($w=="sqlite"?"":''.lang(102).'');}echo"
\n";}if($w!="sqlite")echo'

'.lang(103)."\n";}if(support("trigger")){echo"

".lang(104)."

\n";$Qf=triggers($b);if($Qf){echo"\n";foreach($Qf as$x=>$X)echo"
$X[0]$X[1]".h($x)."".lang(102)."\n";echo"
\n";}echo'

'.lang(105)."\n";}}}}elseif(isset($_GET["schema"])){page_header(lang(48),"",array(),DB.($_GET["ns"]?".$_GET[ns]":""));$uf=array();$vf=array();$D="adminer_schema";$da=($_GET["schema"]?$_GET["schema"]:$_COOKIE[($_COOKIE["$D-".DB]?"$D-".DB:$D)]);preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',$da,$jd,PREG_SET_ORDER);foreach($jd as$s=>$A){$uf[$A[1]]=array($A[2],$A[3]);$vf[]="\n\t'".js_escape($A[1])."': [ $A[2], $A[3] ]";}$Jf=0;$Ba=-1;$Ve=array();$Ee=array();$bd=array();foreach(table_status()as$S){if(!isset($S["Engine"]))continue;$le=0;$Ve[$S["Name"]]["fields"]=array();foreach(fields($S["Name"])as$D=>$m){$le+=1.25;$m["pos"]=$le;$Ve[$S["Name"]]["fields"][$D]=$m;}$Ve[$S["Name"]]["pos"]=($uf[$S["Name"]]?$uf[$S["Name"]]:array($Jf,0));foreach($c->foreignKeys($S["Name"])as$X){if(!$X["db"]){$Zc=$Ba;if($uf[$S["Name"]][1]||$uf[$X["table"]][1])$Zc=min(floatval($uf[$S["Name"]][1]),floatval($uf[$X["table"]][1]))-1;else$Ba-=.1;while($bd[(string)$Zc])$Zc-=.0001;$Ve[$S["Name"]]["references"][$X["table"]][(string)$Zc]=array($X["source"],$X["target"]);$Ee[$X["table"]][$S["Name"]][(string)$Zc]=$X["target"];$bd[(string)$Zc]=true;}}$Jf=max($Jf,$Ve[$S["Name"]]["pos"][0]+2.5+$le);}echo'

';foreach($Ve as$D=>$R){echo"
",''.h($D)."";foreach($R["fields"]as$m){$X=''.h($m["field"]).'';echo"
".($m["primary"]?"$X":$X);}foreach((array)$R["references"]as$Af=>$Ge){foreach($Ge as$Zc=>$Be){$ad=$Zc-$uf[$D][1];$s=0;foreach($Be[0]as$df)echo"\n
";}}foreach((array)$Ee[$D]as$Af=>$Ge){foreach($Ge as$Zc=>$f){$ad=$Zc-$uf[$D][1];$s=0;foreach($f as$_f)echo"\n
";}}echo"\n
\n";}foreach($Ve as$D=>$R){foreach((array)$R["references"]as$Af=>$Ge){foreach($Ge as$Zc=>$Be){$ud=$Jf;$nd=-10;foreach($Be[0]as$x=>$df){$me=$R["pos"][0]+$R["fields"][$df]["pos"];$ne=$Ve[$Af]["pos"][0]+$Ve[$Af]["fields"][$Be[1][$x]]["pos"];$ud=min($ud,$me,$ne);$nd=max($nd,$me,$ne);}echo"
\n";}}}echo'

',lang(106),' ';}elseif(isset($_GET["dump"])){$b=$_GET["dump"];if($_POST){$eb="";foreach(array("output","format","db_style","routines","events","table_style","auto_increment","triggers","data_style")as$x)$eb.="&$x=".urlencode($_POST[$x]);cookie("adminer_export",substr($eb,1));$bc=dump_headers(($b!=""?$b:DB),(DB==""||count((array)$_POST["tables"]+(array)$_POST["data"])>1));$Mc=($_POST["format"]=="sql");if($Mc)echo"-- Adminer $fa ".$_b[DRIVER]." dump ".($w!="sql"?"":"SET NAMES utf8; ".($_POST["data_style"]?"SET foreign_key_checks = 0; SET time_zone = ".q($h->result("SELECT @@time_zone"))."; SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; ":"")." ");$Q=$_POST["db_style"];$j=array(DB);if(DB==""){$j=$_POST["databases"];if(is_string($j))$j=explode("\n",rtrim(str_replace("\r","",$j),"\n"));}foreach((array)$j as$k){if($h->select_db($k)){if($Mc&&ereg('CREATE',$Q)&&($gb=$h->result("SHOW CREATE DATABASE ".idf_escape($k),1))){if($Q=="DROP+CREATE")echo"DROP DATABASE IF EXISTS ".idf_escape($k).";\n";echo($Q=="CREATE+ALTER"?preg_replace('~^CREATE DATABASE ~','\\0IF NOT EXISTS ',$gb):$gb).";\n";}if($Mc){if($Q)echo use_sql($k).";\n\n";if(in_array("CREATE+ALTER",array($Q,$_POST["table_style"])))echo"SET @adminer_alter = '';\n\n";$Xd="";if($_POST["routines"]){foreach(array("FUNCTION","PROCEDURE")as$Pe){foreach(get_rows("SHOW $Pe STATUS WHERE Db = ".q($k),null,"-- ")as$L)$Xd.=($Q!='DROP+CREATE'?"DROP $Pe IF EXISTS ".idf_escape($L["Name"]).";;\n":"").remove_definer($h->result("SHOW CREATE $Pe ".idf_escape($L["Name"]),2)).";;\n\n";}}if($_POST["events"]){foreach(get_rows("SHOW EVENTS",null,"-- ")as$L)$Xd.=($Q!='DROP+CREATE'?"DROP EVENT IF EXISTS ".idf_escape($L["Name"]).";;\n":"").remove_definer($h->result("SHOW CREATE EVENT ".idf_escape($L["Name"]),3)).";;\n\n";}if($Xd)echo"DELIMITER ;;\n\n$Xd"."DELIMITER ;\n\n";}if($_POST["table_style"]||$_POST["data_style"]){$jg=array();foreach(table_status()as$S){$R=(DB==""||in_array($S["Name"],(array)$_POST["tables"]));$lb=(DB==""||in_array($S["Name"],(array)$_POST["data"]));if($R||$lb){if(!is_view($S)){if($bc=="tar")ob_start();$c->dumpTable($S["Name"],($R?$_POST["table_style"]:""));if($lb)$c->dumpData($S["Name"],$_POST["data_style"],"SELECT * FROM ".table($S["Name"]));if($Mc&&$_POST["triggers"]&&$R&&($Qf=trigger_sql($S["Name"],$_POST["table_style"])))echo"\nDELIMITER ;;\n$Qf\nDELIMITER ;\n";if($bc=="tar")echo tar_file((DB!=""?"":"$k/")."$S[Name].csv",ob_get_clean());elseif($Mc)echo"\n";}elseif($Mc)$jg[]=$S["Name"];}}foreach($jg as$ig)$c->dumpTable($ig,$_POST["table_style"],true);if($bc=="tar")echo pack("x512");}if($Q=="CREATE+ALTER"&&$Mc){$I="SELECT TABLE_NAME, ENGINE, TABLE_COLLATION, TABLE_COMMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE()";echo"DELIMITER ;; CREATE PROCEDURE adminer_alter (INOUT alter_command text) BEGIN DECLARE _table_name, _engine, _table_collation varchar(64); DECLARE _table_comment varchar(64); DECLARE done bool DEFAULT 0; DECLARE tables CURSOR FOR $I; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN tables; REPEAT FETCH tables INTO _table_name, _engine, _table_collation, _table_comment; IF NOT done THEN CASE _table_name";foreach(get_rows($I)as$L){$Xa=q($L["ENGINE"]=="InnoDB"?preg_replace('~(?:(.+); )?InnoDB free: .*~','\\1',$L["TABLE_COMMENT"]):$L["TABLE_COMMENT"]);echo" WHEN ".q($L["TABLE_NAME"])." THEN ".(isset($L["ENGINE"])?"IF _engine != '$L[ENGINE]' OR _table_collation != '$L[TABLE_COLLATION]' OR _table_comment != $Xa THEN ALTER TABLE ".idf_escape($L["TABLE_NAME"])." ENGINE=$L[ENGINE] COLLATE=$L[TABLE_COLLATION] COMMENT=$Xa; END IF":"BEGIN END").";";}echo" ELSE SET alter_command = CONCAT(alter_command, 'DROP TABLE `', REPLACE(_table_name, '`', '``'), '`;\\n'); END CASE; END IF; UNTIL done END REPEAT; CLOSE tables; END;; DELIMITER ; CALL adminer_alter(@adminer_alter); DROP PROCEDURE adminer_alter; ";}if(in_array("CREATE+ALTER",array($Q,$_POST["table_style"]))&&$Mc)echo"SELECT @adminer_alter;\n";}}if($Mc)echo"-- ".$h->result("SELECT NOW()")."\n";exit;}page_header(lang(107),"",($_GET["export"]!=""?array("table"=>$_GET["export"]):array()),DB);echo'

';$ob=array('','USE','DROP+CREATE','CREATE');$wf=array('','DROP+CREATE','CREATE');$mb=array('','TRUNCATE+INSERT','INSERT');if($w=="sql"){$ob[]='CREATE+ALTER';$wf[]='CREATE+ALTER';$mb[]='INSERT+UPDATE';}parse_str($_COOKIE["adminer_export"],$L);if(!$L)$L=array("output"=>"text","format"=>"sql","db_style"=>(DB!=""?"":"CREATE"),"table_style"=>"DROP+CREATE","data_style"=>"INSERT");if(!isset($L["events"])){$L["routines"]=$L["events"]=($_GET["dump"]=="");$L["triggers"]=$L["table_style"];}echo"
".lang(108)."".html_select("output",$c->dumpOutput(),$L["output"],0)."\n";echo"
".lang(109)."".html_select("format",$c->dumpFormat(),$L["format"],0)."\n";echo($w=="sqlite"?"":"
".lang(20)."".html_select('db_style',$ob,$L["db_style"]).(support("routine")?checkbox("routines",1,$L["routines"],lang(110)):"").(support("event")?checkbox("events",1,$L["events"],lang(111)):"")),"
".lang(75)."".html_select('table_style',$wf,$L["table_style"]).checkbox("auto_increment",1,$L["auto_increment"],lang(87)).(support("trigger")?checkbox("triggers",1,$L["triggers"],lang(104)):""),"
".lang(112)."".html_select('data_style',$mb,$L["data_style"]),'

';$qe=array();if(DB!=""){$La=($b!=""?"":" checked");echo"","\n";$jg="";foreach(table_status()as$S){$D=$S["Name"];$pe=ereg_replace("_.*","",$D);$La=($b==""||$b==(substr($b,-1)=="%"?"$pe%":$D));$se="\n";$j=$c->databases();if($j){foreach($j as$k){if(!information_schema($k)){$pe=ereg_replace("_.*","",$k);echo"
","","
".checkbox("tables[]",$D,$La,$D,"checkboxClick(event, this); formUncheck('check-tables');");if(is_view($S))$jg.="$se\n";else echo"$se\n";$qe[$pe]++;}echo$jg;}else{echo"
".checkbox("databases[]",$k,$b==""||$b=="$pe%",$k,"formUncheck('check-databases');")."\n";$qe[$pe]++;}}}else echo"
";}echo'

';$ic=true;foreach($qe as$x=>$X){if($x!=""&&$X>1){echo($ic?"

":" ")."".h($x)."";$ic=false;}}}elseif(isset($_GET["privileges"])){page_header(lang(49));$J=$h->query("SELECT User, Host FROM mysql.".(DB==""?"user":"db WHERE ".q(DB)." LIKE Db")." ORDER BY Host, User");$r=$J;if(!$J)$J=$h->query("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1) AS User, SUBSTRING_INDEX(CURRENT_USER, '@', -1) AS Host");echo"

\n";hidden_fields_get();echo"\n",($r?"":"\n"),"\n","\n";while($L=$J->fetch_assoc())echo'
".lang(18)."".lang(17)." 
'.h($L["User"])."".h($L["Host"]).''.lang(29)."\n";if(!$r||DB!="")echo"\n";echo"
\n","

\n",'

'.lang(113)."";}elseif(isset($_GET["sql"])){if(!$l&&$_POST["export"]){dump_headers("sql");$c->dumpTable("","");$c->dumpData("","table",$_POST["query"]);exit;}restart_session();$zc=&get_session("queries");$yc=&$zc[DB];if(!$l&&$_POST["clear"]){$yc=array();redirect(remove_from_uri("history"));}page_header(lang(42),$l);if(!$l&&$_POST){$pc=false;$I=$_POST["query"];if($_POST["webfile"]){$pc=@fopen((file_exists("adminer.sql")?"adminer.sql":(file_exists("adminer.sql.gz")?"compress.zlib://adminer.sql.gz":"compress.bzip2://adminer.sql.bz2")),"rb");$I=($pc?fread($pc,1e6):false);}elseif($_FILES&&$_FILES["sql_file"]["error"]!=UPLOAD_ERR_NO_FILE)$I=get_file("sql_file",true);if(is_string($I)){if(function_exists('memory_get_usage'))@ini_set("memory_limit",max(ini_bytes("memory_limit"),2*strlen($I)+memory_get_usage()+8e6));if($I!=""&&strlen($I)<1e6){$H=$I.(ereg(";[ \t\r\n]*\$",$I)?"":";");if(!$yc||reset(end($yc))!=$H){restart_session();$yc[]=array($H,time());set_session("queries",$zc);stop_session();}}$ef="(?:\\s|/\\*.*\\*/|(?:#|-- )[^\n]*\n|--\n)";$sb=";";$Cd=0;$Lb=true;$i=connect();if(is_object($i)&&DB!="")$i->select_db(DB);$Wa=0;$Rb=array();$fd=0;$ce='[\'"'.($w=="sql"?'`#':($w=="sqlite"?'`[':($w=="mssql"?'[':''))).']|/\\*|-- |$'.($w=="pgsql"?'|\\$[^$]*\\$':'');$Kf=microtime();parse_str($_COOKIE["adminer_export"],$ka);$Db=$c->dumpFormat();unset($Db["sql"]);while($I!=""){if(!$Cd&&preg_match("~^$ef*DELIMITER\\s+(\\S+)~i",$I,$A)){$sb=$A[1];$I=substr($I,strlen($A[0]));}else{preg_match('('.preg_quote($sb)."\\s*|$ce)",$I,$A,PREG_OFFSET_CAPTURE,$Cd);list($nc,$le)=$A[0];if(!$nc&&$pc&&!feof($pc))$I.=fread($pc,1e5);else{if(!$nc&&rtrim($I)=="")break;$Cd=$le+strlen($nc);if($nc&&rtrim($nc)!=$sb){while(preg_match('('.($nc=='/*'?'\\*/':($nc=='['?']':(ereg('^-- |^#',$nc)?"\n":preg_quote($nc)."|\\\\."))).'|$)s',$I,$A,PREG_OFFSET_CAPTURE,$Cd)){$Te=$A[0][0];if(!$Te&&$pc&&!feof($pc))$I.=fread($pc,1e5);else{$Cd=$A[0][1]+strlen($Te);if($Te[0]!="\\")break;}}}else{$Lb=false;$H=substr($I,0,$le);$Wa++;$se="

".shorten_utf8(trim($H),1000)."
\n";if(!$_POST["only_errors"]){echo$se;ob_flush();flush();}$gf=microtime();if($h->multi_query($H)&&is_object($i)&&preg_match("~^$ef*USE\\b~isU",$H))$i->query($H);do{$J=$h->store_result();$Mb=microtime();$Df=format_time($gf,$Mb).(strlen($H)<1000?" ".lang(29)."":"");if($h->error){echo($_POST["only_errors"]?$se:""),"

".lang(114).($h->errno?" ($h->errno)":"").": ".error()."\n";$Rb[]=" $Wa";if($_POST["error_stops"])break 2;}elseif(is_object($J)){$Sd=select($J,$i);if(!$_POST["only_errors"]){echo"

\n","

".($J->num_rows?lang(115,$J->num_rows):"").$Df;$t="export-$Wa";$ac=", ".lang(107)."\n";if($i&&preg_match("~^($ef|\\()*SELECT\\b~isU",$H)&&($Zb=explain($i,$H))){$t="explain-$Wa";echo", EXPLAIN$ac","

\n";}else echo$ac;echo"
\n";}}else{if(preg_match("~^$ef*(CREATE|DROP|ALTER)$ef+(DATABASE|SCHEMA)\\b~isU",$H)){restart_session();set_session("dbs",null);stop_session();}if(!$_POST["only_errors"])echo"

".lang(116,$h->affected_rows)."$Df\n";}$gf=$Mb;}while($h->next_result());$fd+=substr_count($H.$nc,"\n");$I=substr($I,$Cd);$Cd=0;}}}}if($Lb)echo"

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

".lang(118,$Wa-count($Rb)).format_time($Kf,microtime())."\n";elseif($Rb&&$Wa>1)echo"

".lang(114).": ".implode("",$Rb)."\n";}else echo"

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

';$H=$_GET["sql"];if($_POST)$H=$_POST["query"];elseif($_GET["history"]=="all")$H=$yc;elseif($_GET["history"]!="")$H=$yc[$_GET["history"]][0];textarea("query",$H,20);echo($_POST?"":"\n"),"

".(ini_bool("file_uploads")?lang(119).': (< '.ini_get("upload_max_filesize").'B)':lang(120)),'

',checkbox("error_stops",1,$_POST["error_stops"],lang(122))."\n",checkbox("only_errors",1,$_POST["only_errors"],lang(123))."\n";print_fieldset("webfile",lang(124),$_POST["webfile"],"document.getElementById('form')['only_errors'].checked = true; ");$Za=array();foreach(array("gz"=>"zlib","bz2"=>"bz2")as$x=>$X){if(extension_loaded($X))$Za[]=".$x";}echo lang(125,"adminer.sql".($Za?"[".implode("|",$Za)."]":"").""),' ',"\n";if($yc){print_fieldset("history",lang(127),$_GET["history"]!="");foreach($yc as$x=>$X){list($H,$Df)=$X;echo''.lang(29)." ".@date("H:i:s",$Df)." ".shorten_utf8(ltrim(str_replace("\n"," ",str_replace("\r","",preg_replace('~^(#|-- ).*~m','',$H)))),80,"")."
\n";}echo"\n","".lang(129)."\n","\n";}echo'

';}elseif(isset($_GET["edit"])){$b=$_GET["edit"];$n=fields($b);$Z=(isset($_GET["select"])?(count($_POST["check"])==1?where_check($_POST["check"][0],$n):""):where($_GET,$n));$bg=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($n as$D=>$m){if(!isset($m["privileges"][$bg?"update":"insert"])||$c->fieldName($m)=="")unset($n[$D]);}if($_POST&&!$l&&!isset($_GET["select"])){$_=$_POST["referer"];if($_POST["insert"])$_=($bg?null:$_SERVER["REQUEST_URI"]);elseif(!ereg('^.+&select=.+$',$_))$_=ME."select=".urlencode($b);if(isset($_POST["delete"]))query_redirect("DELETE".limit1("FROM ".table($b)," WHERE $Z"),$_,lang(130));else{$P=array();foreach($n as$D=>$m){$X=process_input($m);if($X!==false&&$X!==null)$P[idf_escape($D)]=($bg?"\n".idf_escape($D)." = $X":$X);}if($bg){if(!$P)redirect($_);query_redirect("UPDATE".limit1(table($b)." SET".implode(",",$P),"\nWHERE $Z"),$_,lang(131));}else{$J=insert_into($b,$P);$Yc=($J?last_id():0);queries_redirect($_,lang(132,($Yc?" $Yc":"")),$J);}}}$tf=$c->tableName(table_status($b));page_header(($bg?lang(29):lang(133)),$l,array("select"=>array($b,$tf)),$tf);$L=null;if($_POST["save"])$L=(array)$_POST["fields"];elseif($Z){$N=array();foreach($n as$D=>$m){if(isset($m["privileges"]["select"])){$ua=convert_field($m);if($_POST["clone"]&&$m["auto_increment"])$ua="''";if($w=="sql"&&ereg("enum|set",$m["type"]))$ua="1*".idf_escape($D);$N[]=($ua?"$ua AS ":"").idf_escape($D);}}$L=array();if($N){$M=get_rows("SELECT".limit(implode(", ",$N)." FROM ".table($b)," WHERE $Z",(isset($_GET["select"])?2:1)));$L=(isset($_GET["select"])&&count($M)!=1?null:reset($M));}}if($L===false)echo"

".lang(77)."\n";echo'

';if(!$n)echo"

".lang(134)."\n";else{echo"\n";foreach($n as$D=>$m){echo"
".$c->fieldName($m);$rb=$_GET["set"][bracket_escape($D)];$Y=($L!==null?($L[$D]!=""&&$w=="sql"&&ereg("enum|set",$m["type"])?(is_array($L[$D])?array_sum($L[$D]):+$L[$D]):$L[$D]):(!$bg&&$m["auto_increment"]?"":(isset($_GET["select"])?false:($rb!==null?$rb:$m["default"]))));if(!$_POST["save"]&&is_string($Y))$Y=$c->editVal($Y,$m);$q=($_POST["save"]?(string)$_POST["function"][$D]:($bg&&$m["on_update"]=="CURRENT_TIMESTAMP"?"now":($Y===false?null:($Y!==null?'':'NULL'))));if($m["type"]=="timestamp"&&$Y=="CURRENT_TIMESTAMP"){$Y="";$q="now";}input($m,$Y,$q);echo"\n";}echo"
\n";}echo'

';if($n){echo"\n";if(!isset($_GET["select"]))echo"\n";}echo($bg?"\n":($_POST||!$n?"":"\n"));if(isset($_GET["select"]))hidden_fields(array("check"=>(array)$_POST["check"],"clone"=>$_POST["clone"],"all"=>$_POST["all"]));echo'

';}elseif(isset($_GET["create"])){$b=$_GET["create"];$de=array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST');$De=referencable_primary($b);$p=array();foreach($De as$tf=>$m)$p[str_replace("`","``",$tf)."`".str_replace("`","``",$m["field"])]=$tf;$Vd=array();$Wd=array();if($b!=""){$Vd=fields($b);$Wd=table_status($b);}if($_POST&&!$_POST["fields"])$_POST["fields"]=array();if($_POST&&!$l&&!$_POST["add"]&&!$_POST["drop_col"]&&!$_POST["up"]&&!$_POST["down"]){if($_POST["drop"])query_redirect("DROP TABLE ".table($b),substr(ME,0,-1),lang(139));else{$n=array();$qa=array();$dg=false;$kc=array();ksort($_POST["fields"]);$Ud=reset($Vd);$oa=" FIRST";foreach($_POST["fields"]as$x=>$m){$o=$p[$m["type"]];$Rf=($o!==null?$De[$o]:$m);if($m["field"]!=""){if(!$m["has_default"])$m["default"]=null;$rb=eregi_replace(" *on update CURRENT_TIMESTAMP","",$m["default"]);if($rb!=$m["default"]){$m["on_update"]="CURRENT_TIMESTAMP";$m["default"]=$rb;}if($x==$_POST["auto_increment_col"])$m["auto_increment"]=true;$xe=process_field($m,$Rf);$qa[]=array($m["orig"],$xe,$oa);if($xe!=process_field($Ud,$Ud)){$n[]=array($m["orig"],$xe,$oa);if($m["orig"]!=""||$oa)$dg=true;}if($o!==null)$kc[idf_escape($m["field"])]=($b!=""&&$w!="sqlite"?"ADD":" ")." FOREIGN KEY (".idf_escape($m["field"]).") REFERENCES ".table($p[$m["type"]])." (".idf_escape($Rf["field"]).")".(ereg("^($Id)\$",$m["on_delete"])?" ON DELETE $m[on_delete]":"");$oa=" AFTER ".idf_escape($m["field"]);}elseif($m["orig"]!=""){$dg=true;$n[]=array($m["orig"]);}if($m["orig"]!=""){$Ud=next($Vd);if(!$Ud)$oa="";}}$fe="";if(in_array($_POST["partition_by"],$de)){$ge=array();if($_POST["partition_by"]=='RANGE'||$_POST["partition_by"]=='LIST'){foreach(array_filter($_POST["partition_names"])as$x=>$X){$Y=$_POST["partition_values"][$x];$ge[]="\nPARTITION ".idf_escape($X)." VALUES ".($_POST["partition_by"]=='RANGE'?"LESS THAN":"IN").($Y!=""?" ($Y)":" MAXVALUE");}}$fe.="\nPARTITION BY $_POST[partition_by]($_POST[partition])".($ge?" (".implode(",",$ge)."\n)":($_POST["partitions"]?" PARTITIONS ".(+$_POST["partitions"]):""));}elseif(support("partitioning")&&ereg("partitioned",$Wd["Create_options"]))$fe.="\nREMOVE PARTITIONING";$B=lang(140);if($b==""){cookie("adminer_engine",$_POST["Engine"]);$B=lang(141);}$D=trim($_POST["name"]);queries_redirect(ME."table=".urlencode($D),$B,alter_table($b,$D,($w=="sqlite"&&($dg||$kc)?$qa:$n),$kc,$_POST["Comment"],($_POST["Engine"]&&$_POST["Engine"]!=$Wd["Engine"]?$_POST["Engine"]:""),($_POST["Collation"]&&$_POST["Collation"]!=$Wd["Collation"]?$_POST["Collation"]:""),($_POST["Auto_increment"]!=""?+$_POST["Auto_increment"]:""),$fe));}}page_header(($b!=""?lang(26):lang(142)),$l,array("table"=>$b),$b);$L=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($Tf["int"])?"int":(isset($Tf["integer"])?"integer":"")))),"partition_names"=>array(""),);if($_POST){$L=$_POST;if($L["auto_increment_col"])$L["fields"][$L["auto_increment_col"]]["auto_increment"]=true;process_fields($L["fields"]);}elseif($b!=""){$L=$Wd;$L["name"]=$b;$L["fields"]=array();if(!$_GET["auto_increment"])$L["Auto_increment"]="";foreach($Vd as$m){$m["has_default"]=isset($m["default"]);if($m["on_update"])$m["default"].=" ON UPDATE $m[on_update]";$L["fields"][]=$m;}if(support("partitioning")){$qc="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($b);$J=$h->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION $qc ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");list($L["partition_by"],$L["partitions"],$L["partition"])=$J->fetch_row();$L["partition_names"]=array();$L["partition_values"]=array();foreach(get_rows("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $qc AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION")as$Se){$L["partition_names"][]=$Se["PARTITION_NAME"];$L["partition_values"][]=$Se["PARTITION_DESCRIPTION"];}$L["partition_names"][]="";}}$e=collations();$of=floor(extension_loaded("suhosin")?(min(ini_get("suhosin.request.max_vars"),ini_get("suhosin.post.max_vars"))-13)/10:0);if($of&&count($L["fields"])>$of)echo"

".h(lang(143,'suhosin.post.max_vars','suhosin.request.max_vars'))."\n";$Ob=engines();foreach($Ob as$Nb){if(!strcasecmp($Nb,$L["Engine"])){$L["Engine"]=$Nb;break;}}echo'

',lang(144),': ';if($b==""&&!$_POST){?>"(".lang(145).")")+$Ob,$L["Engine"]):""),' ',($e&&!ereg("sqlite|mssql",$w)?html_select("Collation",array(""=>"(".lang(80).")")+$e,$L["Collation"]):""),' ';$Ya=($_POST?$_POST["comments"]:$L["Comment"]!="");if(!$_POST&&!$Ya){foreach($L["fields"]as$m){if($m["comment"]!=""){$Ya=true;break;}}}edit_fields($L["fields"],$e,"TABLE",$of,$p,$Ya);echo'

',lang(87),': ';if(!$_POST["defaults"]){echo'';}echo(support("comment")?checkbox("comments",1,$Ya,lang(89),"columnShow(this.checked, 6); toggle('Comment'); if (this.checked) this.form['Comment'].focus();",true).' ':''),'

';if($_GET["create"]!=""){echo'';}echo' ';if(support("partitioning")){$ee=ereg('RANGE|LIST',$L["partition_by"]);print_fieldset("partition",lang(146),$L["partition_by"]);echo'

',html_select("partition_by",array(-1=>"")+$de,$L["partition_by"],"partitionByChange(this);"),'() ',lang(147),': ';foreach($L["partition_names"]as$x=>$X){echo'',' ';}echo'

';}elseif(isset($_GET["indexes"])){$b=$_GET["indexes"];$Fc=array("PRIMARY","UNIQUE","INDEX");$S=table_status($b);if(eregi("MyISAM|M?aria",$S["Engine"]))$Fc[]="FULLTEXT";$v=indexes($b);if($w=="sqlite"){unset($Fc[0]);unset($v[""]);}if($_POST&&!$l&&!$_POST["add"]){$sa=array();foreach($_POST["indexes"]as$u){$D=$u["name"];if(in_array($u["type"],$Fc)){$f=array();$ed=array();$P=array();ksort($u["columns"]);foreach($u["columns"]as$x=>$Ua){if($Ua!=""){$dd=$u["lengths"][$x];$P[]=idf_escape($Ua).($dd?"(".(+$dd).")":"");$f[]=$Ua;$ed[]=($dd?$dd:null);}}if($f){$Yb=$v[$D];if($Yb){ksort($Yb["columns"]);ksort($Yb["lengths"]);if($u["type"]==$Yb["type"]&&array_values($Yb["columns"])===$f&&(!$Yb["lengths"]||array_values($Yb["lengths"])===$ed)){unset($v[$D]);continue;}}$sa[]=array($u["type"],$D,"(".implode(", ",$P).")");}}}foreach($v as$D=>$Yb)$sa[]=array($Yb["type"],$D,"DROP");if(!$sa)redirect(ME."table=".urlencode($b));queries_redirect(ME."table=".urlencode($b),lang(150),alter_indexes($b,$sa));}page_header(lang(97),$l,array("table"=>$b),$b);$n=array_keys(fields($b));$L=array("indexes"=>$v);if($_POST){$L=$_POST;if($_POST["add"]){foreach($L["indexes"]as$x=>$u){if($u["columns"][count($u["columns"])]!="")$L["indexes"][$x]["columns"][]="";}$u=end($L["indexes"]);if($u["type"]||array_filter($u["columns"],'strlen')||array_filter($u["lengths"],'strlen'))$L["indexes"][]=array("columns"=>array(1=>""));}}else{foreach($L["indexes"]as$x=>$u){$L["indexes"][$x]["name"]=$x;$L["indexes"][$x]["columns"][]="";}$L["indexes"][]=array("columns"=>array(1=>""));}echo'
';$Pc=1;foreach($L["indexes"]as$u){echo"
',lang(151),'',lang(152),'',lang(153),'
".html_select("indexes[$Pc][type]",array(-1=>"")+$Fc,$u["type"],($Pc==count($L["indexes"])?"indexesAddRow(this);":1))."";ksort($u["columns"]);$s=1;foreach($u["columns"]as$x=>$Ua){echo"".html_select("indexes[$Pc][columns][$s]",array(-1=>"")+$n,$Ua,($s==count($u["columns"])?"indexesAddColumn":"indexesChangeColumn")."(this, '".js_escape($w=="sql"?"":$_GET["indexes"]."_")."');")," ";$s++;}echo"\n";$Pc++;}echo'

';}elseif(isset($_GET["database"])){if($_POST&&!$l&&!isset($_POST["add_x"])){restart_session();$D=trim($_POST["name"]);if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),lang(154),drop_databases(array(DB)));}elseif(DB!==$D){if(DB!=""){$_GET["db"]=$D;queries_redirect(preg_replace('~db=[^&]*&~','',ME)."db=".urlencode($D),lang(155),rename_database($D,$_POST["collation"]));}else{$j=explode("\n",str_replace("\r","",$D));$mf=true;$Xc="";foreach($j as$k){if(count($j)==1||$k!=""){if(!create_database($k,$_POST["collation"]))$mf=false;$Xc=$k;}}queries_redirect(ME."db=".urlencode($Xc),lang(156),$mf);}}else{if(!$_POST["collation"])redirect(substr(ME,0,-1));query_redirect("ALTER DATABASE ".idf_escape($D).(eregi('^[a-z0-9_]+$',$_POST["collation"])?" COLLATE $_POST[collation]":""),substr(ME,0,-1),lang(157));}}page_header(DB!=""?lang(45):lang(158),$l,array(),DB);$e=collations();$D=DB;$Ra=null;if($_POST){$D=$_POST["name"];$Ra=$_POST["collation"];}elseif(DB!="")$Ra=db_collation(DB,$e);elseif($w=="sql"){foreach(get_vals("SHOW GRANTS")as$r){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\\.\\*)?~',$r,$A)&&$A[1]){$D=stripcslashes(idf_unescape("`$A[2]`"));break;}}}echo'

',($_POST["add_x"]||strpos($D,"\n")?'
':'')."\n".($e?html_select("collation",array(""=>"(".lang(80).")")+$e,$Ra):"");?> ';if(DB!="")echo"\n";elseif(!$_POST["add_x"]&&$_GET["db"]=="")echo"\n";echo'

';}elseif(isset($_GET["call"])){$ca=$_GET["call"];page_header(lang(159).": ".h($ca),$l);$Pe=routine($ca,(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$Ec=array();$Xd=array();foreach($Pe["fields"]as$s=>$m){if(substr($m["inout"],-3)=="OUT")$Xd[$s]="@".idf_escape($m["field"])." AS ".idf_escape($m["field"]);if(!$m["inout"]||substr($m["inout"],0,2)=="IN")$Ec[]=$s;}if(!$l&&$_POST){$Ia=array();foreach($Pe["fields"]as$x=>$m){if(in_array($x,$Ec)){$X=process_input($m);if($X===false)$X="''";if(isset($Xd[$x]))$h->query("SET @".idf_escape($m["field"])." = $X");}$Ia[]=(isset($Xd[$x])?"@".idf_escape($m["field"]):$X);}$I=(isset($_GET["callf"])?"SELECT":"CALL")." ".idf_escape($ca)."(".implode(", ",$Ia).")";echo"

".h($I)." ".lang(29)."\n";if(!$h->multi_query($I))echo"

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

".lang(160,$h->affected_rows)."\n";}while($h->next_result());if($Xd)select($h->query("SELECT ".implode(", ",$Xd)));}}echo'

';if($Ec){echo"\n";foreach($Ec as$x){$m=$Pe["fields"][$x];$D=$m["field"];echo"
".$c->fieldName($m);$Y=$_POST["fields"][$D];if($Y!=""){if($m["type"]=="enum")$Y=+$Y;if($m["type"]=="set")$Y=array_sum($Y);}input($m,$Y,(string)$_POST["function"][$D]);echo"\n";}echo"
\n";}echo'

';}elseif(isset($_GET["foreign"])){$b=$_GET["foreign"];if($_POST&&!$l&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){if($_POST["drop"])query_redirect("ALTER TABLE ".table($b)."\nDROP ".($w=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($_GET["name"]),ME."table=".urlencode($b),lang(161));else{$df=array_filter($_POST["source"],'strlen');ksort($df);$_f=array();foreach($df as$x=>$X)$_f[$x]=$_POST["target"][$x];query_redirect("ALTER TABLE ".table($b).($_GET["name"]!=""?"\nDROP ".($w=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($_GET["name"]).",":"")."\nADD FOREIGN KEY (".implode(", ",array_map('idf_escape',$df)).") REFERENCES ".table($_POST["table"])." (".implode(", ",array_map('idf_escape',$_f)).")".(ereg("^($Id)\$",$_POST["on_delete"])?" ON DELETE $_POST[on_delete]":"").(ereg("^($Id)\$",$_POST["on_update"])?" ON UPDATE $_POST[on_update]":""),ME."table=".urlencode($b),($_GET["name"]!=""?lang(162):lang(163)));$l=lang(164)."
$l";}}page_header(lang(165),$l,array("table"=>$b),$b);$L=array("table"=>$b,"source"=>array(""));if($_POST){$L=$_POST;ksort($L["source"]);if($_POST["add"])$L["source"][]="";elseif($_POST["change"]||$_POST["change-js"])$L["target"]=array();}elseif($_GET["name"]!=""){$p=foreign_keys($b);$L=$p[$_GET["name"]];$L["source"][]="";}$df=array_keys(fields($b));$_f=($b===$L["table"]?$df:array_keys(fields($L["table"])));$Ce=array();foreach(table_status()as$D=>$S){if(fk_support($S))$Ce[]=$D;}echo'

';if($L["db"]==""&&$L["ns"]==""){echo lang(166),': ',html_select("table",$Ce,$L["table"],"this.form['change-js'].value = '1'; this.form.submit();"),'

';$Pc=0;foreach($L["source"]as$x=>$X){echo"","
',lang(99),'',lang(100),'
".html_select("source[".(+$x)."]",array(-1=>"")+$df,$X,($Pc==count($L["source"])-1?"foreignAddRow(this);":1)),"".html_select("target[".(+$x)."]",$_f,$L["target"][$x]);$Pc++;}echo'

',lang(81),': ',html_select("on_delete",array(-1=>"")+explode("|",$Id),$L["on_delete"]),' ',lang(101),': ',html_select("on_update",array(-1=>"")+explode("|",$Id),$L["on_update"]),'

';}if($_GET["name"]!=""){echo'';}echo'

';}elseif(isset($_GET["view"])){$b=$_GET["view"];$Bb=false;if($_POST&&!$l){$D=trim($_POST["name"]);$Bb=drop_create("DROP VIEW ".table($b),"CREATE VIEW ".table($D)." AS\n$_POST[select]",($_POST["drop"]?substr(ME,0,-1):ME."table=".urlencode($D)),lang(169),lang(170),lang(171),$b);}page_header(($b!=""?lang(25):lang(172)),$l,array("table"=>$b),$b);$L=$_POST;if(!$L&&$b!=""){$L=view($b);$L["name"]=$b;}echo'

',lang(153),':

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

';if($Bb){echo'';}echo' ';if($_GET["view"]!=""){echo'';}echo'

';}elseif(isset($_GET["event"])){$aa=$_GET["event"];$Kc=array("YEAR","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND");$if=array("ENABLED"=>"ENABLE","DISABLED"=>"DISABLE","SLAVESIDE_DISABLED"=>"DISABLE ON SLAVE");if($_POST&&!$l){if($_POST["drop"])query_redirect("DROP EVENT ".idf_escape($aa),substr(ME,0,-1),lang(173));elseif(in_array($_POST["INTERVAL_FIELD"],$Kc)&&isset($if[$_POST["STATUS"]])){$Ue="\nON SCHEDULE ".($_POST["INTERVAL_VALUE"]?"EVERY ".q($_POST["INTERVAL_VALUE"])." $_POST[INTERVAL_FIELD]".($_POST["STARTS"]?" STARTS ".q($_POST["STARTS"]):"").($_POST["ENDS"]?" ENDS ".q($_POST["ENDS"]):""):"AT ".q($_POST["STARTS"]))." ON COMPLETION".($_POST["ON_COMPLETION"]?"":" NOT")." PRESERVE";queries_redirect(substr(ME,0,-1),($aa!=""?lang(174):lang(175)),queries(($aa!=""?"ALTER EVENT ".idf_escape($aa).$Ue.($aa!=$_POST["EVENT_NAME"]?"\nRENAME TO ".idf_escape($_POST["EVENT_NAME"]):""):"CREATE EVENT ".idf_escape($_POST["EVENT_NAME"]).$Ue)."\n".$if[$_POST["STATUS"]]." COMMENT ".q($_POST["EVENT_COMMENT"]).rtrim(" DO\n$_POST[EVENT_DEFINITION]",";").";"));}}page_header(($aa!=""?lang(176).": ".h($aa):lang(177)),$l);$L=$_POST;if(!$L&&$aa!=""){$M=get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = ".q(DB)." AND EVENT_NAME = ".q($aa));$L=reset($M);}echo'
',lang(153),'
',lang(178),'
',lang(179),'
',lang(180),' ',html_select("INTERVAL_FIELD",$Kc,$L["INTERVAL_FIELD"]),'
',lang(70),'',html_select("STATUS",$if,$L["STATUS"]),'
',lang(89),'
 ',checkbox("ON_COMPLETION","PRESERVE",$L["ON_COMPLETION"]=="PRESERVE",lang(181)),'

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

';if($aa!=""){echo'';}echo'

';}elseif(isset($_GET["procedure"])){$ca=$_GET["procedure"];$Pe=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$Qe=routine_languages();$Bb=false;if($_POST&&!$l&&!$_POST["add"]&&!$_POST["drop_col"]&&!$_POST["up"]&&!$_POST["down"]){$P=array();$n=(array)$_POST["fields"];ksort($n);foreach($n as$m){if($m["field"]!="")$P[]=(ereg("^($Hc)\$",$m["inout"])?"$m[inout] ":"").idf_escape($m["field"]).process_type($m,"CHARACTER SET");}$Bb=drop_create("DROP $Pe ".idf_escape($ca),"CREATE $Pe ".idf_escape(trim($_POST["name"]))." (".implode(", ",$P).")".(isset($_GET["function"])?" RETURNS".process_type($_POST["returns"],"CHARACTER SET"):"").(in_array($_POST["language"],$Qe)?" LANGUAGE $_POST[language]":"").rtrim("\n$_POST[definition]",";").";",substr(ME,0,-1),lang(182),lang(183),lang(184),$ca);}page_header(($ca!=""?(isset($_GET["function"])?lang(185):lang(186)).": ".h($ca):(isset($_GET["function"])?lang(187):lang(188))),$l);$e=get_vals("SHOW CHARACTER SET");sort($e);$L=array("fields"=>array());if($_POST){$L=$_POST;$L["fields"]=(array)$L["fields"];process_fields($L["fields"]);}elseif($ca!=""){$L=routine($ca,$Pe);$L["name"]=$ca;}echo'

',lang(153),': ',($Qe?lang(8).": ".html_select("language",$Qe,$L["language"]):""),' ';edit_fields($L["fields"],$e,$Pe);if(isset($_GET["function"])){echo"
".lang(189);edit_type("returns",$L["returns"],$e);}echo'

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

';if($ca!=""){echo'';}if($Bb){echo'';}echo'

';}elseif(isset($_GET["trigger"])){$b=$_GET["trigger"];$Pf=trigger_options();$Of=array("INSERT","UPDATE","DELETE");$Bb=false;if($_POST&&!$l&&in_array($_POST["Timing"],$Pf["Timing"])&&in_array($_POST["Event"],$Of)&&in_array($_POST["Type"],$Pf["Type"])){$Ef=" $_POST[Timing] $_POST[Event]";$Hd=" ON ".table($b);$Bb=drop_create("DROP TRIGGER ".idf_escape($_GET["name"]).($w=="pgsql"?$Hd:""),"CREATE TRIGGER ".idf_escape($_POST["Trigger"]).($w=="mssql"?$Hd.$Ef:$Ef.$Hd).rtrim(" $_POST[Type]\n$_POST[Statement]",";").";",ME."table=".urlencode($b),lang(190),lang(191),lang(192),$_GET["name"]);}page_header(($_GET["name"]!=""?lang(193).": ".h($_GET["name"]):lang(194)),$l,array("table"=>$b));$L=$_POST;if(!$L)$L=trigger($_GET["name"])+array("Trigger"=>$b."_bi");echo'
',lang(195),'',html_select("Timing",$Pf["Timing"],$L["Timing"],"if (/^".preg_quote($b,"/")."_[ba][iud]$/.test(this.form['Trigger'].value)) this.form['Trigger'].value = '".js_escape($b)."_' + selectValue(this).charAt(0).toLowerCase() + selectValue(this.form['Event']).charAt(0).toLowerCase();"),'
',lang(196),'',html_select("Event",$Of,$L["Event"],"this.form['Timing'].onchange();"),'
',lang(84),'',html_select("Type",$Pf["Type"],$L["Type"]),'

',lang(153),':

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

';if($_GET["name"]!=""){echo'';}if($Bb){echo'';}echo'

';}elseif(isset($_GET["user"])){$ea=$_GET["user"];$ve=array(""=>array("All privileges"=>""));foreach(get_rows("SHOW PRIVILEGES")as$L){foreach(explode(",",($L["Privilege"]=="Grant option"?"":$L["Context"]))as$db)$ve[$db][$L["Privilege"]]=$L["Comment"];}$ve["Server Admin"]+=$ve["File access on server"];$ve["Databases"]["Create routine"]=$ve["Procedures"]["Create routine"];unset($ve["Procedures"]["Create routine"]);$ve["Columns"]=array();foreach(array("Select","Insert","Update","References")as$X)$ve["Columns"][$X]=$ve["Tables"][$X];unset($ve["Server Admin"]["Usage"]);foreach($ve["Tables"]as$x=>$X)unset($ve["Databases"][$x]);$zd=array();if($_POST){foreach($_POST["objects"]as$x=>$X)$zd[$X]=(array)$zd[$X]+(array)$_POST["grants"][$x];}$tc=array();$Fd="";if(isset($_GET["host"])&&($J=$h->query("SHOW GRANTS FOR ".q($ea)."@".q($_GET["host"])))){while($L=$J->fetch_row()){if(preg_match('~GRANT (.*) ON (.*) TO ~',$L[0],$A)&&preg_match_all('~ *([^(,]*[^ ,(])( *\\([^)]+\\))?~',$A[1],$jd,PREG_SET_ORDER)){foreach($jd as$X){if($X[1]!="USAGE")$tc["$A[2]$X[2]"][$X[1]]=true;if(ereg(' WITH GRANT OPTION',$L[0]))$tc["$A[2]$X[2]"]["GRANT OPTION"]=true;}}if(preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~",$L[0],$A))$Fd=$A[1];}}if($_POST&&!$l){$Gd=(isset($_GET["host"])?q($ea)."@".q($_GET["host"]):"''");$_d=q($_POST["user"])."@".q($_POST["host"]);$he=q($_POST["pass"]);if($_POST["drop"])query_redirect("DROP USER $Gd",ME."privileges=",lang(197));else{$ib=false;if($Gd!=$_d){$ib=queries(($h->server_info<5?"GRANT USAGE ON *.* TO":"CREATE USER")." $_d IDENTIFIED BY".($_POST["hashed"]?" PASSWORD":"")." $he");$l=!$ib;}elseif($_POST["pass"]!=$Fd||!$_POST["hashed"])queries("SET PASSWORD FOR $_d = ".($_POST["hashed"]?$he:"PASSWORD($he)"));if(!$l){$Me=array();foreach($zd as$Bd=>$r){if(isset($_GET["grant"]))$r=array_filter($r);$r=array_keys($r);if(isset($_GET["grant"]))$Me=array_diff(array_keys(array_filter($zd[$Bd],'strlen')),$r);elseif($Gd==$_d){$Ed=array_keys((array)$tc[$Bd]);$Me=array_diff($Ed,$r);$r=array_diff($r,$Ed);unset($tc[$Bd]);}if(preg_match('~^(.+)\\s*(\\(.*\\))?$~U',$Bd,$A)&&(!grant("REVOKE",$Me,$A[2]," ON $A[1] FROM $_d")||!grant("GRANT",$r,$A[2]," ON $A[1] TO $_d"))){$l=true;break;}}}if(!$l&&isset($_GET["host"])){if($Gd!=$_d)queries("DROP USER $Gd");elseif(!isset($_GET["grant"])){foreach($tc as$Bd=>$Me){if(preg_match('~^(.+)(\\(.*\\))?$~U',$Bd,$A))grant("REVOKE",array_keys($Me),$A[2]," ON $A[1] FROM $_d");}}}queries_redirect(ME."privileges=",(isset($_GET["host"])?lang(198):lang(199)),!$l);if($ib)$h->query("DROP USER $_d");}}page_header((isset($_GET["host"])?lang(18).": ".h("$ea@$_GET[host]"):lang(113)),$l,array("privileges"=>array('',lang(49))));if($_POST){$L=$_POST;$tc=$zd;}else{$L=$_GET+array("host"=>$h->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)"));$L["pass"]=$Fd;if($Fd!="")$L["hashed"]=true;$tc[(DB==""||$tc?"":idf_escape(addcslashes(DB,"%_"))).".*"]=array();}echo'
',lang(17),'
',lang(18),'
',lang(19),' ';if(!$L["hashed"]){echo'';}echo checkbox("hashed",1,$L["hashed"],lang(200),"typePassword(this.form['pass'], this.checked);"),'
';echo"\n","\n";foreach(array(""=>"","Server Admin"=>lang(17),"Databases"=>lang(20),"Tables"=>lang(95),"Columns"=>lang(96),"Procedures"=>lang(201),)as$db=>$tb){foreach((array)$ve[$db]as$ue=>$Xa){echo"$tb'.h($ue);$s=0;foreach($tc as$Bd=>$r){$D="'grants[$s][".h(strtoupper($ue))."]'";$Y=$r[strtoupper($ue)];if($db=="Server Admin"&&$Bd!=(isset($tc["*.*"])?"*.*":".*"))echo"
".lang(49)."";$s=0;foreach($tc as$Bd=>$r){echo''.($Bd!="*.*"?"":"*.*");$s++;}echo"
 ";elseif(isset($_GET["grant"]))echo"";else echo"";$s++;}}}echo"
\n",'

';if(isset($_GET["host"])){echo'';}echo'

';}elseif(isset($_GET["processlist"])){if(support("kill")&&$_POST&&!$l){$Uc=0;foreach((array)$_POST["kill"]as$X){if(queries("KILL ".(+$X)))$Uc++;}queries_redirect(ME."processlist=",lang(204,$Uc),$Uc||!$_POST["kill"]);}page_header(lang(68),$l);echo'
';$s=-1;foreach(process_list()as$s=>$L){if(!$s)echo"".(support("kill")?"\n";echo"".(support("kill")?"
 ":"")."".implode("",array_keys($L))."
".checkbox("kill[]",$L["Id"],0):"");foreach($L as$x=>$X)echo"".(($w=="sql"&&$x=="Info"&&ereg("Query|Killed",$L["Command"])&&$X!="")||($w=="pgsql"&&$x=="current_query"&&$X!="")||($w=="oracle"&&$x=="sql_text"&&$X!="")?"".shorten_utf8($X,100,"").' '.lang(29).'':nbsp($X));echo"\n";}echo'

';if(support("kill")){echo($s+1)."/".lang(205,$h->result("SELECT @@max_connections")),"

\n";}echo'

';}elseif(isset($_GET["select"])){$b=$_GET["select"];$S=table_status($b);$v=indexes($b);$n=fields($b);$p=column_foreign_keys($b);$Dd="";if($S["Oid"]=="t"){$Dd=($w=="sqlite"?"rowid":"oid");$v[]=array("type"=>"PRIMARY","columns"=>array($Dd));}parse_str($_COOKIE["adminer_import"],$la);$Ne=array();$f=array();$Cf=null;foreach($n as$x=>$m){$D=$c->fieldName($m);if(isset($m["privileges"]["select"])&&$D!=""){$f[$x]=html_entity_decode(strip_tags($D));if(is_shortable($m))$Cf=$c->selectLengthProcess();}$Ne+=$m["privileges"];}list($N,$uc)=$c->selectColumnsProcess($f,$v);$Lc=count($uc)selectSearchProcess($n,$v);$Pd=$c->selectOrderProcess($n,$v);$y=$c->selectLimitProcess();$qc=($N?implode(", ",$N):"*".($Dd?", $Dd":""));if($w=="sql"){foreach($f as$x=>$X){$ua=convert_field($n[$x]);if($ua)$qc.=", $ua AS ".idf_escape($x);}}$qc.="\nFROM ".table($b);$vc=($uc&&$Lc?"\nGROUP BY ".implode(", ",$uc):"").($Pd?"\nORDER BY ".implode(", ",$Pd):"");if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$Xf=>$L){$ua=convert_field($n[key($L)]);echo$h->result("SELECT".limit(($ua?$ua:idf_escape(key($L)))." FROM ".table($b)," WHERE ".where_check($Xf,$n).($Z?" AND ".implode(" AND ",$Z):"").($Pd?" ORDER BY ".implode(", ",$Pd):""),1));}exit;}if($_POST&&!$l){$ng="(".implode(") OR (",array_map('where_check',(array)$_POST["check"])).")";$re=$Zf=null;foreach($v as$u){if($u["type"]=="PRIMARY"){$re=array_flip($u["columns"]);$Zf=($N?$re:array());break;}}foreach((array)$Zf as$x=>$X){if(in_array(idf_escape($x),$N))unset($Zf[$x]);}if($_POST["export"]){cookie("adminer_import","output=".urlencode($_POST["output"])."&format=".urlencode($_POST["format"]));dump_headers($b);$c->dumpTable($b,"");if(!is_array($_POST["check"])||$Zf===array()){$mg=$Z;if(is_array($_POST["check"]))$mg[]="($ng)";$I="SELECT $qc".($mg?"\nWHERE ".implode(" AND ",$mg):"").$vc;}else{$Vf=array();foreach($_POST["check"]as$X)$Vf[]="(SELECT".limit($qc,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$n).$vc,1).")";$I=implode(" UNION ALL ",$Vf);}$c->dumpData($b,"table",$I);exit;}if(!$c->selectEmailProcess($Z,$p)){if($_POST["save"]||$_POST["delete"]){$J=true;$ma=0;$I=table($b);$P=array();if(!$_POST["delete"]){foreach($f as$D=>$X){$X=process_input($n[$D]);if($X!==null){if($_POST["clone"])$P[idf_escape($D)]=($X!==false?$X:idf_escape($D));elseif($X!==false)$P[]=idf_escape($D)." = $X";}}$I.=($_POST["clone"]?" (".implode(", ",array_keys($P)).")\nSELECT ".implode(", ",$P)."\nFROM ".table($b):" SET\n".implode(",\n",$P));}if($_POST["delete"]||$P){$Va="UPDATE";if($_POST["delete"]){$Va="DELETE";$I="FROM $I";}if($_POST["clone"]){$Va="INSERT";$I="INTO $I";}if($_POST["all"]||($Zf===array()&&$_POST["check"])||$Lc){$J=queries("$Va $I".($_POST["all"]?($Z?"\nWHERE ".implode(" AND ",$Z):""):"\nWHERE $ng"));$ma=$h->affected_rows;}else{foreach((array)$_POST["check"]as$X){$J=queries($Va.limit1($I,"\nWHERE ".where_check($X,$n)));if(!$J)break;$ma+=$h->affected_rows;}}}$B=lang(207,$ma);if($_POST["clone"]&&$J&&$ma==1){$Yc=last_id();if($Yc)$B=lang(132," $Yc");}queries_redirect(remove_from_uri("page"),$B,$J);}elseif(!$_POST["import"]){if(!$_POST["val"])$l=lang(208);else{$J=true;$ma=0;foreach($_POST["val"]as$Xf=>$L){$P=array();foreach($L as$x=>$X){$x=bracket_escape($x,1);$P[]=idf_escape($x)." = ".(ereg('char|text',$n[$x]["type"])||$X!=""?$c->processInput($n[$x],$X):"NULL");}$I=table($b)." SET ".implode(", ",$P);$mg=" WHERE ".where_check($Xf,$n).($Z?" AND ".implode(" AND ",$Z):"");$J=queries("UPDATE".($Lc?" $I$mg":limit1($I,$mg)));if(!$J)break;$ma+=$h->affected_rows;}queries_redirect(remove_from_uri(),lang(207,$ma),$J);}}elseif(is_string($fc=get_file("csv_file",true))){cookie("adminer_import","output=".urlencode($la["output"])."&format=".urlencode($_POST["separator"]));$J=true;$Ta=array_keys($n);preg_match_all('~(?>"[^"]*"|[^"\\r\\n]+)+~',$fc,$jd);$ma=count($jd[0]);begin();$Ze=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));foreach($jd[0]as$x=>$X){preg_match_all("~((?>\"[^\"]*\")+|[^$Ze]*)$Ze~",$X.$Ze,$kd);if(!$x&&!array_diff($kd[1],$Ta)){$Ta=$kd[1];$ma--;}else{$P=array();foreach($kd[1]as$s=>$Qa)$P[idf_escape($Ta[$s])]=($Qa==""&&$n[$Ta[$s]]["null"]?"NULL":q(str_replace('""','"',preg_replace('~^"|"$~','',$Qa))));$J=insert_update($b,$P,$re);if(!$J)break;}}if($J)queries("COMMIT");queries_redirect(remove_from_uri("page"),lang(209,$ma),$J);queries("ROLLBACK");}else$l=upload_error($fc);}}$tf=$c->tableName($S);if(is_ajax())ob_start();page_header(lang(31).": $tf",$l);$P=null;if(isset($Ne["insert"])){$P="";foreach((array)$_GET["where"]as$X){if(count($p[$X["col"]])==1&&($X["op"]=="="||(!$X["op"]&&!ereg('[_%]',$X["val"]))))$P.="&set".urlencode("[".bracket_escape($X["col"])."]")."=".urlencode($X["val"]);}}$c->selectLinks($S,$P);if(!$f)echo"

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

\n","
";hidden_fields_get();echo(DB!=""?''.(isset($_GET["ns"])?'':""):"");echo'',"
\n";$c->selectColumnsPrint($N,$f);$c->selectSearchPrint($Z,$f,$v);$c->selectOrderPrint($Pd,$f,$v);$c->selectLimitPrint($y);$c->selectLengthPrint($Cf);$c->selectActionPrint($v);echo"
\n";$F=$_GET["page"];if($F=="last"){$oc=$h->result("SELECT COUNT(*) FROM ".table($b).($Z?" WHERE ".implode(" AND ",$Z):""));$F=floor(max(0,$oc-1)/$y);}$I=$c->selectQueryBuild($N,$Z,$uc,$Pd,$y,$F);if(!$I)$I="SELECT".limit((+$y&&$uc&&$Lc&&$w=="sql"?"SQL_CALC_FOUND_ROWS ":"").$qc,($Z?"\nWHERE ".implode(" AND ",$Z):"").$vc,($y!=""?+$y:null),($F?$y*$F:0),"\n");echo$c->selectQuery($I);$J=$h->query($I);if(!$J)echo"

".error()."\n";else{if($w=="mssql")$J->seek($y*$F);$Kb=array();echo"

\n";$M=array();while($L=$J->fetch_assoc()){if($F&&$w=="oracle")unset($L["RNUM"]);$M[]=$L;}if($_GET["page"]!="last")$oc=(+$y&&$uc&&$Lc?($w=="sql"?$h->result(" SELECT FOUND_ROWS()"):$h->result("SELECT COUNT(*) FROM ($I) x")):count($M));if(!$M)echo"

".lang(77)."\n";else{$Aa=$c->backwardKeys($b,$tf);echo"\n","".(!$uc&&$N?"":"\n";if(is_ajax()){if($y%2==1&&$F%2==1)odd();ob_end_clean();}foreach($c->rowDescriptions($M,$p)as$C=>$L){$Wf=unique_array($M[$C],$v);$Xf="";foreach($Wf as$x=>$X)$Xf.="&".($X!==null?urlencode("where[".bracket_escape($x)."]")."=".urlencode($X):"null%5B%5D=".urlencode($x));echo"".(!$uc&&$N?"":"\n";}if(is_ajax())exit;echo"
".lang(211)."");$yd=array();$sc=array();reset($N);$_e=1;foreach($M[0]as$x=>$X){if($x!=$Dd){$X=$_GET["columns"][key($N)];$m=$n[$N?($X?$X["col"]:current($N)):$x];$D=($m?$c->fieldName($m,$_e):"*");if($D!=""){$_e++;$yd[$x]=$D;$Ua=idf_escape($x);$Ac=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($x);$tb="&desc%5B0%5D=1";echo'','';echo(!$N||$X?apply_sql_function($X["fun"],$D):h(current($N)))."";echo"";}$sc[$x]=$X["fun"];next($N);}}$ed=array();if($_GET["modify"]){foreach($M as$L){foreach($L as$x=>$X)$ed[$x]=max($ed[$x],min(40,strlen(utf8_decode($X))));}}echo($Aa?"".lang(212):"")."
".checkbox("check[]",substr($Xf,1),in_array(substr($Xf,1),(array)$_POST["check"]),"","this.form['all'].checked = false; formUncheck('all-page');").($Lc||information_schema(DB)?"":" ".lang(211).""));foreach($L as$x=>$X){if(isset($yd[$x])){$m=$n[$x];if($X!=""&&(!isset($Kb[$x])||$Kb[$x]!=""))$Kb[$x]=(is_mail($X)?$yd[$x]:"");$z="";$X=$c->editVal($X,$m);if($X!==null){if(ereg('blob|bytea|raw|file',$m["type"])&&$X!="")$z=ME.'download='.urlencode($b).'&field='.urlencode($x).$Xf;if($X==="")$X=" ";elseif($Cf!=""&&is_shortable($m))$X=shorten_utf8($X,max(0,+$Cf));else$X=h($X);if(!$z){foreach((array)$p[$x]as$o){if(count($p[$x])==1||end($o["source"])==$x){$z="";foreach($o["source"]as$s=>$df)$z.=where_link($s,$o["target"][$s],$M[$C][$df]);$z=($o["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\\1'.urlencode($o["db"]),ME):ME).'select='.urlencode($o["table"]).$z;if(count($o["source"])==1)break;}}}if($x=="COUNT(*)"){$z=ME."select=".urlencode($b);$s=0;foreach((array)$_GET["where"]as$W){if(!array_key_exists($W["col"],$Wf))$z.=where_link($s++,$W["col"],$W["val"],$W["op"]);}foreach($Wf as$Rc=>$W)$z.=where_link($s++,$Rc,$W);}}if(!$z&&($z=$c->selectLink($L[$x],$m))===null){if(is_mail($L[$x]))$z="mailto:$L[$x]";if($ye=is_url($L[$x]))$z=($ye=="http"&&$ba?$L[$x]:"$ye://www.adminer.org/redirect/?url=".urlencode($L[$x]));}$t=h("val[$Xf][".bracket_escape($x)."]");$Y=$_POST["val"][$Xf][bracket_escape($x)];$xc=h($Y!==null?$Y:$L[$x]);$id=strpos($X,"...");$Gb=is_utf8($X)&&$M[$C][$x]==$L[$x]&&!$sc[$x];$Bf=ereg('text|lob',$m["type"]);echo(($_GET["modify"]&&$Gb)||$Y!==null?"".($Bf?"":""):"".$c->selectVal($X,$z,$m));}}if($Aa)echo"";$c->backwardKeysPrint($Aa,$M[$C]);echo"
\n",(!$uc&&$N?"":"\n");}if(($M||$F)&&!is_ajax()){$Ub=true;if($_GET["page"]!="last"&&+$y&&!$Lc&&($oc>=$y||$F)){$oc=found_rows($S,$Z);if($oc";if(+$y&&($oc===false||$oc>$y)){$md=($oc===false?$F+(count($M)>=$y?2:1):floor(($oc-1)/$y));echo'".lang(214).":",pagination(0,$F).($F>5?" ...":"");for($s=max(1,$F-4);$s'.lang(215)."");}echo($oc!==false?" (".($Ub?"":"~ ").lang(115,$oc).")":""),(+$y&&($oc===false?count($M)+1:$oc-$F*$y)>$y?' '.lang(217).'':'')," ".checkbox("all",1,0,lang(218))."\n";if($c->selectCommandPrint()){echo'

',lang(29),'
';}$mc=$c->dumpFormat();if($mc){print_fieldset("export",lang(107));$Yd=$c->dumpOutput();echo($Yd?html_select("output",$Yd,$la["output"])." ":""),html_select("format",$mc,$la["format"])," \n","\n";}}if($c->selectImportPrint()){print_fieldset("import",lang(220),!$M);echo" ",html_select("separator",array("csv"=>"CSV,","csv;"=>"CSV;","tsv"=>"TSV"),$la["format"],1);echo" ","\n";}$c->selectEmailPrint(array_filter($Kb,'strlen'),$f);echo"

\n","
\n";}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["variables"])){$hf=isset($_GET["status"]);page_header($hf?lang(70):lang(69));$hg=($hf?show_status():show_variables());if(!$hg)echo"

".lang(77)."\n";else{echo"\n";foreach($hg as$x=>$X){echo"","
".h($x)."","".nbsp($X);}echo"
\n";}}elseif(isset($_GET["script"])){header("Content-Type: text/javascript; charset=utf-8");if($_GET["script"]=="db"){$qf=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$S){$t=js_escape($S["Name"]);json_row("Comment-$t",nbsp($S["Comment"]));if(!is_view($S)){foreach(array("Engine","Collation")as$x)json_row("$x-$t",nbsp($S[$x]));foreach($qf+array("Auto_increment"=>0,"Rows"=>0)as$x=>$X){if($S[$x]!=""){$X=number_format($S[$x],0,'.',lang(7));json_row("$x-$t",($x=="Rows"&&$X&&$S["Engine"]==($ff=="pgsql"?"table":"InnoDB")?"~ $X":$X));if(isset($qf[$x]))$qf[$x]+=($S["Engine"]!="InnoDB"||$x!="Data_free"?$S[$x]:0);}elseif(array_key_exists($x,$S))json_row("$x-$t");}}}foreach($qf as$x=>$X)json_row("sum-$x",number_format($X,0,'.',lang(7)));json_row("");}elseif($_GET["script"]=="kill")$h->query("KILL ".(+$_POST["kill"]));else{foreach(count_tables($c->databases())as$k=>$X)json_row("tables-".js_escape($k),$X);json_row("");}exit;}else{$zf=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($zf&&!$l&&!$_POST["search"]){$J=true;$B="";if($w=="sql"&&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"]);$B=lang(221);}elseif($_POST["move"]){$J=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$B=lang(222);}elseif($_POST["copy"]){$J=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$B=lang(223);}elseif($_POST["drop"]){if($_POST["views"])$J=drop_views($_POST["views"]);if($J&&$_POST["tables"])$J=drop_tables($_POST["tables"]);$B=lang(224);}elseif($w!="sql"){$J=($w=="sqlite"?queries("VACUUM"):apply_queries("VACUUM".($_POST["optimize"]?"":" ANALYZE"),$_POST["tables"]));$B=lang(225);}elseif($_POST["tables"]&&($J=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('idf_escape',$_POST["tables"]))))){while($L=$J->fetch_assoc())$B.="".h($L["Table"]).": ".h($L["Msg_text"])."
";}queries_redirect(substr(ME,0,-1),$B,$J);}page_header(($_GET["ns"]==""?lang(20).": ".h(DB):lang(226).": ".h($_GET["ns"])),$l,true);if($c->homepage()){if($_GET["ns"]!==""){echo"

".lang(227)."

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

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

\n","

".lang(228).": \n";if($_POST["search"]&&$_POST["query"]!="")search_tables();echo"\n",'\n";foreach($yf as$D=>$U){$ig=($U!==null&&!eregi("table",$U));echo'
',''.lang(95),''.lang(229),''.lang(74),''.lang(230),''.lang(231),''.lang(232),''.lang(87),''.lang(233),(support("comment")?''.lang(89):''),"
'.checkbox(($ig?"views[]":"tables[]"),$D,in_array($D,$zf,true),"","formUncheck('check-all');"),''.h($D).'';if($ig){echo''.lang(94).'','?';}else{foreach(array("Engine"=>array(),"Collation"=>array(),"Data_length"=>array("create",lang(26)),"Index_length"=>array("indexes",lang(98)),"Data_free"=>array("edit",lang(27)),"Auto_increment"=>array("auto_increment=1&create",lang(26)),"Rows"=>array("select",lang(23)),)as$x=>$z)echo($z?"?":" ");}echo(support("comment")?" ":"");}echo"
 ".lang(205,count($yf)),"".nbsp($w=="sql"?$h->result("SELECT @@storage_engine"):""),"".nbsp(db_collation(DB,collations()));foreach(array("Data_length","Index_length","Data_free")as$x)echo" ";echo"
\n","\n";if(!information_schema(DB)){echo"

".(ereg('^(sql|sqlite|pgsql)$',$w)?($w!="sqlite"?" ":"")." ":"").($w=="sql"?" ":"")." \n";$j=(support("scheme")?schemas():$c->databases());if(count($j)!=1&&$w!="sqlite"){$k=(isset($_POST["target"])?$_POST["target"]:(support("scheme")?$_GET["ns"]:DB));echo"

".lang(239).": ",($j?html_select("target",$j,$k):'')," ",(support("copy")?" ":""),"\n";}echo"\n";}echo"

\n";}echo'

'.lang(142)."\n";if(support("view"))echo''.lang(172)."\n";if(support("routine")){echo"

".lang(110)."

\n";$Re=routines();if($Re){echo"\n",'\n";odd('');foreach($Re as$L){echo'','
'.lang(153).''.lang(84).''.lang(189)." 
'.h($L["ROUTINE_NAME"]).'',''.h($L["ROUTINE_TYPE"]),''.h($L["DTD_IDENTIFIER"]),''.lang(102)."";}echo"
\n";}echo'

'.(support("procedure")?''.lang(188).' ':'').''.lang(187)."\n";}if(support("event")){echo"

".lang(111)."

\n";$M=get_rows("SHOW EVENTS");if($M){echo"\n","\n";foreach($M as$L){echo"",'
".lang(153)."".lang(242)."".lang(178)."".lang(179)."
'.h($L["Name"])."","".($L["Execute at"]?lang(243)."".$L["Execute at"]:lang(180)." ".$L["Interval value"]." ".$L["Interval field"]."$L[Starts]"),"$L[Ends]";}echo"
\n";$Tb=$h->result("SELECT @@event_scheduler");if($Tb&&$Tb!="ON")echo"

event_scheduler: ".h($Tb)."\n";}echo'

'.lang(177)."\n";}if($yf)echo"\n";}}}page_footer();