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*[o4X~7j\\ 6/09\r;;VnnމvkHB%.k\">[\nlp9cFZs|>6 5l1Vΐ67:\"Azde\\5*մ]p[*Am)Kt[\n8g= ;2z|̣4t8.N#ʲB\"9%HQw qdF\$&VQ#Q'_m ̡ \rh Xrt0j5W4ד m\"CAF!엖h>b007;84Ka \0p aHXF1:8U9HIó;sQ7FcLpXM@e吞+g(73O3pblEE>Chb%DI8E' #)=%CjY1yh;cA6jK\r9Ž\$|g-Zo\0z\$+DVw*WpJ\\FO'ɲa1m,_ڧ\r1Po;\05e\r& 3^\r6MR2T\05?~5 P >85hn1;\rRL8`\\@`;z\n\0ԃ89RyZP@ib?ƭv\$<% A\r?\0Sʥ BÞ4JҨ:`#Hi7ε+}voJVڰ 9W2Q\rTD`f wLI]MKd7*rk*j\nASjF-[ezzrʁfU3~\\ZZ{)>>Ѓp*;zDbw]mC\n訓KBBm@ִ>wU’*N(baƶ@fv)`\0uD)mD@/49jHBm1I5DR uE9Aӗ=1b0ey1s;-]s 5\\\n1;Q^bi;YJ2d!s#kg hށ] W)>VIx]r;6JLcprd{pyM-UVH5'\ntвlpHoeZϨqeXF`Gy\r!Ww*Dut%dQ/p:iht&Pe,J͌t!O76GgRC[skvqU}yhAGV|lFޅL^.]u&w![jnnڏ[kCvkrmOɭJ>WT0\npMCbtVG|oy8c");}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<#0L9 ?(R#e=\n:*0D9C@{ZO8ioVvkAr8&..cHE>H_hWU51r* ^ (bxܡY1&XH6ؓ.9xP\r.`v484daXV6FEHHfc-^=txY\r%xeQ,X=1!svjkQ2 %W? Ů=dY&ٓVX4ـ\\5Xì!}NgvڃWY*Qi&lѵZ#Ց\rA\$ev5o#ޛ5gc3MTCL>vH<`*]_;%;Vi4X'`ij0gOۥi9ƙےdFk/lŞnc\n/ l[ ŠPa8%!1v/SUcoJ:4J+BvJ\rb{,|\0zcYl\ni.!)dmJ!' B\nC\\ i\$J\"2+IkJ \$Gy\$#ܲi/CAbbC(:UX2& , Q;~/Ky9?\r6tV!6CP hYEl䏞(ؖTp'3C<dc?yCe0@&A?= %A:JD&SQ6R)Ab`0@u9(!0R\nF Š wC\\υrܙ #~2'\$ :K`h@Eb[~ Tlf5BR]{\"-\0L>\r\$@\n(&\r9\0vh*ɇ*X!_djpy`jYwJ\$R(uaM+nxspU^Ap`ͤIH\nf02)!4a9 EwC ˩ LPAi)p3Au AIAHu !g͕UZUc *Mxf :^Xp+V KC#+ WhCP! ;[pn\\%k \0,ڨ87xQC\nY\rbXvC d\nA;lF,_wr4RPHA!;&^Ͳ\"6;=#CI 9f':DY!B+sxV8lÓ\"鑃HU%\"Z6u\re0[pa. +^``b5#CM\$ I˚AP5C\r SdWN6H[ SR\\+X=kλ׺Sr^(oo7\\huklHaC(mnRBUup2C1[|ٽbeG0\"CG?\$x7n\$Z=ZӦsi5f&,fhiIyn20DvETxM{`ܤGN#遂Z,ƒ/ R\$#\\I- |0-0NP ;s-v҆nwGtndiH|4(+v&Ņ+KL\nJ\$ԩ:\\Q/F\n?mFj 3 p DHKv Ⱥɜ\0X*\rʚ\n0 e\n%\riOflNM%]UQ QL-S±T4!U5T\nndi0#EMi./U\rZF j;H☎d`mݩ\ntQS e|iQt d12,DY 1UQSUcdE)\\L F\$@V{W6\"LlTA\$6abOdrLp c,esΞ<2`@bXP\$3@˃P,KVխ^MLu1 @ct-(`\09n2sb/ Fm)Hl5@nl\$q+:/ d,\n޵. 4\$ w0\$dV0\"rW4678VtqBaupÀI<\$#x`wd9^*kuofBEp g2f4 L!r=\0 \" \r< hU%ThBk#>'Cp\n (\r2\"3lMԋ7Gx.,Uu%Dt wy^Mf\" (vU3uJ^HC_IUYkSc_ylcc]rF_q%W#]@rkv3-cyVHJG<ZT@V8\$6o2H@\rª\0=ݍ\"39z:K uK >B\$r.J*l'kophxvL`w1 !M4\"I\$\"o\$>˙Bea\"DBoʶ+ B0Pxp&7|p{|}7ְ\$-P@beVYmoMo\0Nzn*>΄)-Hl!hpg &tZ㜤\0!8 ɩZK@DZG F秩. lz%(x}'<Ū(<XZǬњ ɮgwzz{e'{;@噱(&R^Eݛx宛Y\"MܒV\n5zlzr[x˪ G\$OW@Zx, be fdƻ2EËIDYT%k{J\\\rU N '_ɽf|w޵,l7kt1RD>ЋXZЊ|y|Z{|բ\r%;#\0eZ,\rKt\r >>\$>??c?+@  @ʰcqfc+3Ș؀&x]N*|b2R_\$< \rl [*`\n~b]jB\rqˣQ꾼+(W| +ep9j}RiJ6p\r-S0tHJ`7Dcp)\nߢ\\%aQ Cf6\ne\n>@%h%I `\0uAX K `8+ I\\(\rń\0lH#]*y\$,H ?EFC7`țE@rGpLB3H,0+s\r\0\0!9Hua4 0aJ(\0DqgaJ!m~Aa&à/ *p\"IBD\r!9!vL:Ċ!\$AKe\0lb i6%YzKrlRK\"AF{ 6XH&: h~9_2Ws>\$Ћ pC@vz0և8\\vp:s_\\:Y\rB\$|iGR# YR9\0D28?+}YᩇJ#CiVCT6Q9piteLp\$4\$D#@@|gRc\rF8Q&@5r\0XV5\\fh @v, /\0\n&/!d qKRm;aD2d\0002b\$ L/1,E4@<}aی\$1*`>0 :d   - Ä\rDYl(6[6ksf' 8I TJDUD:A2hd\0a\0)2:B3:Z1=@-qN\\!\$kfNw `n\$LCR5pcE3Ca\0=Hjڒg-ژE e.\0!o,'wI`\\s6RE}e0F\\m|F>q ?jД6i p +N9qup2eɑm.+L~\$\"Rs]iqCИjZgx`6t.b,ͩkY\\`'Sljհ!ln\0Wg+:+c6~KFʖĩ-h9-H@SDG;Π_ \n)fnQ-*C֩{MSnZ ED\0)Pg]6b%%Hj&%-* 9}j 43@*(m\$QDۆҹ(m¼ukjO\" ,1Vv%s1kP` /@0>F>#X8%lⴹKS|Yw0u̧bÉX4p\0\n%\0ZQ2WWEkoɇjy .Z\0 PptHR>,%)k `|,prZhZ,P|CFLxn .PReVoB;xDk)M?n`/5Ilqh\0צ5Ehq폴A ˉUdkDOy;ƆëA.OrƄ!H ^ҋD3Ig>ce~Zon_^+!h|*3ޢG[nڶjp 7H/T+3lP{<2ʞЩ)\"ãލYˣA2:&\0ۃ~cK\nD4GNg.`RB1H.j{}n|/o`]f_6y`\r x^@\\R='ς_{ X-\\)L EPl\\\0]hareӝ8NG^I:ܵJ%r~-܍ 1g+gVoσzm>54)mm\$oEbܒ)mEѨK6!* \nӔq 0?wPKg1i~X`\0XY Z *Dh 1El\r\0:?\r>#2@3h2袰Æ&Oе.Ʉ(.LbVEь s:88{>χAoHrySdvmr׃f>jO\nÀ5ֳ͂A002>nf16q3”]+arFx6 S-3e +x̤/jhD\r-\nјG7z2i.A9f`YTx9\"^\\nݣs9{0s83\$:#3Y6{0\nJ \$#D\\ļ@Ў3u0\"*.rs؛5G_ȎDdHKm]\\4\0;d}[ S2ܜ}ޞKd& t rf *j +Px܍\r7M8A[#m\n\n𧀯9+ZH|H[_ź| j5H|U1^u] P L`Xgh _r smZ:l]ihsK>ec 9 p7jCLRp ``");}else{header("Content-Type: image/gif");switch($_GET["file"]){case"plus.gif":echo"GIF87a\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0!M*)o) qe#L\0;";break;case"cross.gif":echo"GIF87a\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0##\naFo~y._wa1J GL6]\0\0;";break;case"up.gif":echo"GIF87a\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0 MQN\n}a8yaŶ\0\0;";break;case"down.gif":echo"GIF87a\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0 M*)[W\\L&ٜƶ\0\0;";break;case"arrow.gif":echo"GIF89a\0\n\0\0\0!\0\0\0,\0\0\0\0\0\n\0\0iӲ޻\0\0;";break;}}exit;}function connection(){global$i;return$i;}function adminer(){global$b;return$b;}function idf_unescape($t){$pd=substr($t,-1);return str_replace($pd.$pd,$pd,substr($t,1,-1));}function escape_string($X){return substr(q($X),1,-1);}function remove_slashes($We,$qc=false){if(get_magic_quotes_gpc()){while(list($x,$X)=each($We)){foreach($X as$hd=>$W){unset($We[$x][$hd]);if(is_array($W)){$We[$x][stripslashes($hd)]=$W;$We[]=&$We[$x][stripslashes($hd)];}else$We[$x][stripslashes($hd)]=($qc?$W:stripslashes($W));}}}}function bracket_escape($t,$Ca=false){static$vg=array(':'=>':1',']'=>':2','['=>':3');return strtr($t,($Ca?array_flip($vg):$vg));}function h($O){return htmlspecialchars(str_replace("\0","",$O),ENT_QUOTES);}function nbsp($O){return(trim($O)!=""?h($O):" ");}function nl_br($O){return str_replace("\n","
",$O);}function checkbox($B,$Y,$Pa,$md="",$je="",$Sa=""){$I="";return($md!=""||$Sa?"$I".h($md)."":$I);}function optionlist($ne,$Af=null,$Og=false){$I="";foreach($ne as$hd=>$W){$oe=array($hd=>$W);if(is_array($W)){$I.='';$oe=$W;}foreach($oe as$x=>$X)$I.=''.h($X);if(is_array($W))$I.='';}return$I;}function adminer_html_select($B,$ne,$Y="",$ie=true){if($ie)return"";$I="";foreach($ne as$x=>$X)$I.="";return$I;}function confirm($jb=""){return" onclick=\"return confirm('".lang(0).($jb?" (' + $jb + ')":"")."');\"";}function print_fieldset($Oc,$ud,$Xg=false,$je=""){echo"
$ud
\n";}function selectSearchPrint($Z,$g,$v){print_fieldset("search",lang(39),$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"]);$Na="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"
",adminer_html_select("where[$s][op]",$this->operators,$X["op"],$Na),"
\n";}}echo"\n";}function selectOrderPrint($pe,$g,$v){print_fieldset("sort",lang(41),$pe);$s=0;foreach((array)$_GET["order"]as$x=>$X){if(isset($g[$X])){echo"
",checkbox("desc[$s]",1,isset($_GET["desc"][$x]),lang(42))."
\n";$s++;}}echo"
",checkbox("desc[$s]",1,false,lang(42))."
\n","\n";}function selectLimitPrint($y){echo"
".lang(43)."
";echo"","
\n";}function selectLengthPrint($kg){if($kg!==null){echo"
".lang(44)."
","","
\n";}}function selectActionPrint($v){echo"
".lang(45)."
",""," ","\n","
\n";}function selectCommandPrint(){return!information_schema(DB);}function selectImportPrint(){return!information_schema(DB);}function selectEmailPrint($Pb,$g){}function selectColumnsProcess($g,$v){global$Cc,$Hc;$L=array();$Fc=array();foreach((array)$_GET["columns"]as$x=>$X){if($X["fun"]=="count"||(isset($g[$X["col"]])&&(!$X["fun"]||in_array($X["fun"],$Cc)||in_array($X["fun"],$Hc)))){$L[$x]=apply_sql_function($X["fun"],(isset($g[$X["col"]])?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],$Hc))$Fc[]=$L[$x];}}return array($L,$Fc);}function selectSearchProcess($p,$v){global$w;$I=array();foreach($v as$s=>$u){if($u["type"]=="FULLTEXT"&&$_GET["fulltext"][$s]!="")$I[]="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)){$db=" $X[op]";if(ereg('IN$',$X["op"])){$Rc=process_length($X["val"]);$db.=" (".($Rc!=""?$Rc:"NULL").")";}elseif($X["op"]=="SQL")$db=" $X[val]";elseif($X["op"]=="LIKE %%")$db=" LIKE ".$this->processInput($p[$X["col"]],"%$X[val]%");elseif(!ereg('NULL$',$X["op"]))$db.=" ".$this->processInput($p[$X["col"]],$X["val"]);if($X["col"]!="")$I[]=idf_escape($X["col"]).$db;else{$Ya=array();foreach($p as$B=>$o){$ed=ereg('char|text|enum|set',$o["type"]);if((is_numeric($X["val"])||!ereg('(^|[^o])int|float|double|decimal|bit',$o["type"]))&&(!ereg("[\x80-\xFF]",$X["val"])||$ed)){$B=idf_escape($B);$Ya[]=($w=="sql"&&$ed&&!ereg('^utf8',$o["collation"])?"CONVERT($B USING utf8)":$B);}}$I[]=($Ya?"(".implode("$db OR ",$Ya)."$db)":"0");}}}return$I;}function selectOrderProcess($p,$v){$I=array();foreach((array)$_GET["order"]as$x=>$X){if(isset($p[$X])||preg_match('~^((COUNT\\(DISTINCT |[A-Z0-9_]+\\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\\)|COUNT\\(\\*\\))$~',$X))$I[]=(isset($p[$X])?idf_escape($X):$X).(isset($_GET["desc"][$x])?" DESC":"");}return$I;}function selectLimitProcess(){return(isset($_GET["limit"])?$_GET["limit"]:"50");}function selectLengthProcess(){return(isset($_GET["text_length"])?$_GET["text_length"]:"100");}function selectEmailProcess($Z,$uc){return false;}function selectQueryBuild($L,$Z,$Fc,$pe,$y,$D){return"";}function messageQuery($G){global$w;restart_session();$Kc=&get_session("queries");$Oc="sql-".count($Kc[$_GET["db"]]);if(strlen($G)>1e6)$G=ereg_replace('[\x80-\xFF]+$','',substr($G,0,1e6))."\n...";$Kc[$_GET["db"]][]=array($G,time());return" ".@date("H:i:s")." ".lang(47)."';}function editFunctions($o){global$Lb;$I=($o["null"]?"NULL/":"");foreach($Lb as$x=>$Cc){if(!$x||(!isset($_GET["call"])&&(isset($_GET["select"])||where($_GET)))){foreach($Cc as$He=>$X){if(!$He||ereg($He,$o["type"]))$I.="/$X";}if($x&&!ereg('set|blob|bytea|raw|file',$o["type"]))$I.="/SQL";}}return explode("/",$I);}function editInput($P,$o,$_a,$Y){if($o["type"]=="enum")return(isset($_GET["select"])?" ":"").($o["null"]?" ":"").enum_input("radio",$_a,$o,$Y,0);return"";}function processInput($o,$Y,$r=""){if($r=="SQL")return$Y;$B=$o["field"];$I=q($Y);if(ereg('^(now|getdate|uuid)$',$r))$I="$r()";elseif(ereg('^current_(date|timestamp)$',$r))$I=$r;elseif(ereg('^([+-]|\\|\\|)$',$r))$I=idf_escape($B)." $r $I";elseif(ereg('^[+-] interval$',$r))$I=idf_escape($B)." $r ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+$~i",$Y)?$Y:$I);elseif(ereg('^(addtime|subtime|concat)$',$r))$I="$r(".idf_escape($B).", $I)";elseif(ereg('^(md5|sha1|password|encrypt)$',$r))$I="$r($I)";return unconvert_field($o,$I);}function dumpOutput(){$I=array('text'=>lang(48),'file'=>lang(49));if(function_exists('gzencode'))$I['gz']='gzip';return$I;}function dumpFormat(){return array('sql'=>'SQL','csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function dumpDatabase($m){}function dumpTable($P,$Rf,$fd=0){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($Rf)dump_csv(array_keys(fields($P)));}elseif($Rf){if($fd==2){$p=array();foreach(fields($P)as$B=>$o)$p[]=idf_escape($B)." $o[full_type]";$k="CREATE TABLE ".table($P)." (".implode(", ",$p).")";}else$k=create_sql($P,$_POST["auto_increment"]);if($k){if($Rf=="DROP+CREATE"||$fd==1)echo"DROP ".($fd==2?"VIEW":"TABLE")." IF EXISTS ".table($P).";\n";if($fd==1)$k=remove_definer($k);echo"$k;\n\n";}}}function dumpData($P,$Rf,$G){global$i,$w;$Dd=($w=="sqlite"?0:1048576);if($Rf){if($_POST["format"]=="sql"){if($Rf=="TRUNCATE+INSERT")echo truncate_sql($P).";\n";$p=fields($P);}$H=$i->query($G,1);if($H){$ad="";$La="";$jd=array();$Tf="";$nc=($P!=''?'fetch_assoc':'fetch_row');while($J=$H->$nc()){if(!$jd){$Sg=array();foreach($J as$X){$o=$H->fetch_field();$jd[]=$o->name;$x=idf_escape($o->name);$Sg[]="$x = VALUES($x)";}$Tf=($Rf=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$Sg):"").";\n";}if($_POST["format"]!="sql"){if($Rf=="table"){dump_csv($jd);$Rf="INSERT";}dump_csv($J);}else{if(!$ad)$ad="INSERT INTO ".table($P)." (".implode(", ",array_map('idf_escape',$jd)).") VALUES";foreach($J as$x=>$X){$o=$p[$x];$J[$x]=($X!==null?unconvert_field($o,ereg('(^|[^o])int|float|double|decimal',$o["type"])&&$X!=''?$X:q($X)):"NULL");}$wf=($Dd?"\n":" ")."(".implode(",\t",$J).")";if(!$La)$La=$ad.$wf;elseif(strlen($La)+4+strlen($wf)+strlen($Tf)<$Dd)$La.=",$wf";else{echo$La.$Tf;$La=$ad.$wf;}}}if($La)echo$La.$Tf;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",$i->error)."\n";}}function dumpFilename($Pc){return friendly_url($Pc!=""?$Pc:(SERVER!=""?SERVER:"localhost"));}function dumpHeaders($Pc,$Rd=false){$ye=$_POST["output"];$hc=(ereg('sql',$_POST["format"])?"sql":($Rd?"tar":"csv"));header("Content-Type: ".($ye=="gz"?"application/x-gzip":($hc=="tar"?"application/x-tar":($hc=="sql"||$ye!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($ye=="gz")ob_start('gzencode',1e6);return$hc;}function homepage(){echo'

'.($_GET["ns"]==""?''.lang(50)."\n":""),(support("scheme")?"".($_GET["ns"]!=""?lang(51):lang(52))."\n":""),($_GET["ns"]!==""?''.lang(53)."\n":""),(support("privileges")?"".lang(54)."\n":"");return true;}function navigation($Qd){global$ia,$S,$w,$Eb;echo'

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

';if($Qd=="auth"){$rc=true;foreach((array)$_SESSION["pwds"]as$Db=>$Ff){foreach($Ff as$M=>$Qg){foreach($Qg as$V=>$E){if($E!==null){if($rc){echo"

\n";$rc=false;}$tb=$_SESSION["db"][$Db][$M][$V];foreach(($tb?array_keys($tb):array(""))as$m)echo"($Eb[$Db]) ".h($V.($M!=""?"@$M":"").($m!=""?" - $m":""))."
\n";}}}}}else{echo'

';if(DB==""||!$Qd){echo"".lang(47)."\n";if(support("dump"))echo"".lang(56)."\n";}echo'

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

".lang(58)."\n";$R=table_status('',true);if(!$R)echo"

".lang(7)."\n";else{$this->tablesPrint($R);$yd=array();foreach($R as$P=>$T)$yd[]=preg_quote($P,'/');echo"\n";}}}}function databasesPrint($Qd){global$i;$l=$this->databases();echo'

';hidden_fields_get();$rb=" onmousedown='dbMouseDown(event, this);' onchange='dbChange(this);'";echo($l?"":''),"\n";if($Qd!="db"&&DB!=""&&$i->select_db(DB)){if(support("scheme")){echo"
";if($_GET["ns"]!="")set_schema($_GET["ns"]);}}echo(isset($_GET["sql"])?'':(isset($_GET["schema"])?'':(isset($_GET["dump"])?'':""))),"

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

\n";foreach($R as$P=>$Nf){echo'".lang(61)." ",'".$this->tableName($Nf)."
\n";}}}$b=(function_exists('adminer_object')?adminer_object():new Adminer);if($b->operators===null)$b->operators=$le;function page_header($ng,$n="",$Ka=array(),$og=""){global$ca,$b,$i,$Eb;header("Content-Type: text/html; charset=utf-8");if($b->headers()){header("X-Frame-Options: deny");header("X-XSS-Protection: 0");}$pg=$ng.($og!=""?": ".h($og):"");$qg=strip_tags($pg.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$b->name());echo' ',$qg,' ';if($b->head()){echo' ';if(file_exists("adminer.css")){echo' ';}}echo'

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

$pg

\n";restart_session();$Mg=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Nd=$_SESSION["messages"][$Mg];if($Nd){echo"
".implode("
\n
",$Nd)."
\n";unset($_SESSION["messages"][$Mg]);}$l=&get_session("dbs");if(DB!=""&&$l&&!in_array(DB,$l,true))$l=null;stop_session();if($n)echo"
$n
\n";define("PAGE_HEADER",1);}function page_footer($Qd=""){global$b;echo'
';switch_lang();echo' ';}function int32($Td){while($Td>=2147483648)$Td-=4294967296;while($Td<=-2147483649)$Td+=4294967296;return(int)$Td;}function long2str($W,$Yg){$wf='';foreach($W as$X)$wf.=pack('V',$X);if($Yg)return substr($wf,0,end($W));return$wf;}function str2long($wf,$Yg){$W=array_values(unpack('V*',str_pad($wf,4*ceil(strlen($wf)/4),"\0")));if($Yg)$W[]=strlen($wf);return$W;}function xxtea_mx($dh,$ch,$Uf,$hd){return int32((($dh>>5&0x7FFFFFF)^$ch<<2)+(($ch>>3&0x1FFFFFFF)^$dh<<4))^int32(($Uf^$ch)+($hd^$dh));}function encrypt_string($Pf,$x){if($Pf=="")return"";$x=array_values(unpack("V*",pack("H*",md5($x))));$W=str2long($Pf,true);$Td=count($W)-1;$dh=$W[$Td];$ch=$W[0];$F=floor(6+52/($Td+1));$Uf=0;while($F-->0){$Uf=int32($Uf+0x9E3779B9);$Kb=$Uf>>2&3;for($ze=0;$ze<$Td;$ze++){$ch=$W[$ze+1];$Sd=xxtea_mx($dh,$ch,$Uf,$x[$ze&3^$Kb]);$dh=int32($W[$ze]+$Sd);$W[$ze]=$dh;}$ch=$W[0];$Sd=xxtea_mx($dh,$ch,$Uf,$x[$ze&3^$Kb]);$dh=int32($W[$Td]+$Sd);$W[$Td]=$dh;}return long2str($W,false);}function decrypt_string($Pf,$x){if($Pf=="")return"";if(!$x)return false;$x=array_values(unpack("V*",pack("H*",md5($x))));$W=str2long($Pf,false);$Td=count($W)-1;$dh=$W[$Td];$ch=$W[0];$F=floor(6+52/($Td+1));$Uf=int32($F*0x9E3779B9);while($Uf){$Kb=$Uf>>2&3;for($ze=$Td;$ze>0;$ze--){$dh=$W[$ze-1];$Sd=xxtea_mx($dh,$ch,$Uf,$x[$ze&3^$Kb]);$ch=int32($W[$ze]-$Sd);$W[$ze]=$ch;}$dh=$W[$Td];$Sd=xxtea_mx($dh,$ch,$Uf,$x[$ze&3^$Kb]);$ch=int32($W[0]-$Sd);$W[0]=$ch;$Uf=int32($Uf-0x9E3779B9);}return long2str($W,true);}$i='';$S=$_SESSION["token"];if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);$Ie=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($x)=explode(":",$X);$Ie[$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=$b->permanentLogin(true);$Ie[$x]="$x:".base64_encode($Te?encrypt_string($d["password"],$Te):"");cookie("adminer_permanent",implode(" ",$Ie));}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($S&&$_POST["token"]!=$S){page_header(lang(57),lang(63));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(64));}}elseif($Ie&&!$_SESSION["pwds"]){session_regenerate_id();$Te=$b->permanentLogin();foreach($Ie as$x=>$X){list(,$Ra)=explode(":",$X);list($Db,$M,$V,$m)=array_map('base64_decode',explode("-",$x));$_SESSION["pwds"][$Db][$M][$V]=decrypt_string(base64_decode($Ra),$Te);$_SESSION["db"][$Db][$M][$V][$m]=true;}}function unset_permanent(){global$Ie;foreach($Ie as$x=>$X){list($Db,$M,$V,$m)=array_map('base64_decode',explode("-",$x));if($Db==DRIVER&&$M==SERVER&&$V==$_GET["username"]&&$m==DB)unset($Ie[$x]);}cookie("adminer_permanent",implode(" ",$Ie));}function auth_error($bc=null){global$i,$b,$S;$Gf=session_name();$n="";if(!$_COOKIE[$Gf]&&$_GET[$Gf]&&ini_bool("session.use_only_cookies"))$n=lang(65);elseif(isset($_GET["username"])){if(($_COOKIE[$Gf]||$_GET[$Gf])&&!$S)$n=lang(66);else{$E=&get_session("pwds");if($E!==null){$n=h($bc?$bc->getMessage():(is_string($i)?$i:lang(67)));if($E===false)$n.='
'.lang(68,'permanentLogin()');$E=null;}unset_permanent();}}page_header(lang(26),$n,null);echo"
\n";$b->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(69),lang(70,implode(", ",$Ne)),false);page_footer("auth");exit;}$i=connect();}if(is_string($i)||!$b->login($_GET["username"],get_session("pwds"))){auth_error();exit;}$S=$_SESSION["token"];if($d&&$_POST["token"])$_POST["token"]=$S;$n='';if($_POST){if($_POST["token"]!=$S){$Xc="max_input_vars";$Hd=ini_get($Xc);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$x){$X=ini_get($x);if($X&&(!$Hd||$X<$Hd)){$Xc=$x;$Hd=$X;}}}$n=(!$_POST["token"]&&$Hd?lang(71,"'$Xc'"):lang(63));}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$n=lang(72,"'post_max_size'");if(isset($_GET["sql"]))$n.=' '.lang(73);}if(!ini_bool("session.use_cookies")||@ini_set("session.use_cookies",false)!==false){session_cache_limiter("");session_write_close();}function connect_error(){global$b,$i,$S,$n,$Eb;$l=array();if(DB!=""){header("HTTP/1.1 404 Not Found");page_header(lang(25).": ".h(DB),lang(74),true);}else{if($_POST["db"]&&!$n)queries_redirect(substr(ME,0,-1),lang(75),drop_databases($_POST["db"]));page_header(lang(76),$n,false);echo"

".lang(77)."\n";foreach(array('privileges'=>lang(54),'processlist'=>lang(78),'variables'=>lang(79),'status'=>lang(80),)as$x=>$X){if(support($x))echo"$X\n";}echo"

".lang(81,$Eb[DRIVER],"$i->server_info","$i->extension")."\n","

".lang(82,"".h(logged_user())."")."\n";$hf="".lang(83)."\n";$l=$b->databases();if($l){$zf=support("scheme");$Xa=collations();echo"

\n","\n","\n";foreach($l as$m){$rf=h(ME)."db=".urlencode($m);echo"
 ".lang(25)."".lang(84)."".lang(85)."
".checkbox("db[]",$m,in_array($m,(array)$_POST["db"])),"".h($m)."","".nbsp(db_collation($m,$Xa))."","?","\n";}echo"
\n","\n","

\n","\n",$hf,"

\n";}else echo"

$hf";}page_footer("db");if($l)echo"\n";}if(isset($_GET["status"]))$_GET["variables"]=$_GET["status"];if(!(DB!=""?$i->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;}if(support("scheme")&&DB!=""&&$_GET["ns"]!==""){if(!isset($_GET["ns"]))redirect(preg_replace('~ns=[^&]*&~','',ME)."ns=".get_schema());if(!set_schema($_GET["ns"])){header("HTTP/1.1 404 Not Found");page_header(lang(87).": ".h($_GET["ns"]),lang(88),true);page_footer("ns");exit;}}function select($H,$j=null,$Nc="",$se=array()){$yd=array();$v=array();$g=array();$Ia=array();$U=array();$I=array();odd('');for($s=0;$J=$H->fetch_row();$s++){if(!$s){echo"\n","";for($gd=0;$gdfetch_field();$B=$o->name;$re=$o->orgtable;$qe=$o->orgname;$I[$o->table]=$re;if($Nc)$yd[$gd]=($B=="table"?"table=":($B=="possible_keys"?"indexes=":null));elseif($re!=""){if(!isset($v[$re])){$v[$re]=array();foreach(indexes($re,$j)as$u){if($u["type"]=="PRIMARY"){$v[$re]=array_flip($u["columns"]);break;}}$g[$re]=$v[$re];}if(isset($g[$re][$qe])){unset($g[$re][$qe]);$v[$re][$qe]=$gd;$yd[$gd]=$re;}}if($o->charsetnr==63)$Ia[$gd]=true;$U[$gd]=$o->type;$B=h($B);echo"name!=$qe?" title='".h(($re!=""?"$re.":"").$qe)."'":"").">".($Nc?"$B":$B);}echo"\n";}echo"";foreach($J as$x=>$X){if($X===null)$X="NULL";elseif($Ia[$x]&&!is_utf8($X))$X="".lang(35,strlen($X))."";elseif(!strlen($X))$X=" ";else{$X=h($X);if($U[$x]==254)$X="$X";}if(isset($yd[$x])&&!$g[$yd[$x]]){if($Nc){$P=$J[array_search("table=",$yd)];$z=$yd[$x].urlencode($se[$P]!=""?$se[$P]:$P);}else{$z="edit=".urlencode($yd[$x]);foreach($v[$yd[$x]]as$Va=>$gd)$z.="&where".urlencode("[".bracket_escape($Va)."]")."=".urlencode($J[$gd]);}$X="$X";}echo"
$X";}}echo($s?"
":"

".lang(89))."\n";return$I;}function referencable_primary($Bf){$I=array();foreach(table_status('',true)as$Yf=>$P){if($Yf!=$Bf&&fk_support($P)){foreach(fields($Yf)as$o){if($o["primary"]){if($I[$Yf]){unset($I[$Yf]);break;}$I[$Yf]=$o;}}}}return$I;}function textarea($B,$Y,$K=10,$Ya=80){echo"";}function edit_type($x,$o,$Xa,$vc=array()){global$Qf,$U,$Kg,$he;echo' ';echo"',($Kg?"':''),(isset($o['on_update'])?"':''),($vc?" ":" ");}function process_length($vd){global$Vb;return(preg_match("~^\\s*(?:$Vb)(?:\\s*,\\s*(?:$Vb))*\\s*\$~",$vd)&&preg_match_all("~$Vb~",$vd,$Bd)?implode(",",$Bd[0]):preg_replace('~[^0-9,+-]~','',$vd));}function process_type($o,$Wa="COLLATE"){global$Kg;return" $o[type]".($o["length"]!=""?"(".process_length($o["length"]).")":"").(ereg('(^|[^o])int|float|double|decimal',$o["type"])&&in_array($o["unsigned"],$Kg)?" $o[unsigned]":"").(ereg('char|text|enum|set',$o["type"])&&$o["collation"]?" $Wa ".q($o["collation"]):"");}function process_field($o,$Cg){return array(idf_escape(trim($o["field"])),process_type($Cg),($o["null"]?" NULL":" NOT NULL"),(isset($o["default"])?" DEFAULT ".((ereg("time",$o["type"])&&eregi('^CURRENT_TIMESTAMP$',$o["default"]))||($o["type"]=="bit"&&ereg("^([0-9]+|b'[0-1]+')\$",$o["default"]))?$o["default"]:q($o["default"])):""),($o["type"]=="timestamp"&&$o["on_update"]?" ON UPDATE $o[on_update]":""),(support("comment")&&$o["comment"]!=""?" COMMENT ".q($o["comment"]):""),($o["auto_increment"]?auto_increment():null),);}function type_class($T){foreach(array('char'=>'text','date'=>'time|year','binary'=>'blob','enum'=>'set',)as$x=>$X){if(ereg("$x|$X",$T))return" class='$x'";}}function edit_fields($p,$Xa,$T="TABLE",$vc=array(),$cb=false){global$i,$Yc;echo' ';if($T=="PROCEDURE"){echo' ';}echo'',($T=="TABLE"?lang(94):lang(95)),'',lang(96),' ',lang(97),'',lang(98);if($T=="TABLE"){echo'NULL AI ',lang(100),(support("comment")?"

".lang(101).": ".h($bb)."\n";if($p){echo"\n","\n";foreach($p as$o){echo"
".lang(108)."".lang(96).(support("comment")?"".lang(101):"")."
".h($o["field"]),"".h($o["full_type"]).($o["null"]?" NULL":"").($o["auto_increment"]?" ".lang(99)."":""),(isset($o["default"])?" [".h($o["default"])."]":""),(support("comment")?"".nbsp($o["comment"]):""),"\n";}echo"
\n";if(!is_view($Q)){echo"

".lang(109)."

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

'.lang(110)."\n";if(fk_support($Q)){echo"

".lang(90)."

\n";$vc=foreign_keys($a);if($vc){echo"\n","\n";foreach($vc as$B=>$q){echo"","
".lang(111)."".lang(112)."".lang(93)."".lang(92).($w!="sqlite"?" ":"")."
".implode(", ",array_map('h',$q["source"]))."","".($q["db"]!=""?"".h($q["db"]).".":"").($q["ns"]!=""?"".h($q["ns"]).".":"").h($q["table"])."","(".implode(", ",array_map('h',$q["target"])).")","".nbsp($q["on_delete"])."\n","".nbsp($q["on_update"])."\n",($w=="sqlite"?"":''.lang(113).'');}echo"
\n";}if($w!="sqlite")echo'

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

".lang(115)."

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

'.lang(116)."\n";}}}}elseif(isset($_GET["schema"])){page_header(lang(53),"",array(),DB.($_GET["ns"]?".$_GET[ns]":""));$ag=array();$bg=array();$B="adminer_schema";$ea=($_GET["schema"]?$_GET["schema"]:$_COOKIE[($_COOKIE["$B-".DB]?"$B-".DB:$B)]);preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',$ea,$Bd,PREG_SET_ORDER);foreach($Bd as$s=>$A){$ag[$A[1]]=array($A[2],$A[3]);$bg[]="\n\t'".js_escape($A[1])."': [ $A[2], $A[3] ]";}$tg=0;$Fa=-1;$yf=array();$gf=array();$td=array();foreach(table_status('',true)as$P=>$Q){if(is_view($Q))continue;$Ke=0;$yf[$P]["fields"]=array();foreach(fields($P)as$B=>$o){$Ke+=1.25;$o["pos"]=$Ke;$yf[$P]["fields"][$B]=$o;}$yf[$P]["pos"]=($ag[$P]?$ag[$P]:array($tg,0));foreach($b->foreignKeys($P)as$X){if(!$X["db"]){$rd=$Fa;if($ag[$P][1]||$ag[$X["table"]][1])$rd=min(floatval($ag[$P][1]),floatval($ag[$X["table"]][1]))-1;else$Fa-=.1;while($td[(string)$rd])$rd-=.0001;$yf[$P]["references"][$X["table"]][(string)$rd]=array($X["source"],$X["target"]);$gf[$X["table"]][$P][(string)$rd]=$X["target"];$td[(string)$rd]=true;}}$tg=max($tg,$yf[$P]["pos"][0]+2.5+$Ke);}echo'

';foreach($yf as$B=>$P){echo"
",''.h($B)."";foreach($P["fields"]as$o){$X=''.h($o["field"]).'';echo"
".($o["primary"]?"$X":$X);}foreach((array)$P["references"]as$gg=>$if){foreach($if as$rd=>$df){$sd=$rd-$ag[$B][1];$s=0;foreach($df[0]as$If)echo"\n
";}}foreach((array)$gf[$B]as$gg=>$if){foreach($if as$rd=>$g){$sd=$rd-$ag[$B][1];$s=0;foreach($g as$fg)echo"\n
";}}echo"\n
\n";}foreach($yf as$B=>$P){foreach((array)$P["references"]as$gg=>$if){foreach($if as$rd=>$df){$Pd=$tg;$Fd=-10;foreach($df[0]as$x=>$If){$Le=$P["pos"][0]+$P["fields"][$If]["pos"];$Me=$yf[$gg]["pos"][0]+$yf[$gg]["fields"][$df[1][$x]]["pos"];$Pd=min($Pd,$Le,$Me);$Fd=max($Fd,$Le,$Me);}echo"
\n";}}}echo'

',lang(117),' ';}elseif(isset($_GET["dump"])){$a=$_GET["dump"];if($_POST&&!$n){$ib="";foreach(array("output","format","db_style","routines","events","table_style","auto_increment","triggers","data_style")as$x)$ib.="&$x=".urlencode($_POST[$x]);cookie("adminer_export",substr($ib,1));$R=array_flip((array)$_POST["tables"])+array_flip((array)$_POST["data"]);$hc=dump_headers((count($R)==1?key($R):DB),(DB==""||count($R)>1));$dd=ereg('sql',$_POST["format"]);if($dd)echo"-- Adminer $ia ".$Eb[DRIVER]." dump ".($w!="sql"?"":"SET NAMES utf8; ".($_POST["data_style"]?"SET foreign_key_checks = 0; SET time_zone = ".q(substr(preg_replace('~^[^-]~','+\0',$i->result("SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP)")),0,6))."; SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; ":"")." ");$Rf=$_POST["db_style"];$l=array(DB);if(DB==""){$l=$_POST["databases"];if(is_string($l))$l=explode("\n",rtrim(str_replace("\r","",$l),"\n"));}foreach((array)$l as$m){$b->dumpDatabase($m);if($i->select_db($m)){if($dd&&ereg('CREATE',$Rf)&&($k=$i->result("SHOW CREATE DATABASE ".idf_escape($m),1))){if($Rf=="DROP+CREATE")echo"DROP DATABASE IF EXISTS ".idf_escape($m).";\n";echo"$k;\n";}if($dd){if($Rf)echo use_sql($m).";\n\n";$xe="";if($_POST["routines"]){foreach(array("FUNCTION","PROCEDURE")as$sf){foreach(get_rows("SHOW $sf STATUS WHERE Db = ".q($m),null,"-- ")as$J)$xe.=($Rf!='DROP+CREATE'?"DROP $sf IF EXISTS ".idf_escape($J["Name"]).";;\n":"").remove_definer($i->result("SHOW CREATE $sf ".idf_escape($J["Name"]),2)).";;\n\n";}}if($_POST["events"]){foreach(get_rows("SHOW EVENTS",null,"-- ")as$J)$xe.=($Rf!='DROP+CREATE'?"DROP EVENT IF EXISTS ".idf_escape($J["Name"]).";;\n":"").remove_definer($i->result("SHOW CREATE EVENT ".idf_escape($J["Name"]),3)).";;\n\n";}if($xe)echo"DELIMITER ;;\n\n$xe"."DELIMITER ;\n\n";}if($_POST["table_style"]||$_POST["data_style"]){$Wg=array();foreach(table_status('',true)as$B=>$Q){$P=(DB==""||in_array($B,(array)$_POST["tables"]));$ob=(DB==""||in_array($B,(array)$_POST["data"]));if($P||$ob){if($hc=="tar"){$rg=new TmpFile;ob_start(array($rg,'write'),1e5);}$b->dumpTable($B,($P?$_POST["table_style"]:""),(is_view($Q)?2:0));if(is_view($Q))$Wg[]=$B;elseif($ob){$p=fields($B);$b->dumpData($B,$_POST["data_style"],"SELECT *".convert_fields($p,$p)." FROM ".table($B));}if($dd&&$_POST["triggers"]&&$P&&($Bg=trigger_sql($B,$_POST["table_style"])))echo"\nDELIMITER ;;\n$Bg\nDELIMITER ;\n";if($hc=="tar"){ob_end_flush();tar_file((DB!=""?"":"$m/")."$B.csv",$rg);}elseif($dd)echo"\n";}}foreach($Wg as$Vg)$b->dumpTable($Vg,$_POST["table_style"],1);if($hc=="tar")echo pack("x512");}}}if($dd)echo"-- ".$i->result("SELECT NOW()")."\n";exit;}page_header(lang(118),$n,($_GET["export"]!=""?array("table"=>$_GET["export"]):array()),DB);echo'

';$sb=array('','USE','DROP+CREATE','CREATE');$cg=array('','DROP+CREATE','CREATE');$pb=array('','TRUNCATE+INSERT','INSERT');if($w=="sql")$pb[]='INSERT+UPDATE';parse_str($_COOKIE["adminer_export"],$J);if(!$J)$J=array("output"=>"text","format"=>"sql","db_style"=>(DB!=""?"":"CREATE"),"table_style"=>"DROP+CREATE","data_style"=>"INSERT");if(!isset($J["events"])){$J["routines"]=$J["events"]=($_GET["dump"]=="");$J["triggers"]=$J["table_style"];}echo"
".lang(119)."".adminer_html_select("output",$b->dumpOutput(),$J["output"],0)."\n";echo"
".lang(120)."".adminer_html_select("format",$b->dumpFormat(),$J["format"],0)."\n";echo($w=="sqlite"?"":"
".lang(25)."".adminer_html_select('db_style',$sb,$J["db_style"]).(support("routine")?checkbox("routines",1,$J["routines"],lang(121)):"").(support("event")?checkbox("events",1,$J["events"],lang(122)):"")),"
".lang(85)."".adminer_html_select('table_style',$cg,$J["table_style"]).checkbox("auto_increment",1,$J["auto_increment"],lang(99)).(support("trigger")?checkbox("triggers",1,$J["triggers"],lang(115)):""),"
".lang(123)."".adminer_html_select('data_style',$pb,$J["data_style"]),'

';$Pe=array();if(DB!=""){$Pa=($a!=""?"":" checked");echo"","\n";$Wg="";$dg=tables_list();foreach($dg as$B=>$T){$Oe=ereg_replace("_.*","",$B);$Pa=($a==""||$a==(substr($a,-1)=="%"?"$Oe%":$B));$Se="\n";$l=$b->databases();if($l){foreach($l as$m){if(!information_schema($m)){$Oe=ereg_replace("_.*","",$m);echo"
","","
".checkbox("tables[]",$B,$Pa,$B,"checkboxClick(event, this); formUncheck('check-tables');","block");if($T!==null&&!eregi("table",$T))$Wg.="$Se\n";else echo"$Se\n";$Pe[$Oe]++;}echo$Wg;if($dg)echo"\n";}else{echo"
".checkbox("databases[]",$m,$a==""||$a=="$Oe%",$m,"formUncheck('check-databases');","block")."\n";$Pe[$Oe]++;}}}else echo"
";}echo'

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

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

\n";hidden_fields_get();echo"\n",($Dc?"":"\n"),"\n","\n";while($J=$H->fetch_assoc())echo'
".lang(23)."".lang(22)." 
'.h($J["User"])."".h($J["Host"]).''.lang(34)."\n";if(!$Dc||DB!="")echo"\n";echo"
\n","

\n",'

'.lang(124)."";}elseif(isset($_GET["sql"])){if(!$n&&$_POST["export"]){dump_headers("sql");$b->dumpTable("","");$b->dumpData("","table",$_POST["query"]);exit;}restart_session();$Lc=&get_session("queries");$Kc=&$Lc[DB];if(!$n&&$_POST["clear"]){$Kc=array();redirect(remove_from_uri("history"));}page_header(lang(47),$n);if(!$n&&$_POST){$zc=false;$G=$_POST["query"];if($_POST["webfile"]){$zc=@fopen((file_exists("adminer.sql")?"adminer.sql":"compress.zlib://adminer.sql.gz"),"rb");$G=($zc?fread($zc,1e6):false);}elseif($_FILES&&$_FILES["sql_file"]["error"][0]!=4)$G=get_file("sql_file",true);if(is_string($G)){if(function_exists('memory_get_usage'))@ini_set("memory_limit",max(ini_bytes("memory_limit"),2*strlen($G)+memory_get_usage()+8e6));if($G!=""&&strlen($G)<1e6){$F=$G.(ereg(";[ \t\r\n]*\$",$G)?"":";");if(!$Kc||reset(end($Kc))!=$F){restart_session();$Kc[]=array($F,time());set_session("queries",$Lc);stop_session();}}$Jf="(?:\\s|/\\*.*\\*/|(?:#|-- )[^\n]*\n|--\n)";$wb=";";$C=0;$Rb=true;$j=connect();if(is_object($j)&&DB!="")$j->select_db(DB);$ab=0;$Xb=array();$xd=0;$Be='[\'"'.($w=="sql"?'`#':($w=="sqlite"?'`[':($w=="mssql"?'[':''))).']|/\\*|-- |$'.($w=="pgsql"?'|\\$[^$]*\\$':'');$ug=microtime();parse_str($_COOKIE["adminer_export"],$qa);$Jb=$b->dumpFormat();unset($Jb["sql"]);while($G!=""){if(!$C&&preg_match("~^$Jf*DELIMITER\\s+(\\S+)~i",$G,$A)){$wb=$A[1];$G=substr($G,strlen($A[0]));}else{preg_match('('.preg_quote($wb)."\\s*|$Be)",$G,$A,PREG_OFFSET_CAPTURE,$C);list($xc,$Ke)=$A[0];if(!$xc&&$zc&&!feof($zc))$G.=fread($zc,1e5);else{if(!$xc&&rtrim($G)=="")break;$C=$Ke+strlen($xc);if($xc&&rtrim($xc)!=$wb){while(preg_match('('.($xc=='/*'?'\\*/':($xc=='['?']':(ereg('^-- |^#',$xc)?"\n":preg_quote($xc)."|\\\\."))).'|$)s',$G,$A,PREG_OFFSET_CAPTURE,$C)){$wf=$A[0][0];if(!$wf&&$zc&&!feof($zc))$G.=fread($zc,1e5);else{$C=$A[0][1]+strlen($wf);if($wf[0]!="\\")break;}}}else{$Rb=false;$F=substr($G,0,$Ke);$ab++;$Se="

".shorten_utf8(trim($F),1000)."
\n";if(!$_POST["only_errors"]){echo$Se;ob_flush();flush();}$Mf=microtime();if($i->multi_query($F)&&is_object($j)&&preg_match("~^$Jf*USE\\b~isU",$F))$j->query($F);do{$H=$i->store_result();$Sb=microtime();$lg=" (".format_time($Mf,$Sb).")".(strlen($F)<1000?" ".lang(34)."":"");if($i->error){echo($_POST["only_errors"]?$Se:""),"

".lang(125).($i->errno?" ($i->errno)":"").": ".error()."\n";$Xb[]=" $ab";if($_POST["error_stops"])break 2;}elseif(is_object($H)){$se=select($H,$j);if(!$_POST["only_errors"]){echo"

\n","

".($H->num_rows?lang(126,$H->num_rows):"").$lg;$Oc="export-$ab";$gc=", ".lang(118)."\n";if($j&&preg_match("~^($Jf|\\()*SELECT\\b~isU",$F)&&($fc=explain($j,$F))){$Oc="explain-$ab";echo", EXPLAIN$gc","

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

".lang(127,$i->affected_rows)."$lg\n";}$Mf=$Sb;}while($i->next_result());$xd+=substr_count($F.$xc,"\n");$G=substr($G,$C);$C=0;}}}}if($Rb)echo"

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

".lang(129,$ab-count($Xb))," (".format_time($ug,microtime()).")\n";}elseif($Xb&&$ab>1)echo"

".lang(125).": ".implode("",$Xb)."\n";}else echo"

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

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

".(ini_bool("file_uploads")?lang(130).': (< '.ini_get("upload_max_filesize").'B)':lang(131)),'

',checkbox("error_stops",1,$_POST["error_stops"],lang(132))."\n",checkbox("only_errors",1,$_POST["only_errors"],lang(133))."\n";print_fieldset("webfile",lang(134),$_POST["webfile"],"document.getElementById('form')['only_errors'].checked = true; ");echo lang(135,"adminer.sql".(extension_loaded("zlib")?"[.gz]":"").""),' ',"\n";if($Kc){print_fieldset("history",lang(137),$_GET["history"]!="");for($X=end($Kc);$X;$X=prev($Kc)){$x=key($Kc);list($F,$lg)=$X;echo''.lang(34)." ".@date("H:i:s",$lg)." ".shorten_utf8(ltrim(str_replace("\n"," ",str_replace("\r","",preg_replace('~^(#|-- ).*~m','',$F)))),80,"")."
\n";}echo"\n","".lang(139)."\n","\n";}echo'

';}elseif(isset($_GET["edit"])){$a=$_GET["edit"];$p=fields($a);$Z=(isset($_GET["select"])?(count($_POST["check"])==1?where_check($_POST["check"][0],$p):""):where($_GET,$p));$Lg=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($p as$B=>$o){if(!isset($o["privileges"][$Lg?"update":"insert"])||$b->fieldName($o)=="")unset($p[$B]);}if($_POST&&!$n&&!isset($_GET["select"])){$_=$_POST["referer"];if($_POST["insert"])$_=($Lg?null:$_SERVER["REQUEST_URI"]);elseif(!ereg('^.+&select=.+$',$_))$_=ME."select=".urlencode($a);$v=indexes($a);$Gg=unique_array($_GET["where"],$v);$af="\nWHERE $Z";if(isset($_POST["delete"])){$G="FROM ".table($a);query_redirect("DELETE".($Gg?" $G$af":limit1($G,$af)),$_,lang(140));}else{$N=array();foreach($p as$B=>$o){$X=process_input($o);if($X!==false&&$X!==null)$N[idf_escape($B)]=($Lg?"\n".idf_escape($B)." = $X":$X);}if($Lg){if(!$N)redirect($_);$G=table($a)." SET".implode(",",$N);query_redirect("UPDATE".($Gg?" $G$af":limit1($G,$af)),$_,lang(141));}else{$H=insert_into($a,$N);$qd=($H?last_id():0);queries_redirect($_,lang(142,($qd?" $qd":"")),$H);}}}$Yf=$b->tableName(table_status1($a,true));page_header(($Lg?lang(34):lang(143)),$n,array("select"=>array($a,$Yf)),$Yf);$J=null;if($_POST["save"])$J=(array)$_POST["fields"];elseif($Z){$L=array();foreach($p as$B=>$o){if(isset($o["privileges"]["select"])){$ya=convert_field($o);if($_POST["clone"]&&$o["auto_increment"])$ya="''";if($w=="sql"&&ereg("enum|set",$o["type"]))$ya="1*".idf_escape($B);$L[]=($ya?"$ya AS ":"").idf_escape($B);}}$J=array();if($L){$K=get_rows("SELECT".limit(implode(", ",$L)." FROM ".table($a)," WHERE $Z",(isset($_GET["select"])?2:1)));$J=(isset($_GET["select"])&&count($K)!=1?null:reset($K));}}if($J===false)echo"

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

';if(!$p)echo"

".lang(144)."\n";else{echo"\n";foreach($p as$B=>$o){echo"
".$b->fieldName($o);$vb=$_GET["set"][bracket_escape($B)];if($vb===null){$vb=$o["default"];if($o["type"]=="bit"&&ereg("^b'([01]*)'\$",$vb,$jf))$vb=$jf[1];}$Y=($J!==null?($J[$B]!=""&&$w=="sql"&&ereg("enum|set",$o["type"])?(is_array($J[$B])?array_sum($J[$B]):+$J[$B]):$J[$B]):(!$Lg&&$o["auto_increment"]?"":(isset($_GET["select"])?false:$vb)));if(!$_POST["save"]&&is_string($Y))$Y=$b->editVal($Y,$o);$r=($_POST["save"]?(string)$_POST["function"][$B]:($Lg&&$o["on_update"]=="CURRENT_TIMESTAMP"?"now":($Y===false?null:($Y!==null?'':'NULL'))));if(ereg("time",$o["type"])&&$Y=="CURRENT_TIMESTAMP"){$Y="";$r="now";}input($o,$Y,$r);echo"\n";}echo"
\n";}echo'

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

';}elseif(isset($_GET["create"])){$a=$_GET["create"];$Ce=array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST');$ff=referencable_primary($a);$vc=array();foreach($ff as$Yf=>$o)$vc[str_replace("`","``",$Yf)."`".str_replace("`","``",$o["field"])]=$Yf;$ve=array();$Q=array();if($a!=""){$ve=fields($a);$Q=table_status($a);if(!$Q)$n=lang(7);}$J=$_POST;$J["fields"]=(array)$J["fields"];if($J["auto_increment_col"])$J["fields"][$J["auto_increment_col"]]["auto_increment"]=true;if($_POST&&!process_fields($J["fields"])&&!$n){if($_POST["drop"])query_redirect("DROP TABLE ".table($a),substr(ME,0,-1),lang(149));else{$p=array();$wa=array();$Ng=false;$tc=array();ksort($J["fields"]);$ue=reset($ve);$ua=" FIRST";foreach($J["fields"]as$x=>$o){$q=$vc[$o["type"]];$Cg=($q!==null?$ff[$q]:$o);if($o["field"]!=""){if(!$o["has_default"])$o["default"]=null;if($x==$J["auto_increment_col"])$o["auto_increment"]=true;$Xe=process_field($o,$Cg);$wa[]=array($o["orig"],$Xe,$ua);if($Xe!=process_field($ue,$ue)){$p[]=array($o["orig"],$Xe,$ua);if($o["orig"]!=""||$ua)$Ng=true;}if($q!==null)$tc[idf_escape($o["field"])]=($a!=""&&$w!="sqlite"?"ADD":" ")." FOREIGN KEY (".idf_escape($o["field"]).") REFERENCES ".table($vc[$o["type"]])." (".idf_escape($Cg["field"]).")".(ereg("^($he)\$",$o["on_delete"])?" ON DELETE $o[on_delete]":"");$ua=" AFTER ".idf_escape($o["field"]);}elseif($o["orig"]!=""){$Ng=true;$p[]=array($o["orig"]);}if($o["orig"]!=""){$ue=next($ve);if(!$ue)$ua="";}}$Ee="";if(in_array($J["partition_by"],$Ce)){$Fe=array();if($J["partition_by"]=='RANGE'||$J["partition_by"]=='LIST'){foreach(array_filter($J["partition_names"])as$x=>$X){$Y=$J["partition_values"][$x];$Fe[]="\n PARTITION ".idf_escape($X)." VALUES ".($J["partition_by"]=='RANGE'?"LESS THAN":"IN").($Y!=""?" ($Y)":" MAXVALUE");}}$Ee.="\nPARTITION BY $J[partition_by]($J[partition])".($Fe?" (".implode(",",$Fe)."\n)":($J["partitions"]?" PARTITIONS ".(+$J["partitions"]):""));}elseif(support("partitioning")&&ereg("partitioned",$Q["Create_options"]))$Ee.="\nREMOVE PARTITIONING";$Jd=lang(150);if($a==""){cookie("adminer_engine",$J["Engine"]);$Jd=lang(151);}$B=trim($J["name"]);queries_redirect(ME."table=".urlencode($B),$Jd,alter_table($a,$B,($w=="sqlite"&&($Ng||$tc)?$wa:$p),$tc,$J["Comment"],($J["Engine"]&&$J["Engine"]!=$Q["Engine"]?$J["Engine"]:""),($J["Collation"]&&$J["Collation"]!=$Q["Collation"]?$J["Collation"]:""),($J["Auto_increment"]!=""?+$J["Auto_increment"]:""),$Ee));}}page_header(($a!=""?lang(31):lang(152)),$n,array("table"=>$a),$a);if(!$_POST){$J=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($U["int"])?"int":(isset($U["integer"])?"integer":"")))),"partition_names"=>array(""),);if($a!=""){$J=$Q;$J["name"]=$a;$J["fields"]=array();if(!$_GET["auto_increment"])$J["Auto_increment"]="";foreach($ve as$o){$o["has_default"]=isset($o["default"]);$J["fields"][]=$o;}if(support("partitioning")){$_c="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($a);$H=$i->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION $_c ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");list($J["partition_by"],$J["partitions"],$J["partition"])=$H->fetch_row();$Fe=get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $_c AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");$Fe[""]="";$J["partition_names"]=array_keys($Fe);$J["partition_values"]=array_values($Fe);}}}$Xa=collations();$Ub=engines();foreach($Ub as$Tb){if(!strcasecmp($Tb,$J["Engine"])){$J["Engine"]=$Tb;break;}}echo'

',lang(153),': ';if($a==""&&!$_POST){?>"(".lang(154).")")+$Ub,$J["Engine"]):""),' ',($Xa&&!ereg("sqlite|mssql",$w)?adminer_html_select("Collation",array(""=>"(".lang(91).")")+$Xa,$J["Collation"]):""),' ';$cb=($_POST?$_POST["comments"]:$J["Comment"]!="");if(!$_POST&&!$cb){foreach($J["fields"]as$o){if($o["comment"]!=""){$cb=true;break;}}}edit_fields($J["fields"],$Xa,"TABLE",$vc,$cb);echo'

',lang(99),': ',checkbox("defaults",1,true,lang(100),"columnShow(this.checked, 5)","jsonly");if(!$_POST["defaults"]){echo'';}echo(support("comment")?"".' ':''),'

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

',adminer_html_select("partition_by",array(-1=>"")+$Ce,$J["partition_by"],"partitionByChange(this);"),'() ',lang(156),': ';foreach($J["partition_names"]as$x=>$X){echo'',' ';}echo'

';}elseif(isset($_GET["indexes"])){$a=$_GET["indexes"];$Tc=array("PRIMARY","UNIQUE","INDEX");$Q=table_status($a,true);if(eregi("MyISAM|M?aria".($i->server_info>=5.6?"|InnoDB":""),$Q["Engine"]))$Tc[]="FULLTEXT";$v=indexes($a);if($w=="sqlite"){unset($Tc[0]);unset($v[""]);}$J=$_POST;if($_POST&&!$n&&!$_POST["add"]){$c=array();foreach($J["indexes"]as$u){$B=$u["name"];if(in_array($u["type"],$Tc)){$g=array();$wd=array();$yb=array();$N=array();ksort($u["columns"]);foreach($u["columns"]as$x=>$f){if($f!=""){$vd=$u["lengths"][$x];$xb=$u["descs"][$x];$N[]=idf_escape($f).($vd?"(".(+$vd).")":"").($xb?" DESC":"");$g[]=$f;$wd[]=($vd?$vd:null);$yb[]=$xb;}}if($g){$ec=$v[$B];if($ec){ksort($ec["columns"]);ksort($ec["lengths"]);ksort($ec["descs"]);if($u["type"]==$ec["type"]&&array_values($ec["columns"])===$g&&(!$ec["lengths"]||array_values($ec["lengths"])===$wd)&&array_values($ec["descs"])===$yb){unset($v[$B]);continue;}}$c[]=array($u["type"],$B,"(".implode(", ",$N).")");}}}foreach($v as$B=>$ec)$c[]=array($ec["type"],$B,"DROP");if(!$c)redirect(ME."table=".urlencode($a));queries_redirect(ME."table=".urlencode($a),lang(159),alter_indexes($a,$c));}page_header(lang(109),$n,array("table"=>$a),$a);$p=array_keys(fields($a));if($_POST["add"]){foreach($J["indexes"]as$x=>$u){if($u["columns"][count($u["columns"])]!="")$J["indexes"][$x]["columns"][]="";}$u=end($J["indexes"]);if($u["type"]||array_filter($u["columns"],'strlen')||array_filter($u["lengths"],'strlen')||array_filter($u["descs"]))$J["indexes"][]=array("columns"=>array(1=>""));}if(!$J){foreach($v as$x=>$u){$v[$x]["name"]=$x;$v[$x]["columns"][]="";}$v[]=array("columns"=>array(1=>""));$J["indexes"]=$v;}echo'
';$gd=1;foreach($J["indexes"]as$u){echo"
',lang(160),'',lang(161),'',lang(162),'
".adminer_html_select("indexes[$gd][type]",array(-1=>"")+$Tc,$u["type"],($gd==count($J["indexes"])?"indexesAddRow(this);":1))."";ksort($u["columns"]);$s=1;foreach($u["columns"]as$x=>$f){echo"".adminer_html_select("indexes[$gd][columns][$s]",array(-1=>"")+$p,$f,($s==count($u["columns"])?"indexesAddColumn":"indexesChangeColumn")."(this, '".js_escape($w=="sql"?"":$_GET["indexes"]."_")."');"),($w=="sql"||$w=="mssql"?"":""),($w!="sql"?checkbox("indexes[$gd][descs][$s]",1,$u["descs"][$x],lang(42)):"")," ";$s++;}echo"\n";$gd++;}echo'

';}elseif(isset($_GET["database"])){$J=$_POST;if($_POST&&!$n&&!isset($_POST["add_x"])){restart_session();$B=trim($J["name"]);if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),lang(163),drop_databases(array(DB)));}elseif(DB!==$B){if(DB!=""){$_GET["db"]=$B;queries_redirect(preg_replace('~db=[^&]*&~','',ME)."db=".urlencode($B),lang(164),rename_database($B,$J["collation"]));}else{$l=explode("\n",str_replace("\r","",$B));$Sf=true;$pd="";foreach($l as$m){if(count($l)==1||$m!=""){if(!create_database($m,$J["collation"]))$Sf=false;$pd=$m;}}queries_redirect(ME."db=".urlencode($pd),lang(165),$Sf);}}else{if(!$J["collation"])redirect(substr(ME,0,-1));query_redirect("ALTER DATABASE ".idf_escape($B).(eregi('^[a-z0-9_]+$',$J["collation"])?" COLLATE $J[collation]":""),substr(ME,0,-1),lang(166));}}page_header(DB!=""?lang(50):lang(167),$n,array(),DB);$Xa=collations();$B=DB;if($_POST)$B=$J["name"];elseif(DB!="")$J["collation"]=db_collation(DB,$Xa);elseif($w=="sql"){foreach(get_vals("SHOW GRANTS")as$Dc){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\\.\\*)?~',$Dc,$A)&&$A[1]){$B=stripcslashes(idf_unescape("`$A[2]`"));break;}}}echo'

',($_POST["add_x"]||strpos($B,"\n")?'
':'')."\n".($Xa?adminer_html_select("collation",array(""=>"(".lang(91).")")+$Xa,$J["collation"]):"");?> ';if(DB!="")echo"\n";elseif(!$_POST["add_x"]&&$_GET["db"]=="")echo"\n";echo'

';}elseif(isset($_GET["scheme"])){$J=$_POST;if($_POST&&!$n){$z=preg_replace('~ns=[^&]*&~','',ME)."ns=";if($_POST["drop"])query_redirect("DROP SCHEMA ".idf_escape($_GET["ns"]),$z,lang(168));else{$B=trim($J["name"]);$z.=urlencode($B);if($_GET["ns"]=="")query_redirect("CREATE SCHEMA ".idf_escape($B),$z,lang(169));elseif($_GET["ns"]!=$B)query_redirect("ALTER SCHEMA ".idf_escape($_GET["ns"])." RENAME TO ".idf_escape($B),$z,lang(170));else redirect($z);}}page_header($_GET["ns"]!=""?lang(51):lang(52),$n);if(!$J)$J["name"]=$_GET["ns"];echo'

" autocapitalize="off"> ';if($_GET["ns"]!="")echo"\n";echo'

';}elseif(isset($_GET["call"])){$da=$_GET["call"];page_header(lang(171).": ".h($da),$n);$sf=routine($da,(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$Rc=array();$xe=array();foreach($sf["fields"]as$s=>$o){if(substr($o["inout"],-3)=="OUT")$xe[$s]="@".idf_escape($o["field"])." AS ".idf_escape($o["field"]);if(!$o["inout"]||substr($o["inout"],0,2)=="IN")$Rc[]=$s;}if(!$n&&$_POST){$Ma=array();foreach($sf["fields"]as$x=>$o){if(in_array($x,$Rc)){$X=process_input($o);if($X===false)$X="''";if(isset($xe[$x]))$i->query("SET @".idf_escape($o["field"])." = $X");}$Ma[]=(isset($xe[$x])?"@".idf_escape($o["field"]):$X);}$G=(isset($_GET["callf"])?"SELECT":"CALL")." ".idf_escape($da)."(".implode(", ",$Ma).")";echo"

".h($G)." ".lang(34)."\n";if(!$i->multi_query($G))echo"

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

".lang(172,$i->affected_rows)."\n";}while($i->next_result());if($xe)select($i->query("SELECT ".implode(", ",$xe)));}}echo'

';if($Rc){echo"\n";foreach($Rc as$x){$o=$sf["fields"][$x];$B=$o["field"];echo"
".$b->fieldName($o);$Y=$_POST["fields"][$B];if($Y!=""){if($o["type"]=="enum")$Y=+$Y;if($o["type"]=="set")$Y=array_sum($Y);}input($o,$Y,(string)$_POST["function"][$B]);echo"\n";}echo"
\n";}echo'

';}elseif(isset($_GET["foreign"])){$a=$_GET["foreign"];$B=$_GET["name"];$J=$_POST;if($_POST&&!$n&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){if($_POST["drop"])query_redirect("ALTER TABLE ".table($a)."\nDROP ".($w=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($B),ME."table=".urlencode($a),lang(173));else{$If=array_filter($J["source"],'strlen');ksort($If);$fg=array();foreach($If as$x=>$X)$fg[$x]=$J["target"][$x];query_redirect("ALTER TABLE ".table($a).($B!=""?"\nDROP ".($w=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($B).",":"")."\nADD FOREIGN KEY (".implode(", ",array_map('idf_escape',$If)).") REFERENCES ".table($J["table"])." (".implode(", ",array_map('idf_escape',$fg)).")".(ereg("^($he)\$",$J["on_delete"])?" ON DELETE $J[on_delete]":"").(ereg("^($he)\$",$J["on_update"])?" ON UPDATE $J[on_update]":""),ME."table=".urlencode($a),($B!=""?lang(174):lang(175)));$n=lang(176)."
$n";}}page_header(lang(177),$n,array("table"=>$a),$a);if($_POST){ksort($J["source"]);if($_POST["add"])$J["source"][]="";elseif($_POST["change"]||$_POST["change-js"])$J["target"]=array();}elseif($B!=""){$vc=foreign_keys($a);$J=$vc[$B];$J["source"][]="";}else{$J["table"]=$a;$J["source"]=array("");}$If=array_keys(fields($a));$fg=($a===$J["table"]?$If:array_keys(fields($J["table"])));$ef=array_keys(array_filter(table_status('',true),'fk_support'));echo'

';if($J["db"]==""&&$J["ns"]==""){echo lang(178),': ',adminer_html_select("table",$ef,$J["table"],"this.form['change-js'].value = '1'; this.form.submit();"),'

';$gd=0;foreach($J["source"]as$x=>$X){echo"","
',lang(111),'',lang(112),'
".adminer_html_select("source[".(+$x)."]",array(-1=>"")+$If,$X,($gd==count($J["source"])-1?"foreignAddRow(this);":1)),"".adminer_html_select("target[".(+$x)."]",$fg,$J["target"][$x]);$gd++;}echo'

',lang(93),': ',adminer_html_select("on_delete",array(-1=>"")+explode("|",$he),$J["on_delete"]),' ',lang(92),': ',adminer_html_select("on_update",array(-1=>"")+explode("|",$he),$J["on_update"]),'

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

';}elseif(isset($_GET["view"])){$a=$_GET["view"];$J=$_POST;if($_POST&&!$n){$B=trim($J["name"]);$ya=" AS\n$J[select]";$_=ME."table=".urlencode($B);$Jd=lang(181);if(!$_POST["drop"]&&$a==$B&&$w!="sqlite")query_redirect(($w=="mssql"?"ALTER":"CREATE OR REPLACE")." VIEW ".table($B).$ya,$_,$Jd);else{$hg=$B."_adminer_".uniqid();drop_create("DROP VIEW ".table($a),"CREATE VIEW ".table($B).$ya,"DROP VIEW ".table($B),"CREATE VIEW ".table($hg).$ya,"DROP VIEW ".table($hg),($_POST["drop"]?substr(ME,0,-1):$_),lang(182),$Jd,lang(183),$a,$B);}}if(!$_POST&&$a!=""){$J=view($a);$J["name"]=$a;if(!$n)$n=$i->error;}page_header(($a!=""?lang(30):lang(184)),$n,array("table"=>$a),$a);echo'

',lang(162),':

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

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

';}elseif(isset($_GET["event"])){$aa=$_GET["event"];$bd=array("YEAR","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND");$Of=array("ENABLED"=>"ENABLE","DISABLED"=>"DISABLE","SLAVESIDE_DISABLED"=>"DISABLE ON SLAVE");$J=$_POST;if($_POST&&!$n){if($_POST["drop"])query_redirect("DROP EVENT ".idf_escape($aa),substr(ME,0,-1),lang(185));elseif(in_array($J["INTERVAL_FIELD"],$bd)&&isset($Of[$J["STATUS"]])){$xf="\nON SCHEDULE ".($J["INTERVAL_VALUE"]?"EVERY ".q($J["INTERVAL_VALUE"])." $J[INTERVAL_FIELD]".($J["STARTS"]?" STARTS ".q($J["STARTS"]):"").($J["ENDS"]?" ENDS ".q($J["ENDS"]):""):"AT ".q($J["STARTS"]))." ON COMPLETION".($J["ON_COMPLETION"]?"":" NOT")." PRESERVE";queries_redirect(substr(ME,0,-1),($aa!=""?lang(186):lang(187)),queries(($aa!=""?"ALTER EVENT ".idf_escape($aa).$xf.($aa!=$J["EVENT_NAME"]?"\nRENAME TO ".idf_escape($J["EVENT_NAME"]):""):"CREATE EVENT ".idf_escape($J["EVENT_NAME"]).$xf)."\n".$Of[$J["STATUS"]]." COMMENT ".q($J["EVENT_COMMENT"]).rtrim(" DO\n$J[EVENT_DEFINITION]",";").";"));}}page_header(($aa!=""?lang(188).": ".h($aa):lang(189)),$n);if(!$J&&$aa!=""){$K=get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = ".q(DB)." AND EVENT_NAME = ".q($aa));$J=reset($K);}echo'
',lang(162),'
',lang(190),'
',lang(191),'
',lang(192),' ',adminer_html_select("INTERVAL_FIELD",$bd,$J["INTERVAL_FIELD"]),'
',lang(80),'',adminer_html_select("STATUS",$Of,$J["STATUS"]),'
',lang(101),'
 ',checkbox("ON_COMPLETION","PRESERVE",$J["ON_COMPLETION"]=="PRESERVE",lang(193)),'

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

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

';}elseif(isset($_GET["procedure"])){$da=$_GET["procedure"];$sf=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$J=$_POST;$J["fields"]=(array)$J["fields"];if($_POST&&!process_fields($J["fields"])&&!$n){$hg="$J[name]_adminer_".uniqid();drop_create("DROP $sf ".idf_escape($da),create_routine($sf,$J),"DROP $sf ".idf_escape($J["name"]),create_routine($sf,array("name"=>$hg)+$J),"DROP $sf ".idf_escape($hg),substr(ME,0,-1),lang(194),lang(195),lang(196),$da,$J["name"]);}page_header(($da!=""?(isset($_GET["function"])?lang(197):lang(198)).": ".h($da):(isset($_GET["function"])?lang(199):lang(200))),$n);if(!$_POST&&$da!=""){$J=routine($da,$sf);$J["name"]=$da;}$Xa=get_vals("SHOW CHARACTER SET");sort($Xa);$tf=routine_languages();echo'

',lang(162),': ',($tf?lang(9).": ".adminer_html_select("language",$tf,$J["language"]):""),' ';edit_fields($J["fields"],$Xa,$sf);if(isset($_GET["function"])){echo"
".lang(201);edit_type("returns",$J["returns"],$Xa);}echo'

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

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

';}elseif(isset($_GET["sequence"])){$fa=$_GET["sequence"];$J=$_POST;if($_POST&&!$n){$z=substr(ME,0,-1);$B=trim($J["name"]);if($_POST["drop"])query_redirect("DROP SEQUENCE ".idf_escape($fa),$z,lang(202));elseif($fa=="")query_redirect("CREATE SEQUENCE ".idf_escape($B),$z,lang(203));elseif($fa!=$B)query_redirect("ALTER SEQUENCE ".idf_escape($fa)." RENAME TO ".idf_escape($B),$z,lang(204));else redirect($z);}page_header($fa!=""?lang(205).": ".h($fa):lang(206),$n);if(!$J)$J["name"]=$fa;echo'

';if($fa!="")echo"\n";echo'

';}elseif(isset($_GET["type"])){$ga=$_GET["type"];$J=$_POST;if($_POST&&!$n){$z=substr(ME,0,-1);if($_POST["drop"])query_redirect("DROP TYPE ".idf_escape($ga),$z,lang(207));else query_redirect("CREATE TYPE ".idf_escape(trim($J["name"]))." $J[as]",$z,lang(208));}page_header($ga!=""?lang(209).": ".h($ga):lang(210),$n);if(!$J)$J["as"]="AS ";echo'

';if($ga!="")echo"\n";else{echo"\n";textarea("as",$J["as"]);echo"

\n";}echo'

';}elseif(isset($_GET["trigger"])){$a=$_GET["trigger"];$B=$_GET["name"];$Ag=trigger_options();$zg=array("INSERT","UPDATE","DELETE");$J=(array)trigger($B)+array("Trigger"=>$a."_bi");if($_POST){if(!$n&&in_array($_POST["Timing"],$Ag["Timing"])&&in_array($_POST["Event"],$zg)&&in_array($_POST["Type"],$Ag["Type"])){$ge=" ON ".table($a);$Fb="DROP TRIGGER ".idf_escape($B).($w=="pgsql"?$ge:"");$_=ME."table=".urlencode($a);if($_POST["drop"])query_redirect($Fb,$_,lang(211));else{if($B!="")queries($Fb);queries_redirect($_,($B!=""?lang(212):lang(213)),queries(create_trigger($ge,$_POST)));if($B!="")queries(create_trigger($ge,$J+array("Type"=>reset($Ag["Type"]))));}}$J=$_POST;}page_header(($B!=""?lang(214).": ".h($B):lang(215)),$n,array("table"=>$a));echo'
',lang(216),'',adminer_html_select("Timing",$Ag["Timing"],$J["Timing"],"if (/^".preg_quote($a,"/")."_[ba][iud]$/.test(this.form['Trigger'].value)) this.form['Trigger'].value = '".js_escape($a)."_' + selectValue(this).charAt(0).toLowerCase() + selectValue(this.form['Event']).charAt(0).toLowerCase();"),'
',lang(217),'',adminer_html_select("Event",$zg,$J["Event"],"this.form['Timing'].onchange();"),'
',lang(96),'',adminer_html_select("Type",$Ag["Type"],$J["Type"]),'

',lang(162),':

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

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

';}elseif(isset($_GET["user"])){$ha=$_GET["user"];$Ve=array(""=>array("All privileges"=>""));foreach(get_rows("SHOW PRIVILEGES")as$J){foreach(explode(",",($J["Privilege"]=="Grant option"?"":$J["Context"]))as$hb)$Ve[$hb][$J["Privilege"]]=$J["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]);$Vd=array();if($_POST){foreach($_POST["objects"]as$x=>$X)$Vd[$X]=(array)$Vd[$X]+(array)$_POST["grants"][$x];}$Ec=array();$ee="";if(isset($_GET["host"])&&($H=$i->query("SHOW GRANTS FOR ".q($ha)."@".q($_GET["host"])))){while($J=$H->fetch_row()){if(preg_match('~GRANT (.*) ON (.*) TO ~',$J[0],$A)&&preg_match_all('~ *([^(,]*[^ ,(])( *\\([^)]+\\))?~',$A[1],$Bd,PREG_SET_ORDER)){foreach($Bd as$X){if($X[1]!="USAGE")$Ec["$A[2]$X[2]"][$X[1]]=true;if(ereg(' WITH GRANT OPTION',$J[0]))$Ec["$A[2]$X[2]"]["GRANT OPTION"]=true;}}if(preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~",$J[0],$A))$ee=$A[1];}}if($_POST&&!$n){$fe=(isset($_GET["host"])?q($ha)."@".q($_GET["host"]):"''");if($_POST["drop"])query_redirect("DROP USER $fe",ME."privileges=",lang(218));else{$Xd=q($_POST["user"])."@".q($_POST["host"]);$Ge=$_POST["pass"];if($Ge!=''&&!$_POST["hashed"]){$Ge=$i->result("SELECT PASSWORD(".q($Ge).")");$n=!$Ge;}$lb=false;if(!$n){if($fe!=$Xd){$lb=queries(($i->server_info<5?"GRANT USAGE ON *.* TO":"CREATE USER")." $Xd IDENTIFIED BY PASSWORD ".q($Ge));$n=!$lb;}elseif($Ge!=$ee)queries("SET PASSWORD FOR $Xd = ".q($Ge));}if(!$n){$pf=array();foreach($Vd as$ae=>$Dc){if(isset($_GET["grant"]))$Dc=array_filter($Dc);$Dc=array_keys($Dc);if(isset($_GET["grant"]))$pf=array_diff(array_keys(array_filter($Vd[$ae],'strlen')),$Dc);elseif($fe==$Xd){$ce=array_keys((array)$Ec[$ae]);$pf=array_diff($ce,$Dc);$Dc=array_diff($Dc,$ce);unset($Ec[$ae]);}if(preg_match('~^(.+)\\s*(\\(.*\\))?$~U',$ae,$A)&&(!grant("REVOKE",$pf,$A[2]," ON $A[1] FROM $Xd")||!grant("GRANT",$Dc,$A[2]," ON $A[1] TO $Xd"))){$n=true;break;}}}if(!$n&&isset($_GET["host"])){if($fe!=$Xd)queries("DROP USER $fe");elseif(!isset($_GET["grant"])){foreach($Ec as$ae=>$pf){if(preg_match('~^(.+)(\\(.*\\))?$~U',$ae,$A))grant("REVOKE",array_keys($pf),$A[2]," ON $A[1] FROM $Xd");}}}queries_redirect(ME."privileges=",(isset($_GET["host"])?lang(219):lang(220)),!$n);if($lb)$i->query("DROP USER $Xd");}}page_header((isset($_GET["host"])?lang(23).": ".h("$ha@$_GET[host]"):lang(124)),$n,array("privileges"=>array('',lang(54))));if($_POST){$J=$_POST;$Ec=$Vd;}else{$J=$_GET+array("host"=>$i->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)"));$J["pass"]=$ee;if($ee!="")$J["hashed"]=true;$Ec[(DB==""||$Ec?"":idf_escape(addcslashes(DB,"%_\\"))).".*"]=array();}echo'
',lang(22),'
',lang(23),'
',lang(24),' ';if(!$J["hashed"]){echo'';}echo checkbox("hashed",1,$J["hashed"],lang(221),"typePassword(this.form['pass'], this.checked);"),'
';echo"\n","\n";foreach(array(""=>"","Server Admin"=>lang(22),"Databases"=>lang(25),"Tables"=>lang(107),"Columns"=>lang(108),"Procedures"=>lang(222),)as$hb=>$xb){foreach((array)$Ve[$hb]as$Ue=>$bb){echo"$xb'.h($Ue);$s=0;foreach($Ec as$ae=>$Dc){$B="'grants[$s][".h(strtoupper($Ue))."]'";$Y=$Dc[strtoupper($Ue)];if($hb=="Server Admin"&&$ae!=(isset($Ec["*.*"])?"*.*":".*"))echo"
".lang(54)."";$s=0;foreach($Ec as$ae=>$Dc){echo''.($ae!="*.*"?"":"*.*");$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&&!$n){$ld=0;foreach((array)$_POST["kill"]as$X){if(queries("KILL ".(+$X)))$ld++;}queries_redirect(ME."processlist=",lang(225,$ld),$ld||!$_POST["kill"]);}page_header(lang(78),$n);echo'
';$s=-1;foreach(process_list()as$s=>$J){if(!$s){echo"".(support("kill")?"\n";}echo"".(support("kill")?"
 ":"");foreach($J as$x=>$X)echo"".($w=="sql"?"$x":$x);echo"
".checkbox("kill[]",$J["Id"],0):"");foreach($J as$x=>$X)echo"".(($w=="sql"&&$x=="Info"&&ereg("Query|Killed",$J["Command"])&&$X!="")||($w=="pgsql"&&$x=="current_query"&&$X!="")||($w=="oracle"&&$x=="sql_text"&&$X!="")?"".shorten_utf8($X,100,"").' '.lang(226).'':nbsp($X));echo"\n";}echo'

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

\n";}echo'

';}elseif(isset($_GET["select"])){$a=$_GET["select"];$Q=table_status1($a);$v=indexes($a);$p=fields($a);$vc=column_foreign_keys($a);$be="";if($Q["Oid"]){$be=($w=="sqlite"?"rowid":"oid");$v[]=array("type"=>"PRIMARY","columns"=>array($be));}parse_str($_COOKIE["adminer_import"],$ra);$qf=array();$g=array();$kg=null;foreach($p as$x=>$o){$B=$b->fieldName($o);if(isset($o["privileges"]["select"])&&$B!=""){$g[$x]=html_entity_decode(strip_tags($B),ENT_QUOTES);if(is_shortable($o))$kg=$b->selectLengthProcess();}$qf+=$o["privileges"];}list($L,$Fc)=$b->selectColumnsProcess($g,$v);$cd=count($Fc)selectSearchProcess($p,$v);$pe=$b->selectOrderProcess($p,$v);$y=$b->selectLimitProcess();$_c=($L?implode(", ",$L):"*".($be?", $be":"")).convert_fields($g,$p,$L)."\nFROM ".table($a);$Gc=($Fc&&$cd?"\nGROUP BY ".implode(", ",$Fc):"").($pe?"\nORDER BY ".implode(", ",$pe):"");if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$Hg=>$J){$ya=convert_field($p[key($J)]);echo$i->result("SELECT".limit($ya?$ya:idf_escape(key($J))." FROM ".table($a)," WHERE ".where_check($Hg,$p).($Z?" AND ".implode(" AND ",$Z):"").($pe?" ORDER BY ".implode(", ",$pe):""),1));}exit;}if($_POST&&!$n){$ah=$Z;if(is_array($_POST["check"]))$ah[]="((".implode(") OR (",array_map('where_check',$_POST["check"]))."))";$ah=($ah?"\nWHERE ".implode(" AND ",$ah):"");$Qe=$Jg=null;foreach($v as$u){if($u["type"]=="PRIMARY"){$Qe=array_flip($u["columns"]);$Jg=($L?$Qe:array());break;}}foreach((array)$Jg as$x=>$X){if(in_array(idf_escape($x),$L))unset($Jg[$x]);}if($_POST["export"]){cookie("adminer_import","output=".urlencode($_POST["output"])."&format=".urlencode($_POST["format"]));dump_headers($a);$b->dumpTable($a,"");if(!is_array($_POST["check"])||$Jg===array())$G="SELECT $_c$ah$Gc";else{$Fg=array();foreach($_POST["check"]as$X)$Fg[]="(SELECT".limit($_c,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$p).$Gc,1).")";$G=implode(" UNION ALL ",$Fg);}$b->dumpData($a,"table",$G);exit;}if(!$b->selectEmailProcess($Z,$vc)){if($_POST["save"]||$_POST["delete"]){$H=true;$sa=0;$G=table($a);$N=array();if(!$_POST["delete"]){foreach($g as$B=>$X){$X=process_input($p[$B]);if($X!==null){if($_POST["clone"])$N[idf_escape($B)]=($X!==false?$X:idf_escape($B));elseif($X!==false)$N[]=idf_escape($B)." = $X";}}$G.=($_POST["clone"]?" (".implode(", ",array_keys($N)).")\nSELECT ".implode(", ",$N)."\nFROM ".table($a):" SET\n".implode(",\n",$N));}if($_POST["delete"]||$N){$Za="UPDATE";if($_POST["delete"]){$Za="DELETE";$G="FROM $G";}if($_POST["clone"]){$Za="INSERT";$G="INTO $G";}if($_POST["all"]||($Jg===array()&&is_array($_POST["check"]))||$cd){$H=queries("$Za $G$ah");$sa=$i->affected_rows;}else{foreach((array)$_POST["check"]as$X){$H=queries($Za.limit1($G,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$p)));if(!$H)break;$sa+=$i->affected_rows;}}}$Jd=lang(229,$sa);if($_POST["clone"]&&$H&&$sa==1){$qd=last_id();if($qd)$Jd=lang(142," $qd");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$Jd,$H);}elseif(!$_POST["import"]){if(!$_POST["val"])$n=lang(230);else{$H=true;$sa=0;foreach($_POST["val"]as$Hg=>$J){$N=array();foreach($J as$x=>$X){$x=bracket_escape($x,1);$N[]=idf_escape($x)." = ".(ereg('char|text',$p[$x]["type"])||$X!=""?$b->processInput($p[$x],$X):"NULL");}$G=table($a)." SET ".implode(", ",$N);$Zg=" WHERE ".where_check($Hg,$p).($Z?" AND ".implode(" AND ",$Z):"");$H=queries("UPDATE".($cd||$Jg===array()?" $G$Zg":limit1($G,$Zg)));if(!$H)break;$sa+=$i->affected_rows;}queries_redirect(remove_from_uri(),lang(229,$sa),$H);}}elseif(!is_string($oc=get_file("csv_file",true)))$n=upload_error($oc);elseif(!preg_match('~~u',$oc))$n=lang(231);else{cookie("adminer_import","output=".urlencode($ra["output"])."&format=".urlencode($_POST["separator"]));$H=true;$Ya=array_keys($p);preg_match_all('~(?>"[^"]*"|[^"\\r\\n]+)+~',$oc,$Bd);$sa=count($Bd[0]);begin();$Cf=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));foreach($Bd[0]as$x=>$X){preg_match_all("~((?>\"[^\"]*\")+|[^$Cf]*)$Cf~",$X.$Cf,$Cd);if(!$x&&!array_diff($Cd[1],$Ya)){$Ya=$Cd[1];$sa--;}else{$N=array();foreach($Cd[1]as$s=>$Va)$N[idf_escape($Ya[$s])]=($Va==""&&$p[$Ya[$s]]["null"]?"NULL":q(str_replace('""','"',preg_replace('~^"|"$~','',$Va))));$H=insert_update($a,$N,$Qe);if(!$H)break;}}if($H)queries("COMMIT");queries_redirect(remove_from_uri("page"),lang(232,$sa),$H);queries("ROLLBACK");}}}$Yf=$b->tableName($Q);if(is_ajax())ob_start();page_header(lang(36).": $Yf",$n);$N=null;if(isset($qf["insert"])){$N="";foreach((array)$_GET["where"]as$X){if(count($vc[$X["col"]])==1&&($X["op"]=="="||(!$X["op"]&&!ereg('[_%]',$X["val"]))))$N.="&set".urlencode("[".bracket_escape($X["col"])."]")."=".urlencode($X["val"]);}}$b->selectLinks($Q,$N);if(!$g)echo"

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

\n","
";hidden_fields_get();echo(DB!=""?''.(isset($_GET["ns"])?'':""):"");echo'',"
\n";$b->selectColumnsPrint($L,$g);$b->selectSearchPrint($Z,$g,$v);$b->selectOrderPrint($pe,$g,$v);$b->selectLimitPrint($y);$b->selectLengthPrint($kg);$b->selectActionPrint($v);echo"
\n";$D=$_GET["page"];if($D=="last"){$yc=$i->result("SELECT COUNT(*) FROM ".table($a).($Z?" WHERE ".implode(" AND ",$Z):""));$D=floor(max(0,$yc-1)/$y);}$G=$b->selectQueryBuild($L,$Z,$Fc,$pe,$y,$D);if(!$G)$G="SELECT".limit((+$y&&$Fc&&$cd&&$w=="sql"?"SQL_CALC_FOUND_ROWS ":"").$_c,($Z?"\nWHERE ".implode(" AND ",$Z):"").$Gc,($y!=""?+$y:null),($D?$y*$D:0),"\n");echo$b->selectQuery($G);$H=$i->query($G);if(!$H)echo"

".error()."\n";else{if($w=="mssql"&&$D)$H->seek($y*$D);$Qb=array();echo"

\n";$K=array();while($J=$H->fetch_assoc()){if($D&&$w=="oracle")unset($J["RNUM"]);$K[]=$J;}if($_GET["page"]!="last")$yc=(+$y&&$Fc&&$cd?($w=="sql"?$i->result(" SELECT FOUND_ROWS()"):$i->result("SELECT COUNT(*) FROM ($G) x")):count($K));if(!$K)echo"

".lang(89)."\n";else{$Ea=$b->backwardKeys($a,$Yf);echo"\n","".(!$Fc&&$L?"":"\n";if(is_ajax()){if($y%2==1&&$D%2==1)odd();ob_end_clean();}foreach($b->rowDescriptions($K,$vc)as$Td=>$J){$Gg=unique_array($K[$Td],$v);if(!$Gg){$Gg=array();foreach($K[$Td]as$x=>$X){if(!preg_match('~^(COUNT\\((\\*|(DISTINCT )?`(?:[^`]|``)+`)\\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\\(`(?:[^`]|``)+`\\))$~',$x))$Gg[$x]=$X;}}$Hg="";foreach($Gg as$x=>$X){if(strlen($X)>64){$x="MD5(".(strpos($x,'(')?$x:idf_escape($x)).")";$X=md5($X);}$Hg.="&".($X!==null?urlencode("where[".bracket_escape($x)."]")."=".urlencode($X):"null%5B%5D=".urlencode($x));}echo"".(!$Fc&&$L?"":"\n";}if(is_ajax())exit;echo"
".lang(234)."");$Ud=array();$Cc=array();reset($L);$bf=1;foreach($K[0]as$x=>$X){if($x!=$be){$X=$_GET["columns"][key($L)];$o=$p[$L?($X?$X["col"]:current($L)):$x];$B=($o?$b->fieldName($o,$bf):"*");if($B!=""){$bf++;$Ud[$x]=$B;$f=idf_escape($x);$Nc=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($x);$xb="&desc%5B0%5D=1";echo'','';echo(!$L||$X?apply_sql_function($X["fun"],$B):h(current($L)))."";echo"";}$Cc[$x]=$X["fun"];next($L);}}$wd=array();if($_GET["modify"]){foreach($K as$J){foreach($J as$x=>$X)$wd[$x]=max($wd[$x],min(40,strlen(utf8_decode($X))));}}echo($Ea?"".lang(235):"")."
".checkbox("check[]",substr($Hg,1),in_array(substr($Hg,1),(array)$_POST["check"]),"","this.form['all'].checked = false; formUncheck('all-page');").($cd||information_schema(DB)?"":" ".lang(234).""));foreach($J as$x=>$X){if(isset($Ud[$x])){$o=$p[$x];if($X!=""&&(!isset($Qb[$x])||$Qb[$x]!=""))$Qb[$x]=(is_mail($X)?$Ud[$x]:"");$z="";$X=$b->editVal($X,$o);if($X!==null){if(ereg('blob|bytea|raw|file',$o["type"])&&$X!="")$z=ME.'download='.urlencode($a).'&field='.urlencode($x).$Hg;if($X==="")$X=" ";elseif($kg!=""&&is_shortable($o))$X=shorten_utf8($X,max(0,+$kg));else$X=h($X);if(!$z){foreach((array)$vc[$x]as$q){if(count($vc[$x])==1||end($q["source"])==$x){$z="";foreach($q["source"]as$s=>$If)$z.=where_link($s,$q["target"][$s],$K[$Td][$If]);$z=($q["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\\1'.urlencode($q["db"]),ME):ME).'select='.urlencode($q["table"]).$z;if(count($q["source"])==1)break;}}}if($x=="COUNT(*)"){$z=ME."select=".urlencode($a);$s=0;foreach((array)$_GET["where"]as$W){if(!array_key_exists($W["col"],$Gg))$z.=where_link($s++,$W["col"],$W["val"],$W["op"]);}foreach($Gg as$hd=>$W)$z.=where_link($s++,$hd,$W);}}if(!$z&&($z=$b->selectLink($J[$x],$o))===null){if(is_mail($J[$x]))$z="mailto:$J[$x]";if($Ye=is_url($J[$x]))$z=($Ye=="http"&&$ba?$J[$x]:"$Ye://www.adminer.org/redirect/?url=".urlencode($J[$x]));}$Oc=h("val[$Hg][".bracket_escape($x)."]");$Y=$_POST["val"][$Hg][bracket_escape($x)];$Ic=h($Y!==null?$Y:$J[$x]);$_d=strpos($X,"...");$Mb=is_utf8($X)&&$K[$Td][$x]==$J[$x]&&!$Cc[$x];$jg=ereg('text|lob',$o["type"]);echo(($_GET["modify"]&&$Mb)||$Y!==null?"".($jg?"":""):"".$b->selectVal($X,$z,$o));}}if($Ea)echo"";$b->backwardKeysPrint($Ea,$K[$Td]);echo"
\n",(!$Fc&&$L?"":"\n");}if(($K||$D)&&!is_ajax()){$ac=true;if($_GET["page"]!="last"&&+$y&&!$cd&&($yc>=$y||$D)){$yc=found_rows($Q,$Z);if($yc$y||$D)){echo"

";$Ed=($yc===false?$D+(count($K)>=$y?2:1):floor(($yc-1)/$y));echo'".lang(237).":",pagination(0,$D).($D>5?" ...":"");for($s=max(1,$D-4);$s0){echo($D+5<$Ed?" ...":""),($ac&&$yc!==false?pagination($Ed,$D):" ".lang(238)."");}echo(($yc===false?count($K)+1:$yc-$D*$y)>$y?' '.lang(240).'':'');}echo"

\n",($yc!==false?"(".($ac?"":"~ ").lang(126,$yc).") ":""),checkbox("all",1,0,lang(241))."\n";if($b->selectCommandPrint()){echo'

',lang(34),'
';}$wc=$b->dumpFormat();foreach((array)$_GET["columns"]as$f){if($f["fun"]){unset($wc['sql']);break;}}if($wc){print_fieldset("export",lang(118));$ye=$b->dumpOutput();echo($ye?adminer_html_select("output",$ye,$ra["output"])." ":""),adminer_html_select("format",$wc,$ra["format"])," \n","\n";}}if($b->selectImportPrint()){print_fieldset("import",lang(55),!$K);echo" ",adminer_html_select("separator",array("csv"=>"CSV,","csv;"=>"CSV;","tsv"=>"TSV"),$ra["format"],1);echo" ","\n";}$b->selectEmailPrint(array_filter($Qb,'strlen'),$g);echo"

\n","
\n";}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["variables"])){$Nf=isset($_GET["status"]);page_header($Nf?lang(80):lang(79));$Tg=($Nf?show_status():show_variables());if(!$Tg)echo"

".lang(89)."\n";else{echo"\n";foreach($Tg 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"){$Vf=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$B=>$Q){$Oc=js_escape($B);json_row("Comment-$Oc",nbsp($Q["Comment"]));if(!is_view($Q)){foreach(array("Engine","Collation")as$x)json_row("$x-$Oc",nbsp($Q[$x]));foreach($Vf+array("Auto_increment"=>0,"Rows"=>0)as$x=>$X){if($Q[$x]!=""){$X=number_format($Q[$x],0,'.',lang(8));json_row("$x-$Oc",($x=="Rows"&&$X&&$Q["Engine"]==($Kf=="pgsql"?"table":"InnoDB")?"~ $X":$X));if(isset($Vf[$x]))$Vf[$x]+=($Q["Engine"]!="InnoDB"||$x!="Data_free"?$Q[$x]:0);}elseif(array_key_exists($x,$Q))json_row("$x-$Oc");}}}foreach($Vf as$x=>$X)json_row("sum-$x",number_format($X,0,'.',lang(8)));json_row("");}elseif($_GET["script"]=="kill")$i->query("KILL ".(+$_POST["kill"]));else{foreach(count_tables($b->databases())as$m=>$X)json_row("tables-".js_escape($m),$X);json_row("");}exit;}else{$eg=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($eg&&!$n&&!$_POST["search"]){$H=true;$Jd="";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"])$H=truncate_tables($_POST["tables"]);$Jd=lang(242);}elseif($_POST["move"]){$H=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$Jd=lang(243);}elseif($_POST["copy"]){$H=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$Jd=lang(244);}elseif($_POST["drop"]){if($_POST["views"])$H=drop_views($_POST["views"]);if($H&&$_POST["tables"])$H=drop_tables($_POST["tables"]);$Jd=lang(245);}elseif($w!="sql"){$H=($w=="sqlite"?queries("VACUUM"):apply_queries("VACUUM".($_POST["optimize"]?"":" ANALYZE"),$_POST["tables"]));$Jd=lang(246);}elseif(!$_POST["tables"])$Jd=lang(7);elseif($H=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('idf_escape',$_POST["tables"])))){while($J=$H->fetch_assoc())$Jd.="".h($J["Table"]).": ".h($J["Msg_text"])."
";}queries_redirect(substr(ME,0,-1),$Jd,$H);}page_header(($_GET["ns"]==""?lang(25).": ".h(DB):lang(87).": ".h($_GET["ns"])),$n,true);if($b->homepage()){if($_GET["ns"]!==""){echo"

".lang(247)."

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

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

\n","

".lang(248).": \n";if($_POST["search"]&&$_POST["query"]!="")search_tables();echo"\n",'\n";foreach($dg as$B=>$T){$Vg=($T!==null&&!eregi("table",$T));echo'
',''.lang(107),''.lang(249),''.lang(84),''.lang(250),''.lang(251),''.lang(252),''.lang(99),''.lang(253),(support("comment")?''.lang(101):''),"
'.checkbox(($Vg?"views[]":"tables[]"),$B,in_array($B,$eg,true),"","formUncheck('check-all');"),''.h($B).'';if($Vg){echo''.lang(106).'','?';}else{foreach(array("Engine"=>array(),"Collation"=>array(),"Data_length"=>array("create",lang(31)),"Index_length"=>array("indexes",lang(110)),"Data_free"=>array("edit",lang(32)),"Auto_increment"=>array("auto_increment=1&create",lang(31)),"Rows"=>array("select",lang(28)),)as$x=>$z)echo($z?"?":" ");}echo(support("comment")?" ":"");}echo"
 ".lang(227,count($dg)),"".nbsp($w=="sql"?$i->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";$l=(support("scheme")?schemas():$b->databases());if(count($l)!=1&&$w!="sqlite"){$m=(isset($_POST["target"])?$_POST["target"]:(support("scheme")?$_GET["ns"]:DB));echo"

".lang(259).": ",($l?adminer_html_select("target",$l,$m):'')," ",(support("copy")?" ":""),"\n";}echo"\n";}echo"

\n";}echo'

'.lang(152)."\n";if(support("view"))echo''.lang(184)."\n";if(support("routine")){echo"

".lang(121)."

\n";$uf=routines();if($uf){echo"\n",'\n";odd('');foreach($uf as$J){echo'','
'.lang(162).''.lang(96).''.lang(201)." 
'.h($J["ROUTINE_NAME"]).'',''.h($J["ROUTINE_TYPE"]),''.h($J["DTD_IDENTIFIER"]),''.lang(113)."";}echo"
\n";}echo'

'.(support("procedure")?''.lang(200).' ':'').''.lang(199)."\n";}if(support("sequence")){echo"

".lang(262)."

\n";$Df=get_vals("SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = current_schema()");if($Df){echo"\n","\n";odd('');foreach($Df as$X)echo"
".lang(162)."
".h($X)."\n";echo"
\n";}echo"

".lang(206)."\n";}if(support("type")){echo"

".lang(13)."

\n";$Pg=types();if($Pg){echo"\n","\n";odd('');foreach($Pg as$X)echo"
".lang(162)."
".h($X)."\n";echo"
\n";}echo"

".lang(210)."\n";}if(support("event")){echo"

".lang(122)."

\n";$K=get_rows("SHOW EVENTS");if($K){echo"\n","\n";foreach($K as$J){echo"","
".lang(162)."".lang(263)."".lang(190)."".lang(191)."
".h($J["Name"]),"".($J["Execute at"]?lang(264)."".$J["Execute at"]:lang(192)." ".$J["Interval value"]." ".$J["Interval field"]."$J[Starts]"),"$J[Ends]",''.lang(113).'';}echo"
\n";$Zb=$i->result("SELECT @@event_scheduler");if($Zb&&$Zb!="ON")echo"

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

'.lang(189)."\n";}if($dg)echo"\n";}}}page_footer();