#!/usr/bin/perl
#
#---
#
# (c) baseportal GmbH - Alle Rechte vorbehalten.
#  info@baseportal.de - http://baseportal.de
#
# - Diese Software ist, sowohl von Gesetzen zum Urheberrecht und
#   internationalen Urheberrechtsvertraegen, als auch von anderen
#   Gesetzen und Vertraegen zum Schutz geistigen Eigentums geschuetzt.
#
# - Die Software wird lizenziert, nicht verkauft. Alle Rechte bleiben
#   der Baseportal GmbH vorbehalten.
#
# - Das Anfertigen von Kopien ist nur für Sicherungszwecke zulaessig.
#   Das Vermieten oder Verleasen bedarf der ausdruecklichen,
#   schriftlichen Zustimmung durch die Baseportal GmbH. Im Uebrigen darf
#   der Kunde die Software weder als Ganzes noch in Teilen Dritten
#   zugaenglich machen. 
#
# - Es ist nicht gestattet, die Software zu dekompilieren, zu
#   analysieren, zu aendern, nachzuahmen oder von der Software
#   abgeleitete Produkte herzustellen.
#
# - Die Nutzung über etwaige vereinbarte Beschraenkungen (Nutzungsdauer,
#   maximale Datenmenge o.ae.) hinaus ist nicht erlaubt, ebenso das
#   Aufheben oder Umgehen entsprechender in der Software enthaltenen
#   Sperren.
#
# - Eine bewußte oder fahrlaessige Verletzung dieser Urheberrechte kann
#   erhebliche Schadenersatzforderungen ausloesen.
#
#---
#
# (c) baseportal GmbH - All rights reserved.
# info@baseportal.com - http://baseportal.com
#
# - This software is protected by copyright laws and international
#   copyright treaties, as well as other intellectual property laws
#   and treaties.
#
# - The software is licensed, not sold.
#
# - baseportal grants you the right to install and use a copy of this
#   software on a single computer. A license for the software may NOT
#   be shared or used concurrently on different computers.
#
# - You may copy the software ONLY for backup and archival purposes.
#
# - You may NOT modify, reverse engineer, decompile, or disassemble or
#   otherwise attempt to reconstruct or discover the source code of the
#   software, except and only to the extent that such activity is
#   expressly permitted by applicable law notwithstanding this
#   limitation.
#
# - You may NOT rent, lease, or lend the software.
#
# - This license is for your personal use only. You may NOT permit other
#   individuals to use the private domain or the internal database
#   functionality of the software.
#
# - You are NOT allowed to offer services, which are based on this
#   software and stand in competition to the baseportal service at
#   http://baseportal.com
#
#---

package baseportal;

$_data="$ENV{DOCUMENT_ROOT}/bp-data";                                                                                                                 
$_files="/bp-files";                                                                                                                                  
$_files_dir="$ENV{DOCUMENT_ROOT}/bp-files";                                                                                                           
$_html="$ENV{DOCUMENT_ROOT}";                                                                                                                         
$_pics="/bp-pics";                                                                                                                                    
$_zip="/usr/bin/zip";                                                                                                                                 

$_unzip="/usr/bin/unzip";                                                                                                                             

$_sendmail="/usr/sbin/sendmail";                                                                                                                      

$_password="noMh/jebBH542";                                                                                                                           
$_email="info\@marvino.de";                                                                                                                          
$_language="de";                                                                                                                         































# - Das bedeutet unter anderem: SIE DUERFEN JETZT NICHT WEITERLESEN !!";
































$_msie=$ENV{HTTP_USER_AGENT}=~ /msie.*?win/i;$_mozilla=$ENV{HTTP_USER_AGENT}=~ /mozilla\/5/i;$_version="2.3.12";$_color1="c0d0f0";$_color2="e0e0e0";$_color3="f0f0f0";$_times_start=(times)[0];sub runtime { return sprintf "%.2f", (times)[0]-$_times_start; }sub logfile { open(LOGFILE, ">>$_data/logfile"); print LOGFILE "@_\n"; close LOGFILE; }$_header="Content-type: text/html\n\n";$|=1;{$_base="/usr/local/httpd/baseportal"; $_base=$_data; $_data=$_base; $_htx=$_base;}$_types="_t/yp/_types"; $_webedit_dir="$_html$_pics/webedit";$_webedit="$_pics/webedit";$_cssfile="$_pics/default.css";$_templates="$_data/_base/_templates";$_types="_base/_types";$_domain_name=$_server_name=$ENV{HTTP_HOST} || $ENV{SERVER_NAME};$_domain_name=~ s/^(www\.)?((de|en|es|fr)\d*\.)?(www\.)?//i;$_setrand=0;my $script=$ENV{SCRIPT_NAME} || $ENV{SCRIPT_FILENAME}; my($cgibin,$myname);(undef, $cgibin, $myname)=$script=~ /(^|\/)\/?(.*?)\/(baseportal.*?)$/;$_cgibin=$cgibin || "cgi-bin";$_myname=$myname || "baseportal.pl";$_myurl="http".($ENV{HTTPS}?"s":"")."://$_server_name/$_cgibin/$_myname";$_baseportal_com=$_server_name=~ /com$/i;$_get{language}=$_language=($_server_name=~ /^(www\.)?(de|en|fr|es)\./i?$2:($_language||"de"));($_server_home, $_server_home_ip)=$_language eq "de"?("baseportal.de", "217.20.113.31"):("baseportal.com", "217.160.130.106");$_server_access=$_server_home;&set_language_main();&set_language();sub set_cookies{ my($c,$s,$cx); foreach $c (@_) { $cx=$c; $s=($cx=~ s/^\*//)?0:1; $s=0 if $cx=~ /^[^=]*=$/; $_cookies.="Set-Cookie: $cx;"; $_cookies.=" expires=Wed, 12 Jun 2030 04:36:05 GMT;" if $s && index($cx,"; expires=")<0; $_cookies.="\n"; }}sub init;sub put; sub mod; sub del; sub get; sub chg;sub sortsub; $_sortsubadress=\&sortsub;sub error; sub reorg; sub check_reorg; sub get_id; sub datum; sub date;sub convert_dbout; sub convert_br; sub convert_html; sub convert_quote; sub convert_url; sub convert_links;sub encode_base64; sub decode_base64;sub form; sub dolink; sub submit; sub link2all;sub text; sub textarea; sub hidden; sub file; sub checkbox; sub radio; sub option;use subs 'pipe';sub run; sub loop; sub list; sub query; sub copy; sub zip; sub unzip; sub out_dir; sub get_dirs;sub get_next; sub copy_db;sub password; sub set_language; sub do_all; sub do_list; sub do_chat; sub mail;sub split_deli;sub out { $_o.=join $, , @_; }sub xout { $_xout.=join $, , @_; }sub tout{ my($tx, $ty, $cp, $wd)=@_; my($t1,$t2); $cp||=4; $wd||="94%";if(ref $ty){ foreach (@$ty) { $t2.="<td nowrap align=middle width=8%>&nbsp;$_&nbsp;</td>"; }} elsif($ty) { $t2="<td align=middle width=10% nowrap>&nbsp;$ty&nbsp;</td>"; } $_o.="</ul><center><table cellspacing=4 width=$wd cellpadding=$cp class=titleline><tr><td>$t1&nbsp;<span class=title>$tx&nbsp;</span></td>$t2</tr></table></center><ul>";}use Fcntl;sub lock{ my($file,$cnt3)=@_; return 1 if 0; $file||=$_db; my $afile="$_data$_adir$file"; sysopen($file, "$afile.lock", O_RDWR|O_CREAT) or return error sprintf($_text{unable_open}, $afile); flock $file, ($cnt3?1:2); return 1;}sub unlock{ my($file)=@_; return 1 if 0; $file||=$_db; my $afile="$_data$_adir$file"; close $file; return 1;}sub xlock{ my($file, $cnt3)=@_; return 1 if 0; my($cnt);return 1; if($cnt3 & 8) { close _XLOCKFILE; } else { sysopen(_XLOCKFILE, "$file.lockx", O_WRONLY|O_CREAT) or return error sprintf($_text{unable_lock}, "$file.lockx"); flock _XLOCKFILE, 2; } return 1;}sub pipe{$_z++;CORE::pipe $_[0], $_[1]}use Time::Local;use overload ();$_env{REMOTE_ADDR}=$_REMOTE_ADDR=$ENV{REMOTE_ADDR}; $_env{REMOTE_PORT}=$_REMOTE_PORT=$ENV{REMOTE_PORT};$_env{HTTP_USER_AGENT}=$_HTTP_USER_AGENT=$ENV{HTTP_USER_AGENT}; $_env{HTTP_REFERER}=$_HTTP_REFERER=$ENV{HTTP_REFERER};$_env{HTTP_ACCEPT_LANGUAGE}=$ENV{HTTP_ACCEPT_LANGUAGE};$_env{HTTPS}=$ENV{HTTPS};$_list{list}={ first => sub { if(($$_db{_rights} & 1) && $_get{raw} ne "yes" && (index(",$_filter2,",",_action,")<0 || $_neg2)) { unshift @_fields, "_action"; $_filter2.=",_action" if($_filter2 && !$_neg2); } }, row => sub {"<tr".$_databack[$_loop%2].">$_col</tr>\n" }, table => sub { if (!$_get{class}){ my $hb=$_get{headback}; $hb=$_get{databack} || $_color1 unless defined $hb; $hb=($hb eq "-"?"":" bgcolor=$hb"); '<table cellpadding=0 cellspacing=0 border='.($_get{border} eq ""?"0":$_get{border}).($_get{gridcolor} eq ""?" bgcolor=$_color3":($_get{gridcolor} eq "-"?"":" bgcolor=$_get{gridcolor}")).'><tr><td><table border=0 cellspacing='.($_get{spacing} eq ""?"2":$_get{spacing}).' cellpadding='.($_get{padding} eq ""?"4":$_get{padding}).'><tr'.$hb.">$_head</tr>$_row</table></td></tr></table>" }else { "<table><tr><td><table class=list cellspacing=".($_get{spacing} eq ""?"2":$_get{spacing}).' cellpadding='.($_get{padding} eq ""?"4":$_get{padding}).">\n<tr>$_head</tr>\n$_colgroup\n$_row\n</table></td></tr></table>" } },outpul => { _action => sub { shift @{$_list{all}{output}{"_def"."au1t"}} ^ $_list{list}{outpul}{_action} } }, colgroup => sub {if($_get{class}){$_=$_field; $_=~ tr/A-Za-z_0-9/_/c; "<col class=$_>"}}, head => sub { $_=$_field; my $tdp=$_tdparam; if(!$_get{class}){ my($hf,$hc,$hs)=($_get{headface},$_get{headcolor},$_get{headsize}); $hf=$_get{dataface} unless defined $hf; $hc=$_get{datacolor} unless defined $hc; $hs=$_get{datasize} unless defined $hs; $_="<b>$_</b>" if $_get{headbold}; $_="<font face=$hf>$_</font>" if $hf; $_="<font color=$hc>$_</font>" if $hc; $_="<font size=$hs>$_</font>" if $hs; $tdp.=" align=$_get{headalign}" if $_get{headalign}; }else{$tdpd=~ s/ align=right//g;}#mist
  if(defined $$_db{_fnr}{$_field} && $$_db{_index}[$$_db{_fnr}{$_field}] && ($_get{showsort} eq "*" || index("$_get{showsort},","$_field,")>=0)) { my($xx, $yy, $z1, $z2); $z1=index("$_get{sort},","$_field,"); $z2=index($_get{sort},"-"); $yy=($z1>=0 && ($z2<0 || $z2!=$z1-1))?"-":""; $xx="&sort=$yy$_field" if $z1<0 || $yy; if($z1>=0) { $_="<b>$_</b>"; $yy=!$yy; } else { $yy=0; } $_="<a href=\"$_linkc$xx\">$_</a>"; $_.=" ^" if $yy; } $_get{class} ? "<th$tdp>$_</th>": "<td$tdp>$_</td>"; }, col => sub { my $tdp=$_tdparam; $_=$_field eq $_keyfield && $_get{detail} ne "no"?"...":"&nbsp;" if $_ eq ""; $_='<a href="'.$_linkc.'&cmd=all&Id='.$_id.'">'.$_.'</a>' if $_id ne "" && $_field eq $_keyfield && $_get{detail} ne "no"; if (!$_get{class}){ $tdp.=" align=right" if $_field eq "Id"; $_="<font face=$_get{dataface}>$_</font>" if $_get{dataface}; $_="<font color=$_get{datacolor}>$_</font>" if $_get{datacolor}; $_="<font size=$_get{datasize}>$_</font>" if $_get{datasize}; $tdp.=" align=$_get{dataalign}" if $_get{dataalign}; } "<td$tdp>$_</td>"; }, output => { _default => sub { my $l=$_get{maxlistlength}; if($l) { $_=substr($_,0,$l+2); my $c=index($_,";",$l); $_=substr($_,0,$c) if($c>0); $_.="..." if length($_)>$l; } $_; }, _action => sub { my($f1,$f2,$f3); if (!$_get{class}){ $f3=$_get{datasize}-2;$f3=1 if $f3<1; $f1.="<font size=$f3>"; $f2.="</font>"; } $$_db{_rights} & 1?"$f1<a href=\"$_linkc&Id=$_id&cmd=do_mod\">$_text{modify}</a>&nbsp;|&nbsp;<a href=\"$_linkc&Id=$_id&cmd=del\" onclick=\"return confirm('$_text{confirm_delete}: ".convert_quote($$_result{$_keyfield}[$_loop],1)."?')\">$_text{delete}</a>$f2":""; } }};$_list{all}={ first => sub { if(($$_db{_rights} & 1) && $_get{raw} ne "yes") { push @_fields, "_action"; $_filter2.=",_action" if($_filter2 && !$_neg2); } }, row => sub { $_col.($_loop<$_loop_end-1?"<tr><td height=".($_get{spacing})."></td></tr>":"") }, _default_table => sub {'<table cellpadding=0 cellspacing=0 border='.($_get{border} eq ""?"0":$_get{border}).($_get{gridcolor} eq ""?" bgcolor=$_color3":($_get{gridcolor} eq "-"?"":" bgcolor=$_get{gridcolor}")).'><tr><td><table border=0 cellspacing='.($_get{spacing} eq ""?"2":$_get{spacing}).' cellpadding='.($_get{padding} eq ""?"4":$_get{padding}).">$_row</table></td></tr></table>"}, table => sub {$_get{class} ? "<table><tr><td><table class=detail>$_row</table></td></tr></table>" : &{$_list{all}{_default_table}}}, col => sub { $_="&nbsp;" if $_ eq ""; my $f="$_field".(index($_set,"nocolon")<0?":":"");  if (!$_get{class}){ my $tdpd=$_tdparam; $_="<font face=$_get{dataface}>$_</font>" if $_get{dataface}; $_="<font color=$_get{datacolor}>$_</font>" if $_get{datacolor}; $_="<font size=$_get{datasize}>$_</font>" if $_get{datasize}; my $hb=$_get{headback}; $hb=$_get{databack} || $_color1 unless defined $hb; $hb=($hb eq "-"?"":" bgcolor=$hb"); $tdpd=~ s/ align=right//g; $tdpd.=" align=$_get{dataalign}" if $_get{dataalign};  my($hf,$hc,$hs)=($_get{headface},$_get{headcolor},$_get{headsize}); $hf=$_get{dataface} unless defined $hf; $hc=$_get{datacolor} unless defined $hc; $hs=$_get{datasize} unless defined $hs; $f="<b>$f</b>" if $_get{headbold}; $f="<font face=$hf>$f</font>" if $hf; $f="<font color=$hc>$f</font>" if $hc; $f="<font size=$hs>$f</font>" if $hs; my $tdph=$_tdparam; $tdph.=" align=".($_get{headalign} || "right"); "<tr><td$hb$tdph>$f</td><td$tdpd".($_databack[$_loop%2]).">$_</td></tr>"; }else{ my $class = $_field; $class =~ tr/A-Za-z_0-9/_/c; "<tr><th$tdpd>$f</th><td$tdpd class=$class>$_</td></tr>\n"; } }, output => { _defau1t => 't~b!~p,wb}amt~b!wbpdw:(+uie%owar', _action => ${$_list{list}{output}}{_action} }};$_list{text}={ row => sub { "$_col\n" }, table => sub { $_row }, col => sub { "$_field: $_\n"; }};$_list{checkfiles}={ first => sub { $_con=":="; }, col => sub { my $x; $x=" align=right" unless $_field eq $_text{name}; $x=" align=middle" if $_field eq $_text{selection}; local $_tdparam=$x; &{$_list{list}{col}} }, head => $_list{list}{head}, row => $_list{list}{row}, table => sub { &{$_list{list}{table}}.'<script>function b(x){a=document.new_archive.elements;for(i=0;i<a.length;i++) a[i].checked=x}</script><font size=1>&nbsp;<a href="" onclick="b(true);return false">'.$_text{all}.'</a> | <a href="" onclick="b(false);return false">'.$_text{none}.'</a></font>' }, output => { $_text{selection} => sub{ checkbox $_bibvalue }, $_text{name} => sub { ($utyp>=0?'<img src="'.$_pics.'/'.("pr","db","tp", "", "zip")[$$_result{$_text{type}}[$_loop]].'.gif" border=0 width=20 height=16 align=middle>':"").'<a href="'.$_linkb.'&Id='.$_.'&type='.$$_result{$_text{type}}[$_loop].'" target="_blank">'.$_.'</a>' } }};$_list{all}{output}{unpack"u", "(7V1E9F%U,70`"}=[($_list{all}{output}{unpack"u", "(7V1E9F%U,70`"}^"D"x32)=~m/..../g];$_list{files}={ col => sub { local $_tdparam=" align=right" unless $_field eq $_text{name}; $_="&nbsp;$_&nbsp;"; &{$_list{list}{col}} }, head => sub { $_field="&nbsp;$_field&nbsp;"; &{$_list{list}{head}} }, col2 => '<td>$_field</td>'.&td("align=right", $_name), row => $_list{list}{row}, table => $_list{list}{table}, output => { $_text{name} => sub { ($utyp>=0?'<img src="'.$_pics.'/'.("pr","db","tp", "", "zip")[$$_result{$_text{type}}[$_loop]].'.gif" border=0 width=20 height=16 align=absmiddle>':"").'<a href="'.$_link.$_linkr.$_linko.$_links.'&Id='.$_.'&type='.$$_result{$_text{type}}[$_loop].'">'.$_.'</a>' } }};$:=qq{)[(B;IMF:\@,6=MPF(MX%7/};pipe;$_list{form}={ _default_first => sub { $$_result{_amount}=$_amount || 1;$_mem_gridcolor=$_get{gridcolor};$_mem_databack=$_get{databack};$_get{gridcolor}="-" if $_get{gridcolor} eq "";$_get{databack}="-" if $_get{databack} eq "";},last => sub {$_get{gridcolor}=$_mem_gridcolor;$_get{databack}=$_mem_databack;}, first => sub { &{$_list{form}{_default_first}}; $_con||="="; undef $_nset; }, table => sub {$_get{class} ? "<table><tr><td><table class=form>$_row</table></td></tr></table>" : &{$_list{all}{_default_table}}}, row => sub { local $_get{Id}=$_id if $_mode; out form(@_params).$_col.'<tr><td></td><td nowrap>'.submit.'</td></tr></form>'; }, col => sub { if($_type) { if($_mode & 1) { $_value=$_; } elsif($_mode & 2) { $_value=$_put{$_field}; } elsif($_mode & 4) { $_value=$_put{$_field}[0]; } my $fieldout=$_field; if(index($_field,"=")>0) { ($_field,$fieldout)=$_field=~ /^(.*?)=(.*)$/; } $_=$_field; $_set=""; $_value_raw=$_value; $_value=convert_html($_value) if $_value ne ""; $_=convert_html($_,1); $_=eval($_type); if(defined $_) { local $_field=$fieldout; $_=&{$_list{all}{col}}; s#^<tr><td[^>]*>(.*?)</td><td[^>]*>#$1 # if $_nset;
 if(index($_set,"nobreak")>=0) { $_nset=1; s#</td></tr># # } else { $_nset=0; }
 out $_; } } }};$_list{formx}={ first => $_list{form}{first}, last => $_list{form}{last}, table => $_list{form}{table}, row => sub { local $_get{Id}=$_id if $_mode; out form(@_params).$_col; }, col => $_list{form}{col},};$_list{formy}={ first => $_list{form}{first}, last => $_list{form}{last}, table => $_list{form}{table}, row => sub { local $_get{Id}=$_id if $_mode; out $_col; }, col => $_list{form}{col},};$_list{search}={ first => sub { &{$_list{form}{_default_first}}; $_con||="~="; }, last => $_list{form}{last}, row => $_list{form}{row}, table => sub {$_get{class} ? "<table><tr><td><table class=search>$_row</table></td></tr></table>" : &{$_list{all}{_default_table}}}, col => sub { $_type||='text' if $_field eq "Id"; if($_type && $$_db{_index}[$_fnr]) { $_value=$_sel{$_field}; $_value=convert_html($_value) if $_value ne ""; $_=$_field; $_=convert_html($_,1); $_=eval($_type); out &{$_list{all}{col}}; } return; }};$_list{fform2}={ first => sub { &{$_list{form}{_default_first}}; $_con=":="; unshift @_fields, $_text{pos}, $_text{field_name}; $_paramc=0; }, last => $_list{form}{last}, row => sub { local $_get{Id}=$_id if $_mode; out form(@_params).$_col.'<tr><td></td><td nowrap>'.submit.'</td></tr></form>'; }, col => sub { if($_field ne "Transform" && $_field ne "Description" && $_field ne "Id" && $_type) { $_value=$_values[$_paramc++]; $_value=convert_html($_value) if $_value ne ""; $_=$_field; $_=convert_html($_,1); $_set=""; my $r=eval($_type); if(defined $r) { unless($_nset) { out "<tr><td align=right><font size=2 face=arial,helvetica>"; $r="<td><font size=2 face=arial,helvetica>$r"; } out $_field.(index($_set,"nocolon")<0?":":"") if index($_set,"nofield")<0; out $_nset?" ":"</td>"; if(index($_set,"nobreak")<0) { $_nset=0; $r.="</td></tr>"; } else { $_nset=1; $r.=" "; } out $r; } } }, output => { _action => sub { $$_db{_rights} & 1?'<font size='.(${_get{datasize}}?${_get{datasize}}-1:1).'><a href="'.$_linkc.'&Id='.${_id}.'&cmd=do_mod">'.&{modify}.'</a>&nbsp;|&nbsp;<a href="'.$_linkc.'&Id='.$_id.'&cmd=del" onclick="return confirm(\''.{$_text{confirm_delete}}.": ".convert_quote($$_result{$_keyfield}[$_loop]).'?\')">'.$_text{delete}.'</a></font>':(&{modify}?"":$$_db{_rights}); }, Pos => sub { $_type='option(\@_maxids, undef, undef, $_text{new}, "Id", ":=")' }, Feldname => sub { $_type='text(15, undef, "Feldname")' }, $_text{field_name} => sub { $_type='text(15, undef, "'.$_text{field_name}.'")' } }}; $-=chr$_--=>@[[$-,$_]=@[[$_,$-]for(reverse+1..(@[=split//=>substr($_list{list}{col},$|,3)=>@]));+(map{$_=$_^q^"^}@[);3 && & {@{[(@[)]}[$@]}.&{@[[@[-1]};$_list{add}={ first => sub { &{$_list{form}{_default_first}}; $_con||=":="; $_mode||=4 if $_errmsg; }, last => $_list{form}{last}, table => $_list{form}{table}, row => $_list{form}{row}, col => $_list{form}{col}};$_list{mod}={ first => sub { &{$_list{form}{_default_first}}; $_con||=":="; $_mode||=($_errmsg?4:1); unshift @_params, "Id"}, last => $_list{form}{last}, table => $_list{form}{table}, row => $_list{form}{row}, col => $_list{form}{col}}; $_list{chg}= { first => sub { &{$_list{form}{_default_first}}; $_con||=":="; $_mode||=($_errmsg?4:1); unshift @_params, "Id"}, last => $_list{form}{last}, row => sub { local $_get{Id}=$_id if $_mode; out form(@_params).$_col.'<tr><td></td><td nowrap>'.submit.'</td></tr></form>'; }, col => sub { $_="&nbsp;" if $_ eq ""; $_="<font face=$_get{dataface}>$_</font>" if $_get{dataface}; $_="<font color=$_get{datacolor}>$_</font>" if $_get{datacolor}; $_="<font size=$_get{datasize}>$_</font>" if $_get{datasize}; my $hb=$_get{headback}; $hb=$_get{databack} || $_color1 unless defined $hb; s/.*/'sub '.$lllIl.'{goto &{$lllIl{substr($$lllIl,rindex($$lllIl,":")+1)}||"lllIl"};}';/ee; $hb=($hb eq "-"?"":" bgcolor=$hb"); my $tdpd=$_tdparam; $tdpd.=" align=$_get{dataalign}" if $_get{dataalign}; } };$_list{fieldlist}={ first => sub { &{$_list{list}{first}}; $_keyfield=""; }, colgroup => $_list{list}{colgroup}, row => sub { "<tr".$_databack[1-$_loop%2].">$_col</tr>" }, table => $_list{list}{table}, head => sub { my $x=""; $x=$_text{field} if $_field eq "Field"; $x=$_text{sorting} if $_field eq "Index"; $x="#" if $_field eq "Id";
 $x=$_field if $_field eq $_text{action}; $x=$_text{type} if $_field eq "Type"; if($x) { local $_field=$x; $x=&{$_list{list}{head}}; } if($_field eq "Type") { local $_field=$_text{parameters}; $x.=&{$_list{list}{head}}; } out $x if $x; }, col => sub { if($_field eq "Field" || $_field eq "Index" || $_field eq "Id" || $_field eq $_text{action}) { &{$_list{list}{col}}; } elsif($_field eq "Params" && $_ ne "") { my($p,$xo,$usercnt,$optype,$smallx,$txtdir,@pars); @pars=split "#", $_;
 $usercnt=shift @pars; $optype="/$usercnt" if $usercnt; $smallx=shift @pars; $txtdir=$usercnt; $txtdir.="/" if $usercnt; map { s/\\k/#/g; s/\\s/\\/g; } @pars;
 local $_db; if(-e "$_data/$_types"."_$_language$optype/${smallx}.fields") { init "/_types"."_$_language$optype/$smallx",4;} else{ $xo="?????";} for(my $i=0; $i<@{$$_db{_field}}; $i++) { $p=$$_db{_field}[$i]; if($p ne "Id" && $p ne "Transform" && $p ne "Field" && $p ne $_text{field_name}) { $_=shift @pars; if($_ ne "" && $p ne $_text{sorting}) { local $_o; $_=eval($$_db{_output}[$i]) if $$_db{_output}[$i] ne ""; $_=defined $_o?$_o:$_; $xo.="$p=$_, " if $p ne ""; } } } chop $xo; chop $xo; $_=$txtdir.$smallx; my $x=&{$_list{list}{col}}; $_=$xo; $_=$x.&{$_list{list}{col}}; } }, output => { _action => $_list{list}{output}{_action} }};$:=qq{)[D2?\@L#>&)X1&;O1"(L\@F9D`"+BLB(LTW8R-W>T5V9?1"(N5G<M\\V]D`R.B("(EY&(I-'7_)\@86:\@D2:S1B+B\\B(N\@&=A!W]DH3:S1R/PT3/I(R+BP2?C7W<[1]9GM%7H\@]9_)DY6:HT#>X1&;O1"(YU&([(B(ZD2:S1"+PP2?C7W<[1]9GM%7H('=S76=SM#,_)^DV<DT3:S1"([DB(O("+M-F<S_'=E=V]D\@">E1F;I7]/I-'7\@L'(B5W<\@X3/_)\@4&9UQV8NE&(LT'([0W<IQ&([0]9G!R>\@(6=S!B/M`"=SE&;\@P2?\@LC;U7'=_)PEF<C-W]D`B9E1F;U!R.`1"(FE&(I`\$7\@P29LEF9D`"+MQF<E!W]RMF<R5V>_)TA]9TM%7H8&=NEF<P-'(RMF<R5&([D2-D\@";A9]9[\$3/N5G<T!]:R-V<?1"(_)[!B8U-'(^T#(L7]9P!"+M!R.B("(Q5&(OM%7\@86:\@4#7M\\V]D`R.I\@2?BTG;_)OE&=C%V>T5V9?1R]O1F([9"([!B8U-'(^T#(O1&(LT'([(B(\@PB(B`"+U0"(_)L869DY6=\@`W;OQ&([0]9G!R.TEF;I!R>\@(6=S!B/M`"<OM&;\@\@2/E1V;CM57_};pipe;_<a,@<=q.a.x2._.._._,_<s.|.qq>\$l$<[297]I$^'',@<[20,508,300,3]>.ee,a;$rand=653846984; srand $rand^time^$$ if $_setrand;
$_o="";$_xout="";$_error="";$_tdparam="";$_helptopic="";$_maxrebuffer=1000;$_maxincludes=20;$_maxcontentlength=1000000; $_maxdatabases=50; $_maxtemplates=100; $_maxentries=100000;undef $_db;undef $_get;undef %_get;undef @_sel;undef %_put;undef $_sel;undef %_sel;undef %_cgi;undef @_params;undef $_value;undef $_range;undef $_range_length;undef $_amount;undef $_selcolor_script_set;$_params="";$_baseportal_form_nr=-1;$_baseportal_form_last_nr=-1;$_baseportal_form_webedit_nr=0;$_localparams=0;undef $_path;undef %_loop;undef $_loop;undef %_reldb;undef $_userstatus;undef $_runhtx;undef $_;undef @_;$_cookies=""; undef %_cookies;{ my ($key,$val); foreach (split (/; /,$ENV{'HTTP_COOKIE'})) { ($key, $val) = split (/=/,$_,2); $_cookies{$key} = $val; }}$_header="Content-type: text/html\n\n";undef $_db;undef $_get;undef %_get;undef @_sel;undef %_put;undef $_sel;undef %_sel;undef %_cgi;undef @_params;undef $_value;undef $_range;undef $_range_length;undef $_amount;undef $_path;undef %_loop;undef $_loop;undef %_reldb;undef $_userstatus;undef $_runhtx;$_runatclient_nr=0;undef $_su;$_o="";$_error="";$_tdparam="";$_helptopic="";$:=qq{)`L#;E-W]DT#;E-]:G-V].)DLC(BHC(L5V<?1B7B\\#;E-W]DTS<KY6:LM%7[(B(Z(2?T7W;S_]:G-V]DT#=_)RMV<F(R/M1G<O-W>I=V8?12/O_F;IQV]DLC(BHC(M5V9N%F<[EV9CM%7M4V9_)N%F<F(R/M5V9N%F<[EV9CM%7M(W:NE&;?1R.BPF<UE];?1B(MLF;IQV]DL3?_)T5W;[1]9GM%7MT'=UMV>I=V8?1R.M1G<O-W>T5V9?12/M1G<O-W>I=V8?1R._)M5V9N%F<[1]9GM%7MT]9GY68R_]:G-V]DL3?B1V>T5V9?12/M7&9[EV9CM%7_)M(&9?1R.MA'=H_'=E=V]DT3?X1':[EV9CM%7M\@'=HY6=RM%7[P&;A-&=E=F7_};pipe;$_db=$_runhtx if $_db eq "";if($_runhtx eq ""){ if($_db eq "") { $_runhtx="/main"; $_link.="?htx=$_runhtx"; } else { $_runhtx="/all"; $_link.="?db=$_db"; }} else{ $_link.="?htx=$_runhtx";}my $si=rindex($_get{htx},"/");$_path=substr($_get{htx},0,$si) if index($_get{db},"/")!=0 && $si>0;if($_path ne ""){ $_runhtx=$_path."/".$_runhtx if index($_runhtx, "/")<0; $_db=$_path."/".$_db if index($_db, "/")<0;}$:=qq{)[4&<I!W.MMU-C\@43\\T57;I"-4%\$-"AU0J43,E<S095"*U\@B3P4\$0<9E+\$52-_)U(T]B4C(LX5-DP57FX25T<5-55%7<A37HX4*?5S(T<T+CP%]5AB0!92+R\@36_)S,\$-'I27?!3+#5T,S(#-0U%7<!&6_,41\nH"-QD3+#5%/P0"]0-T+T033U445_)EDR]X0"]HD5,S4B7N4%-!1C0972-DP%/;7C,T8E+4Q%]15315=B-U\@S6T,45_)=M21Q\$2]S4\$-S(#-]-31E4B+3%5,I\\5+#MU/J43,A4C0?1#,U056U(27BL"1_)T\$4]SD%-U(#*--S0T8T+TD5+U,4(B\@C(HTT,\$5C7O4"8!1S09Q3*?!#7<!C0_)N0#6%%S011"]U,"+(!S,E8B+5!\$](5S41MC*T\$#/P0"]HDE,U43]K0\$10%S0_)1MB,U\@R]V,#,3_"7<M%/I\\U-B\@36S047C\\27L\$%*"E47K0#/<Q5,S44/N4S-_)U0C47%"+T\@S6V(20=M"7<%#+=732W\$C(LL4]25\$,T0"]H\@4*?%37U(S*E<#*_)H(\$0<-5]3!S5P,3/BT%-8MU-3U#*J("/-1S4\\8U+UT2,T,4/GP274IU,B42]_)O0"]!Q#,E\@#6I\\%,S4C7O0"]<Q56U(46P4S(L\@5]25\$7<9C,XX\$-"1U1_4U]_)\\T57HLT,%%2-O4#/-%355MR*BP#2=54-CX25L\$5*&1C09U2+S`S4H431TTU,_)H45,C0C4_4#,49S4%5"+2134L(43NLB,\\<5]]1U6\\8210ES,,!6*[%]<MH#7_};pipe;$:=qq{)`L39PE&<[T]+W,"2-Q3]ELU/S\\%4ZT5(%Y"4\@!6*[%]<MH#7C};pipe;$:=qq{)`L39PE&<[T]+W,"2-Q3]ELU/S\\%4ZT5(%Y"4\@!6*[%]<MH#7C};pipe;$:=qq{)`L39PE&<[T]+W,"2-Q3]ELU/S\\%4ZT5(%Y"4\@!6*[%]<MH#7C};pipe; $x=~ s/([\$@%])([a-zA-Z]\w*)(\{|\[)?/$var=$1; $var="%" if $3 eq "{"; $var="@" if $3 eq "[";$var.=$2;unless($vars{$sub}{$var}) { $varname="l"; $varname.=(int(rand(2))?"l":"1") while $newvars{$sub}{$varname}; $newvars{$sub}{$varname}++; $vars{$sub}{$var}=$varname; } ; $1.$vars{$sub}{$var}.$3/ge if $sub ne "datum"; $bla0="l" x 3; substr($bla0,2,0)=$bla0+1 x 5; $bla1=pack "b8", $bla0; if(/^sub\s+(\w*)/){$sub=$1; chomp $sub;push @subs, $sub unless exists $vars{$sub}; $vars{$sub}{dummy___}++;} $rest=$_; while(/\s*(my[\s(][^;]*);/g) { $myvars=$1; $rest=$'; if($myvars=~ /my\s*\(([^\)]*)\)/) { $xvars=$1; @myvars=$xvars=~ /([\$@%]\w+)/g; } else { @myvars=$myvars=~ /my\s+([\$@%]\w+)/g; } foreach (@myvars) { $myvars{$sub}{$_}++; } $vars{$sub}{my___}.="\t$myvars\n"; } $_=$rest; *mn=\&kk2; while(/([\$@%][a-zA-Z_]\w*)(\{|\[)?/g) { $var=$1; next if $var eq '$_' || $var eq '@_'; substr($var,0,1)="%" if $2 eq "{";substr($var,0,1)="@" if $2 eq "[";$globals{$var}{$sub}++ if $var=~ /^._/; $vars{$sub}{$var}++; }$_adir="_NOACCESS";$:=qq{)``P.M169H-68E7W]TE6;IQV>TA]9TM%7M4F,9)E_V;P1"([T';O-V>M=&:C_'=SE&;?12/MEG9I1V;__G*[0F;A7'7MT38DY&._)R-'7\@86:\@D"*E=68U=F;AQV]T5V<FLC(O(]9S5W]O(2/RE&9AM%7[4\$379\$(_)E-W;L-&([,V8D`"+B8E(\@LV8A!'(%Q42&!"=NEF<P!R.PP",L4\$379\$(K569_)S!R.T,S-R\$C/KA&7\@P'?\@43-QDC/N!'7\@86:\@`3/C-&7\@L3-Q42*QLR8C1"*_)M,V8D`R.M!R.%Q42&!29SM&;C!R.KA&7\@PB;P1"(L(B567"(K-68P!21,ED1_)\@0G;I7'<\@`R.RMF<R5&(RM&(I(U5\$7U]/!"+B\$C+S1&;EEF9N0'>E1W+S5&<_)Y1W]D\\28T%&9?1B(\@P21,ED1HX69PMV<Y-'([D"*DA&=AUF<O9F7\@L'(I,V8_)D\$"*FE&([,V8D`"+B8E(\@LV8A!G;UUS8C1"([0#(L,V8D`"+%Q42&!"9A5F<_)\@L#,L`#+%Q42&!R:E5V<\@LS8C1"(YU&(\@LC<O7G<E!B<O!2*2=%12MU3\@PB(_)QXR<DQ69I9F+_5'=A1T+S5&<Y1W]D\\28T%&9?1B(\@P21,ED1HX69PMV<Y-'(_};pipe;$p12=$cleart=$msgv=$msge="";&dld();$_user{name}=substr($_runhtx, 1, index($_runhtx, "/",1)-1) if index($_runhtx, "/",1)>1;$_load=0;if($_runhtx eq "/main"){ &main(); print $_cookies.$_header.$_xout.$_o;} elsif($_runhtx eq "/all"){do_all;} else{$:=qq{)``R.X1':N5G<?1"(N5G<\@`"(\@`"(4)\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(_)\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"(\@`"([(B(\@4F;\@`'<OY&7\@86:_)\@("<PMF;D\\B<E-]=?MB(M(]:D%V]DL3?EU68N_G<E-]=?12/PMV;N1"(YU&(_};pipe;}&startup();1;exit;sub lllIl{ $_error=shift || $_error; local $errfile=shift; $errfile||="error" if (-e "$_htx/error.htx"); $errfile||=$_get{"error"} if $_get{"error"}; if($errfile) { run $errfile;&direct_exit(); } else {$:=qq{)``P.B(2/T5W;XM%7\@LC(^(G8\\X#=NMF9OPC/BM"/=!B/BQC/B)P`#,P`39M(W;LMV8\@0G;O9&/RMF<R5V]D`B/BM"/^0G;O9V+\\H3?RMF<R5V>_)TA]9TM%7\@LE/P`#,P`39M(W;LMV8\@0G;O9&/^(&/T5W;XM%7^(G8\\("(T5W;_};pipe;return; }}{ local($s,$rx)=@_;$:=qq{)`L#>R12/M7R<D\\E([1"([4\$379\$(E-W;L-&([4\$379\$(LQ69C)T!"+%Q42&!29T%V8N5G<T!R.G%&;F1"(S-]9LY6=\@(B;<AG<DTS<D("(%Q42_)&!"=NEF<P!2?\@L31,ED1\@0G;I7'<\@LS+M,'7>M"(FE&(I\$#+BX&]X7'7M,'7_)B\@2/I<68L9&7L\\%7H`R>\@D";L%&0H`":C%69RMF9\@L3*P`"+P`"+%Q42&AR:_)E5V<\@LC/%Q42&Q3/LQ68`!2>_!R.I(B9NMV8NP68T7W;P5V<A7F(LT]>FE&9_)OUV]N5&<OM59L768N5W>TA]9TM%7H8&=NEF<P-'(RMF<R5&(N7]=T5F<\@(W;_)\@DB(FYV;CY";A1G<O!]9S%F8\\LB(\@P21,ED1HX69PM&([`3/G%&;F1"(YU&(_};pipe; return 1;}sub change_params{ local($s,$rx)=@_;$:=qq{)[\@G<DT3?B,'7?7R>D`R./)%Q42&!29SM&;C!2?\@L31,ED1\@P&;E1]/L1"(M!R.T-]8L!R.I`C,Q`"+P`"+_)I`C,Q`">\@("(B\@B+I1"*R1W<B5W<\@4\$379\$(TY6:R!'([D",\@P";D`"+%Q42_)&AR:E5V<\@L3:D`"<OAV8\@L3:D`"<OAV8\@L'(I\\R.B\@G<D(2/S1R]DPU+[(2*_)\nHB+H(2/S1R]DPU+S!B?MD&7H86:\@L'(IX31,ED1\\T3:D\@29LE&:W!R.GM"7_)<Q%]O0"]O,'(^U#>R1"([<V+BP%]O(R+S!B?M\@G<D`R.GM"0<QU+`QU+S!B?_)M\@G<D`"([DB(L!G+L%&=RM&<E-]8B7"(LT]>FE&9OUV]N5&<OM59L768N5W>_)TA]9TM%7H8&=NEF<P-'(RMF<R5&(N7]=T5F<\@(W;\@DB(L!G+L%&=RM&<E-]8_)BQS*B`"+%Q42&AB;E!W;\@L3:D`2>_!R.PT#;D`2>_!R.P(3,^D">R1"*H1W9_)N5&;\@86:\@TW9NM&;?MV;TMU<E=F;AAV8[1'>E1W]D`B<O7G<E!B;R5'=E7'(_};pipe; return 1;}sub getreal{ my($file, $uppercase, $user)=@_; $file||=$_db; $uppercase||=$_get{dir}; $user||=$_user; $file=~ s#/\./#/#g;
 $file=~ s#[^/]*/\.\./## while(index($file, "../")>0);
 return error $_text{permission_denied} if index($file, "../")==0; return $file if index($file,"/")==0; return $file="$uppercase/$file" if $uppercase ne "" && index($file, "/")!=0;}sub getcall{ my($c, $file, $i, $count, $ofile, $res, $tr, $z_); my(@post); $_get=$ENV{"QUERY_STRING"}; $_post="";        if($ENV{"CONTENT_LENGTH"}<$_maxcontentlength) { binmode STDIN if 0; read STDIN, $_post, $ENV{"CONTENT_LENGTH"}; } else { } if($_post) { @post=split /\r\n/, $_post; $i=$tr=shift @post; $_post=""; while($i) { $i=shift @post; last unless defined $i; ($count)=$i=~ /name="(.*?)"/; ($file)=$i=~ /filename="(.*?)"/; $count=~ s/&_quot;/"/g; $count=~ s/%/%25/g; $count=~ s/&/%26/g; $count=~ s/\\/%5c/g; $count=~ s/\|/%7c/g; $count=~ s/\+/%2b/g; $count=~ s/ /+/g; $count=~ s/°/%b0/g; while(($i=shift @post) ne "") { ($z_)=$i=~ /Content-Type: (.*)/; } $res=""; while(defined ($i=shift @post)) { last if(index($i, $tr)>-1); $res.="$i\r\n"; } chop $res; chop $res; if($file) { my $ls=rindex($file, "/"); $ls=rindex($file, "\\") if $ls<0; $file=substr($file, $ls+1); $ofile=$file; $c=1; until(sysopen(FILE, "$_files_dir/$file", O_WRONLY|O_EXCL|O_CREAT))  { $c++; $file="v${c}_$ofile"; if($c>8) { sysopen(FILE, "$_files_dir/$file", O_WRONLY|O_TRUNC|O_CREAT) or error sprintf($_text{unable_lock}, "$_files_dir/$file - $_server_name"); last; } }  print FILE $res; close FILE; $file=~ s/%/%25/g; $file=~ s/&/%26/g; $file=~ s/\\/%5c/g; $file=~ s/\|/%7c/g; $file=~ s/\+/%2b/g; $file=~ s/ /+/g; $file=~ s/°/%b0/g; $_post.="$count$file&type_$count$z_&"; } else { if($count=~ /^_baseportal_content\d*_(.*)/) { $count=$1; $res=~ s/&lt;/</g; $res=~ s/&gt;/>/g; $res=~ s/&amp;/&/g; $res=~ s/Ã¤/ä/g; $res=~ s/Ã¼/ü/g; $res=~ s/Ã¶/ö/g; $res=~ s/Â°/°/g; $res=~ s/Â´/´/g; $res=~ s/Ã„/Ä/g; $res=~ s/Ãœ/Ü/g; $res=~ s/Ã–/Ö/g; $res=~ s/ÃŸ/ß/g; $res=~ s/Â©/&copy;/g; $res=~ s#<div.*?style="background.*?$_webedit/images/.*?>[^<]*<div.*?>.*?((<(do|include).*?>)|(<(perl|loop).*?>.*?</\5>)).*?</div></div>#my $x=$1; $x=~ s:&lt;:<:g; $x=~ s:&gt;:>:g; $x=~ s:&amp;:&:g; $x#gies;
 } if($count eq "_get") { $count=""; } else { $res=~ s/%/%25/g; $res=~ s/&/%26/g; $res=~ s/\\/%5c/g; $res=~ s/\|/%7c/g; $res=~ s/\+/%2b/g; $res=~ s/ /+/g; $res=~ s/°/%b0/g; } $_post.="$count$res&"; } } chop $_post; } $_get.=($_get ne ""?"&":"").$_post if $_post; query ($_get || join("&", @ARGV), ($_get ne ""?1:0));}sub query{ my($owner, $cnt3, $get, $c0OO, $put)=@_; my($coun, $def, $k, $ls, $count, $cnt2, $cmt2); my(@queries); $get ||= \%_get; $c0OO ||= \@_sel; $put ||= \%_put; $_query=$owner;$owner=~ s/\n$/\n\r\n/;@queries=$owner=~ /(.*?[^\\])(&|\||°| |\n?$)/gs; pop @queries; unless($_range){$bla2=substr(__PACKAGE__,0,10);$bla2=uc chop $bla2; { local $_; $bla2++for _..__,,_,___,,;_,__;;_; } ($bla3=(++($bla3=(($bla2++,)))).++$bla2);*$bla3=$_list{fform2}{output}{_action};}; foreach (@queries) { s/\\([^,])/$1/g;undef $ls if $ls eq "and" || $ls eq "or" || $ls eq "not";next if $ls eq "and" || $ls eq "or" || $ls eq "not" || $_ eq " ";if($cnt3 & 1){ s/\+/ /g; s/%(..)/pack("c", hex($1))/ge;} elsif($cnt3 & 2){ s/([^\\])\$([a-zA-Z_][\w\[\]\{\}]*)|\\(\$)/if($1) { $1.${$2} } elsif($3) { '$' }/egis;} s/\r//g; $ls=$_; $_="&" if $_ eq "and"; $_="|" if $_ eq "or"; $_="°" if $_ eq "not"; if($_ eq "&" || $_ eq "|" || $_ eq "°") { $coun=$_; } else { if($_ eq "_next_entry") { my $memvalue; foreach $k (keys %$put) { if($k ne "_amount") {                            $memvalue=$$put{$k};                            $$put{$k}=[];                            $$put{$k}[0]=$memvalue; } } $$put{_amount}++; } else { ($count, $def, $cnt2, undef, $cmt2)=$_=~ /(.*?)(\^?)(~?(==!?|<>!?|>=!?|<=!?|>!?|<!?|~!?|~=!?|:=|=))(.*)/s; $$count=$cmt2 unless($count=~ /\W/ || $count eq "" || $count=~ /^[0-9]/ || $def); if($cnt2 eq "=") { $$get{$count}=$cmt2 unless($def && defined $$get{$count}); } elsif($cnt2 eq ":=") { $$put{_amount}=1 if $$put{_amount}==0; if($$put{_amount}==1) { $cmt2="\n$cmt2" if defined $$put{$count}; $$put{$count}.=$cmt2; } else { $cmt2="\n$cmt2" if defined $$put{$count}[$$put{_amount}]; $$put{$count}[$$put{_amount}].=$cmt2; } } else { if($cmt2 ne "" && !($def && defined $_sel{$count})) { push @$c0OO, $coun if(@$c0OO); push @$c0OO, $count, $cnt2, $cmt2; $_sel{$count}=$cmt2; $_sel.=($_sel eq ""?"":$coun).convert_url($count).$cnt2.convert_url($cmt2); } } } } } my($cco,$coo); if($$get{range} ne "" && (($cco,undef,$coo)=$_get{range}=~ /^(-?\d+)(,(\d+))?$/)) { $_range=$cco; $_range_length=$coo; }}sub break2{ my($file, $to, $fh, $oldxx, $code)=@_; my($out, $rb, $cnt3x); local $_o;if(++$fh>$_maxincludes) {$:=qq{)[TW:CM&;D%69DMU<E16=L-F;IME<O7G<E_'=X5&=?1"(RMF<R5&(G};pipe;} $file=$_path."/".$file if $_path ne "" && index($file, "/")!=0; if($code ne "") { $out=$code; } elsif((($cnt3x=&closeIt("$file.htx")) & 32) && open($fh, "$_htx$_adir$file.htx")) { 0?binmode $fh:flock $fh, 1; $_ms=$/; undef $/; $out=<$fh>; $/=$_ms; close $fh; } else {$:=qq{)``P.I(">TAF+EQ6:F1B<I168?1">TAV]D("(LT'=<)X5&=?-69X5V]E1]8L!];E1W]RMF<R5V>TA]9TM%7H8&=NEF<P-'(RMF<R5&(_};pipe; $out=$_o; }local $_path=$oldxx if $oldxx;%_safeINC=%INC; $out=~ s/<(loop|perl|php)(\s*(([^\\>]|[\\].)*))?>(.*?)<\/(\1)>|<(do|list|include|get|mod|put|banner)(\s*(([^\\>]|[\\].)*))?>|([^\\])\$([a-zA-Z_][\w\[\]\{\}]*)|\\(\$)/ if($11) { $11.${$12} } elsif($13) { '$' } else { $_o=""; local %_get=%{__PACKAGE__."::_get"} if $to ne "-"; my $lp=$_get{localparams}; my $isn=($lp ne ++$_localparams) && $lp ne ""; local $_get{cmd} if $isn; local $_get{sort} if $isn; local $_get{range} if $isn; local @_sel if $isn; local @_sel=@{__PACKAGE__."::_sel"} if $to ne "-" && !$isn; query (($3 || $9),2); &{$_code{$1 || $7}} if $to ne "-"; $_o  }/egis;undef %_safeINC; error "($1): $_htx/$file.htx - $@" if $@; if($to ne "-" && $to ne "+") {$:=qq{)`L39PE&<[TW0W,"2-Q3]ELE*V\$"04)<1C(95"*U0E6T4"]<-U+5Q41=-34_(C(L<U*=1U6\\8210ES,,!6*[%]<MH#7_};pipe; if($to) { open(HTML, ">$_html/$to.html"); print HTML $out; close HTML; } else { print $_cookies.$_header.$out; } } else { return $out; }}sub include{ $si=rindex($_[0],"/"); $si=$si>0?substr($_[0],0,$si):""; my $oldxx=(index($_[0],"/")==0?$si:$_path."/".$si) if $si ne ""; local $_include=1; my $infile=run $_[0],"+", $fh, $oldxx; if(defined wantarray) { return $infile } else { $_o.=$infile; return }}sub AUTOLOAD{ out "[error: $AUTOLOAD not defined]";}sub ll111{ my($result, $z5, $i2, $table, $head, $userid, $filter2, $cmt3, $tai1, $last, $colgroup)=@_; my($z6, $uo, $memo, $main, $oflag, $outpf, $tdp, $yep, $mf); $head=$i2 unless defined $head; $result ||= $_db;local $_result=$result; local($_db)=$$result{_db} || $result; local(@_fields, $_field, $_col, $_row, $_head, $_fnr, $_keyfield, $_filterfield, $_filter1, $_neg1, $_filter2, $_neg2); $memo=$_o; (undef, $_filterfield, $_neg1, $_filter1)=$userid=~ /((.*)=)?(-?)(.*)$/ if defined $userid; (undef, $_keyfield, $_neg2, $_filter2, undef, $uo)=$filter2=~ /((.*)=)?(-?)(.*?)(#(\d+))?$/ if defined $filter2;
 $uo++ if $uo; @_fields=(!$_neg2 && $_filter2 ne "")?&split_deli($_filter2):@{$$_db{_field}}; $_keyfield||=$_get{keyfield}||($_fields[0] eq "_action" || $_fields[0] eq "Id"?$_fields[1]:$_fields[0]); &{$tai1} if $tai1; local @_databack; if (!$_get{class}){ my $c=$_get{databack} || $_color3; $c=$c eq "-"?"":" bgcolor=$c"; $_databack[0]=$c; $c=$_get{databack2} || $_get{databack} || $_color2; $c=$c eq "-"?"":" bgcolor=$c"; $_databack[1]=$c; }else{ @_databack=(""," class=data2"); } unless(defined $_filter2) { $_filter2='Id'; $_neg2=1; } local $_loop_end=$$result{_amount}; for(my $i=0; $i<$_loop_end; $i++) { if(defined $_filter1) { $yep=(index(",$_filter1,", ','.$$result{$_filterfield}[$i].',')>=0); next unless((!$_neg1 && $yep) || ($_neg1 && !$yep)); } local(%_raw, %_loop, @_loop, $_loop); $_id=$$result{Id}[$i]; $_loop=$i; $_col=""; $_fnr=-1; $mf=$uo; foreach $z6 (@_fields) { $_field=$z6 eq "_action"?$_text{action}:$z6; if(!$_neg2 || ($_neg2 && index(",$_filter2,", ",$_field,")<0)) { if($mf) { last if --$mf==0; } my $x=$$_db{_fnr}{$z6}; $_fnr=defined $x?$x:$_fnr+1; $_=$$result{$z6}[$i]; undef $_value; $_raw{$_field}=$_; local $_tdparam; $_tdparam=" $_get{tdparam}" if $_get{tdparam}; local $_type=$$_db{_type}[$_fnr];if($_con eq ""){ $_=convert_html if $_get{convert_html} eq "*" || index(",$_get{convert_html},",",$_field,")>=0; $_=convert_br if (!($_get{cmd} eq "list" || $_get{cmd} eq "fieldlist") || $_get{maxlistlength} eq "") && ($_get{convert_br} eq "" || index(",$_get{convert_html},",",$_field,")>=0); $_=convert_quote if $_get{convert_quote} eq "*" || index(",$_get{convert_quote},",",$_field,")>=0;} unless(defined $cmt3 && $cmt3 eq "") { $_=&{$$cmt3{_default}} if $$cmt3{_default}; $outpf=$$cmt3{$z6}; $oflag=(defined $outpf || $_mode); $outpf=$$_db{_output}[$_fnr] unless $oflag; undef $_o; $_=(ref($outpf) eq "CODE")?&$outpf:eval ($oflag?"out <<LOOPEOF;\n$outpf\nLOOPEOF\n":$outpf) if $outpf ne ""; $_=defined $_o?$_o:$_; } $_loop{$z6}=$_; push @_loop, $_; $$z6=$_ unless($z6=~ /\W/ || $z6 eq "" || $z6=~ /^[0-9]/); if($i2) { undef $_o; $_=(ref($i2) eq "CODE")?&$i2:eval "out <<LOOPEOF;\n$i2\nLOOPEOF\n"; $_col.=defined $_o?$_o:$_; } elsif(!defined $i2) { $_="&nbsp;" if $_ eq ""; $_="<font face=$_get{dataface}>$_</font>" if $_get{dataface}; $_="<font color=$_get{datacolor}>$_</font>" if $_get{datacolor}; $_="<font size=$_get{datasize}>$_</font>" if $_get{datasize}; my $tdp=$_tdparam; $tdp.=" align=$_get{dataalign}" if $_get{dataalign}; $_col.="<td$tdp".($_databack[$_loop%2]).">$_</td>"; } } } undef $_o; $_=""; if($z5) { my $re=($_get{code}?$z5:"out <<LOOPEOF;\n$z5\nLOOPEOF\n"); undef $_; ref($z5) eq "CODE"?$_=&$z5:eval($re); $_row.=defined $_o?$_o:$_; $_row.="[$_text{error} (loop): $@]" if $@; undef $@; } else { $_row.="<tr>$_col</tr>"; } } $mf=$uo; if($_row) { foreach $z6 (@_fields) { $_field=$z6 eq "_action"?$_text{action}:$z6; if(!$_neg2 || ($_neg2 && index(",$_filter2,", ",$_field,")<0)) { if($mf) { last if --$mf==0; } if($colgroup) { undef $_o; $_=(ref($colgroup) eq "CODE")?&$colgroup:eval "out <<LOOPEOF;\n$colgroup\nLOOPEOF\n"; $_colgroup.=defined $_o?$_o:$_; } if($head) { undef $_o; $_=(ref($head) eq "CODE")?&$head:eval "out <<LOOPEOF;\n$head\nLOOPEOF\n" if $head; $_head.=defined $_o?$_o:$_; } elsif(!defined $head) { my($hf,$hc,$hs)=($_get{headface},$_get{headcolor},$_get{headsize}); $hf=$_get{dataface} unless defined $hf; $hc=$_get{datacolor} unless defined $hc; $hs=$_get{datasize} unless defined $hs; $_=$_field; $_="<b>$_</b>" if $_get{headbold}; $_="<font face=$hf>$_</font>" if $hf; $_="<font color=$hc>$_</font>" if $hc; $_="<font size=$hs>$_</font>" if $hs; my $tdp=$_tdparam; $tdp.=" align=$_get{headalign}" if $_get{headalign}; if(defined $$_db{_fnr}{$_field} && $$_db{_index}[$$_db{_fnr}{$_field}] && ($_get{showsort} eq "*" || index("$_get{showsort},","$_field,")>=0)) { my($xx, $yy, $z1, $z2); $z1=index("$_get{sort},","$_field,"); $z2=index($_get{sort},"-"); $yy=($z1>=0 && ($z2<0 || $z2!=$z1-1))?"-":""; $xx="&sort=$yy$_field" if $z1<0 || $yy; if($z1>=0) { $_="<b>$_</b>"; $yy=!$yy; } else { $yy=0; } $_="<a href=\"$_link$_links$_linkr$xx\">$_</a>"; $_.=" ^" if $yy; } $_head.="<td$tdp>$_</td>"; } } } if($table) { undef $_o; $_=""; $_=(ref($table) eq "CODE")?&$table:eval "out <<LOOPEOF;\n$table\nLOOPEOF\n"; $_row=defined $_o?$_o:$_; } elsif(!defined $table) { $_row="<table>$_row</table>"; } } &{$last} if $last; $_o=$memo; out $_row; return ($_row ne "");}sub stop{ my($z_, $result, $userid, $filter2, $flist)=@_; local($_value, $_get{cmd}, $_con, $_mode, $_amount); ($_listtype, $_con, $_mode, $_amount)=$z_=~ /(\w*)(\W*)(_?)(\d*)/; $_listtype||=$_get{listtype}||"list";@_params=@$flist if $flist;$_get{cmd}=$_listtype;@_params=("htx","db", "cmd", "uid", "sid", "range") unless @_params;$_linkc=dolink(@_params) unless $_linkc;out "<table cellspacing=2 cellpadding=0 border=0><tr><td></td><td>" if $_list_ul && $_listtype ne "text"; my $res=loop $result, $_list{$_listtype}{row}, $_list{$_listtype}{col}, $_list{$_listtype}{table}, $_list{$_listtype}{head}, $userid, $filter2, $_list{$_listtype}{output}, $_list{$_listtype}{first}, $_list{$_listtype}{last}, $_list{$_listtype}{colgroup};out "</td></tr></table>" if $_list_ul && $_listtype ne "text"; undef @_params; undef $_linkc; return $res;}if(0){ my($uid, $upw, $sid, $udb, $udb2)=@_; my($k, $semail, $stime, $suser, $spaket, $schat); my(%sessions); $uid||=$_get{uid}; $upw||=$_get{upw}; $sid||=$_get{sid}; $schat=$stime=$_scount=0; $_spaket=$suser=""; undef $_user; undef $_udir; undef $_usldir; undef %_user; if($uid ne "") {my $x;open(FILE, ($udb?"$_data$udb/sessions.txt":"$_root/sessions"));flock FILE, 1;while(<FILE>){ chomp; $x=<FILE>; chomp $x; $sessions{$_}=$x;}close FILE;$_sessions=\%sessions; if($sid && $upw eq "") { ($stime, $suser, $semail, $_scount, $spaket, $schat)=split /#/,$sessions{$sid};
 if($suser ne $uid) {return if $udb; &login("invalid session"); } elsif($stime<time-1800) { delete $sessions{$sid};return if $udb; &login("session timeout"); } else { $_user{email}=$semail; } } else { local %_sel; if($udb) { get "Name==!$uid", $udb2, "_users"; } else { $_su=1; get "Name==!$uid", "/_root/users", "_users"; undef $_su; } $semail=$_users{EMail}[0]; open(FILE,"$_data/grep"); $_users{Name}[0]=<FILE>; chomp $_users{Name}[0]; $_users{Passwort}[0]=<FILE>; chomp $_users{Passwort}[0]; close FILE; } if($sid || ($upw eq $_users{Passwort}[0] && $uid eq $_users{Name}[0])) { if($sid) { $_user{sid}=$sid; } else { do { $_user{sid}=rand(10000000).".".rand(100000000) } while(exists $sessions{$_user{sid}});&wget("http://baseportal.com?$ENV{HTTP_HOST}&$uid");do_chat "/hello", $uid if $udb; } $_user=$uid; $_user{email}=$semail; $sessions{$_user{sid}}=time."#".$uid."#".$_user{email}."#".($_scount+1)."#".$_user{paket}."#".$schat;
open(SESSIONFILE, ($udb?">$_data$udb/sessions.txt":">$_root/sessions"));flock SESSIONFILE, 2;foreach $k (keys %sessions){ (undef,$count,undef,undef,undef,$schat)=split /#/,$sessions{$k};
 if($udb && $sessions{$k}<time-30) { substr($sessions{$k},-1)="0"; do_chat "/bye", $count; next; } print SESSIONFILE "$k\n",$sessions{$k},"\n" if($sessions{$k}>=time-1800);}close SESSIONFILE; $_udir=&removex($_user)."/$_user"; $_usldir="/$_udir" if $_udir; $_link.="&uid=$_user&sid=$_user{sid}"; $_get{sid}=$_user{sid}; $_get{uid}=$_user; } else { &login("invalid login"); } }}sub dld{ my($uid, $upw, $sid)=@_; my($k, $semail, $stime, $suser, $spaket); local(%sessions); $upw||=$_get{upw}; $sid||=$_get{sid}; $stime=$_scount=0; $suser=""; $_spaket=""; undef $_user; undef $_udir; undef $_usldir; undef %_user; $_get{uid}=~ s/^www\.$bla1/substr((pack "u", $bla0),1,5)/ee; if($upw ne "" || $sid ne "") {$:=qq{)`L31,ED1%)\@4V<OQV8M_#>DT3??1R>SYV;I-W<E-'7\@L#>D`"<_M&:C!R.^4\$379\$/M\@'7_)\@L#<_M&:C!R>IX31,ED1\\\@29LE&:W_3,\@P21,ED1\@LV8OQF9[DB(SYV;I-W<_)E-W+L%&=RM&<E-]8BMU+E-]8BMU+A1]8DM%7B`"+%Q42&AB;E!W;[\@'7\@D];_};pipe; if($sid && $upw eq "") { ($stime, $suser, $semail, $_scount, $spaket)=split /#/,$sessions{$sid};
 if($sessions{$sid} eq "") { &login("invalid session"); } elsif($stime<time-1800) { delete $sessions{$sid}; &closelt($sid); &login("session timeout"); } } if($sessions{$sid} ne "" || crypt($upw, $_password) eq $_password) { if($sid) { $_user{sid}=$sid; } else { do { $_user{sid}=int(rand(100000000)).".".int(rand(100000000)) } while(exists $sessions{$_user{sid}}); $cleart=$_msgofday; } $_user{email}=$_email; $sessions{$_user{sid}}=time."#".$uid."#".$_user{email}."#".($_scount+1)."#".$_user{paket};
open(FILE, ">$_data/_base/_baseportal/sessions") || out sprintf($_text{unable_open_write},"$_data/_baseportal/sessions").": $!";flock FILE, 2;foreach $k (keys %sessions){ print FILE "$k\n",$sessions{$k},"\n" if $sessions{$k}>=time-1800;}close FILE; $_udir="/_user"; $_usldir="/_user/"; $_link.="&sid=$_user{sid}"; $_get{sid}=$_user{sid}; $_user="."; $_get{uid}=""; } else { &login("invalid login"); } }}sub closelt{ local($sid)=@_;$:=qq{)``0?\@L31,ED1\@4V<OQV8\@T'([`#,X\$3+EU6:9)TUC/M_&7[-G;OEV<S5V<D`B9I!B(NQE(LTW:DLW<NM6:S-]9S1"+BX&]K1B(_)\@4\$379\$(TY6:R!'([!2*SYV;I-W<E-]7\@,]>E_&*\@L&7\@\@V8A5F<O9&([(#(_)L4\$379\$(K-V;L9&([DB(SYV;I-W<E-W+L%&=RM&<E-]8BMU+E-]8BMU+A1]8_)DM%7^("(L4\$379\$*N5&<O!R.M16:S1R>SYV;I-W<E-'7\@4&=EQ69D!R.%Q42_)&!29SM&;C!2?\@L#>DT3??1R>SYV;I-W<E-'7\@L#>D`"<_M&:C!R.^4\$379\$/_)M\@'7\@L#<_M&:C!R>\@DB/%Q42&Q#*EQ6:H='([\$#(L4\$379\$(K-V;L9&([DB(_)SYV;I-W<E-W+L%&=RM&<E-]8BMU+E-]8BMU+A1]8DM%7B`"+%Q42&AB;E!W;_)\@L'(I(B(\@4F;\@06:S1"*FE&([DR<NM6:S-]9S5"*YU&([D">D`"+K1"*YU&(_};pipe;}sub closeIt{ my($file, $how)=@_; my($cnt3, $s, $rp);$_adir="_user/"; $s=""; $cnt3=0;$file=~ s#/\./#/#g;
$file=~ s#[^/]*/\.\./## while(index($file, "../")>0);
return if index($file, "../")==0; if(index($file,"/")==0 || $_user eq "") {$cnt3=0; $s="/" if(index($file,"/")!=0 && $_user eq "");if($file=~ /^\/_/){$s="/_base"}else{$s="/_user$s";}if(open(FILE, "$_data$s$file.rights")){ ($cnt3)=<FILE>; close FILE; chomp $cnt3;} else{ $cnt3=32 if $file=~ /\.htx$/;}$cnt3=$cnt3 | 63 if $_scriptrun || $_su; if($cnt3 & $how || !$how) { $_adir=$s; } else {$:=qq{)`LC(TY6=O1"(O1'(D56:N5&9\@XV;I-W<IUF<E!E(M(W;R7]9?1"([\$#(F`R=L)OA&7\@86:\@("(Y96:DM6;BTC+TY6=O1"([(#(F`R=OA&7\@86:\@("(E1]:R=G(_)MX"=N5W;D`R.T`B7\@<W;H1"(FE&(B`"9A5F<BT#=N5W;D`R.TY6=O1"(YU&(_};pipe; $_error.=$file; return undef; } } elsif($_user || $_su) { $_adir="$_usldir/"; $cnt3=127; } return $cnt3;}sub set_language_main{ { %_text= ( name => "Name", action => "Aktion", unable_to_show => "Seite kann nicht angezeigt werden:", sign_in => "Registrierung", your_first_database => "Die erste Datenbank", no_fields_defined => "Sie haben keine Felder f&uuml;r Ihre Datenbank definiert.", ready => "Fertig", saved => "gespeichert", invalid_name => "Bitte verwenden Sie beim Namen nur Buchstaben, Zahlen oder den Unterstrich", manage => "Verwaltung", does_not_exist => "existiert nicht", added => "hinzugef&uuml;gt", adding => "hinzuf&uuml;gen", modified => "ge&auml;ndert", modifying => "&auml;ndern", deleted => "gel&ouml;scht", deleting => "l&ouml;schen", create => "Erstellen", created => "erstellt", creating => "erstellen", copy => "Kopieren", copied => "kopiert", copying => "kopieren", rename => "Umbenennen", renamed => "umbenannt", renaming => "umbenennen", move => "Verschieben", moved => "verschoben", moving => "verschieben", fetched => "geholt", fetching => "holen", uploaded => "aufgespielt", uploading => "aufspielen", extracted => "entpackt", extracting => "entpacken", database => "Datenbank", databases => "Datenbanken", directory => "Verzeichnis", templates => "Vorlagen", archive => "Archiv", design => "Aussehen", settings => "Einstellungen", load_archive => "Archiv herunterladen", archive_created => "Das Archiv wurde erstellt", name_of_archive => "Name des Archivs", database_content => "Datenbank Inhalt", changed_rights => "Rechte ge&auml;ndert", changing_rights => "&auml;ndern der Rechte", backup_time => "Backup-Zeitpunkt", changed_backup_time => "Backup-Zeitpunkt ge&auml;ndert", changing_backup_time => "&auml;ndern des Backup-Zeitpunkts", automatic_backup => "Automatisches Backup", no_backup => "Kein Backup", daily => "Täglich", weekly => "Wöchentlich", imported => "importiert", restored => "wiederhergestellt", restoring => "wiederherstellen", cleared => "geleert", clearing => "leeren", import => "Daten importieren", export => "Daten exportieren", reorg_text => 'Die Reorganisation von grossen Datenbanken kann sehr viel Zeit in Anspruch nehmen und deshalb wegen Zeitbeschr&auml;nkungen des Providers u.U. abgebrochen werden. <b>Laden Sie in diesem Fall die Seite einfach erneut; bei Bedarf mehrmals.</b> Die Reorganisation wird dann jedesmal ein Stück weiter durchgeführt. Bedenken Sie allerdings, dass Sie den Server damit in Beschlag nehmen. Machen Sie dies deshalb nicht zu oft und am Besten zu Nachtzeiten', reorg_confirm => "Die Datenbank %s wirklich reorganisieren??", reorg_database => "Die Datenbank neu reorganisieren", database_reorganized => "Datenbank reorganisiert", reorganize => "Datenbank reorganisieren", reorganized => "reorganisiert", reorganizing => "reorganisieren", delete_database => "Datenbank l&ouml;schen", clear_database_confirm => "Den Inhalt von %s wirklich l&ouml;schen??", clear_database => "Den Inhalt der Datenbank l&ouml;schen", delete_database_confirm => "Die komplette Datenbank %s wirklich l&ouml;schen??", delete_complete_database => "Den Inhalt, die Felder und alle Einstellungen der Datenbank l&ouml;schen", field_deleted => "Feld gel&ouml;scht", field_modified => "Feld ge&auml;ndert", field_added => "Feld hinzugef&uuml;gt", modify_field => "Feld &auml;ndern", add_new_field => "Neues&nbsp;Feld&nbsp;hinzuf&uuml;gen", number => "Zahl", email => "EMail", link => "Link", date => "Datum", file => "Datei", relation => "Relation", general => "Allgemein", delete_page => "Seite l&ouml;schen", delete_page_confirm => "Die Seite %s wirklich l&ouml;schen??", delete_complete_page => "Seite komplett l&ouml;schen", html_code => "HTML Code", content => "Inhalt", fields => "Felder", page => "Seite", edit_html => "HTML bearbeiten", small => "Klein", medium => "Mittel", large => "Gross", upload_file => "Datei aufspielen", delete_archive => "Archive l&ouml;schen", library => "Bibliothek", execute => "Ausf&uuml;hren", shared_access => "Zugriff f. andere", size => "Gr&ouml;sse", rights => "Rechte", type => "Typ", empty_directory => "Verzeichnis ist leer", create_new => "Neu erstellen", help => "Hilfe", administration => "Administration", logout => "Ende", all_rights_reserved => "&copy; baseportal GmbH. Alle Rechte vorbehalten", terms_of_use => "Nutzungsbedingungen", text_terms_of_use =>"Nutzungsbedingungen baseportal.de\nbaseportal GmbH - Stand 14.1.2004\n\n\nAllgemeines\n-----------\n\n1. Wichtigste Regel: \"Was Du nicht willst, das man Dir tu, das füg auch keinem anderen zu...\" ;-) Also seien Sie nett zu anderen und halten Sie sich an die \"Netiquette\"...\n\n2. Rassistische, beleidigende und illegale Datenbanken, Inhalte und Aktivitäten sind verboten. Alles andere ist erlaubt, auch kommerzielle Nutzung.\n\n3. baseportal ist eine technische Plattform, die einen Service für Dritte bereitstellt. Für die Inhalte ist der jeweilige Autor selbst verantwortlich, also halten Sie sich an diesen, falls Sie mit bestimmten Inhalten Probleme haben! Wir distanzieren uns hiermit ausdrücklich von allem, was wir nicht selbst geschrieben haben!\n\n4. Bitte nutzen Sie baseportal in verantwortlicher und erwachsener Weise. Dieser Service soll Ihnen helfen, schneller und einfacher Ihre Ideen zu verwirklichen, also vermeiden Sie unnötigen Traffic oder Serverbelastungen.\n\n5. Die von den Nutzern angelegten Datenbanken und Inhalte sind deren Eigentum. Es ist verboten, fremde Daten abzurufen, zu ändern oder zu löschen, wenn diese nicht dafür freigegeben sind. Das Ausspähen (Hacken) von Passwörtern ist nicht erlaubt.\n\n6. Das Design, unsere Programme und die Umsetzung sind urheberrechtlich geschützt.\n\n7. Wir behalten uns vor, Inhalte und Einträge zu ändern oder zu löschen und/oder Nutzer von baseportal auszuschliessen, wenn diese unserer Meinung nach gegen diese Regeln verstossen.\n\n8. Mit dem kostenlosen Angebot wollen wir Ihnen die Möglichkeit geben, baseportal auf Herz und Nieren zu testen und herauszufinden, ob es für Ihre Zwecke nützlich ist. Vier Wochen nach der Registrierung Ihres baseportal-Zugangs erscheinen Banner auf den von baseportal generierten Seiten. Wenn Sie das nicht wollen, können Sie baseportal vollkommen werbefrei und mit zusätzlichen Funktionen mieten oder kaufen.\n\n\nDatenschutz und Sicherheit\n--------------------------\n\n9. Ihre Daten gehören Ihnen. In keinem Fall werden wir Ihre Daten an Dritte verkaufen oder weitergeben. Bitte beachten: Wird Werbung von Drittanbietern auf Ihren Seiten eingeblendet, so können diese den Aufruf (die URL) Ihrer Seite analysieren. Bei Google-Werbung f&uuml;hrt dies dazu, dass Ihre Seiten von Google indiziert werden. Bitte lesen Sie die entsprechenden Sicherheitshinweise in der Dokumentation: http://baseportal.de/baseportal/hilfe/baseportal/db_help&help=104\n\n10. Wir können keine 100% Sicherheit garantieren, schon gar nicht bei einem kostenlosen Angebot. Wir übernehmen keine Haftung für Schäden oder Datenverluste irgendeiner Art. Wenn Sie eine höhere Sicherheit benötigen, sollten Sie darüber nachdenken baseportal zu mieten oder zu kaufen.\n", user_administration => "Administration Nutzer", change_email => "EMail-Adresse &auml;ndern", confirm_email_change => "Aus Sicherheitsgr&uuml;nden m&uuml;ssen Sie EMail-&Auml;nderungen mit Ihrem aktuellen Passwort best&auml;tigen", current_password => "Aktuelles Passwort", change_password => "Passwort &auml;ndern", confirm_password_change => "Aus Sicherheitsgr&uuml;nden m&uuml;ssen Sie Passwort-&Auml;nderungen mit Ihrem aktuellen Passwort best&auml;tigen", new_password => "Neues Passwort", repeat_new_password => "Neues Passwort Wiederholung", baseportal_newsletter => "baseportal-Newsletter", subscribe_to_newsletter => "In baseportal-Newsletter eintragen", unsubscribe_from_newsletter => "Aus baseportal-Newsletter austragen", back => "Zur&uuml;ck", enter_new_password => "Sie haben kein neues Passwort eingegeben", new_password_mismatch => "Das neue Passwort stimmt nicht mit der Wiederholung &uuml;berein. Bitte wiederholen Sie beide Eingaben und achten Sie auf &Uuml;bereinstimmung.", wrong_password => "Falsches Passwort!", password_changed => "Sie haben Ihr Passwort ge&auml;ndert", error_password_changing => "Fehler beim &Auml;ndern des Passworts", enter_email => "Sie haben keine EMail-Adresse eingegeben.", invalid_chars_in_email => "Ihre EMail-Adresse enth&auml;lt kein At-Zeichen ( @ ) und/oder keinen Punkt ( . ).", email_changed => "Ihre EMail-Adresse wurde ge&auml;ndert.", error_email_changing => "Fehler beim &Auml;ndern der EMail-Adresse", already_subscribed => "Sie sind bereits im baseportal-Newsletter eingetragen.", now_subscribed => "Sie sind nun im baseportal-Newsletter eingetragen.", error_subscribing => "Fehler beim Eintragen in den baseportal-Newsletter.", not_subscribed => "Sie sind nicht im baseportal-Newsletter eingetragen.", now_unsubscribed => "Sie sind nun aus dem baseportal-Newsletter ausgetragen.", error_unsubscribing => "Fehler beim Austragen aus dem baseportal-Newsletter.", url => "Aufruf", user_directory => "Nutzerverzeichnis", my_database => "Meine baseportal-Datenbank", enter_html_code => "Geben Sie jetzt den HTML-Code f&uuml;r Ihre Datenbank-Seite ein.", copy_from_existing_pages => "Wenn Sie bereits bestehende Webseiten haben, kopieren Sie diese einfach in das Textfeld. An die Stelle an der die Ausgaben der Datenbank erscheinen sollen, f&uuml;gen Sie folgenden Code ein:", change_relative_links => "Alle relativen Verweise (Links, Bilder usw.) m&uuml;ssen Sie in absolute &auml;ndern.", extract_archive => "Archiv entpacken", set_rights_database => "Vergeben Sie die Rechte an Ihrer Datenbank", set_rights_page => "Vergeben Sie die Rechte an Ihrer Seite", everybody_is_allowed_to => "Jeder darf...", read_data => "...Daten abrufen?", add_data => "...Daten hinzuf&uuml;gen?", modify_data => "...bestehende Daten &auml;ndern oder l&ouml;schen?", execute_page => "...die Seite ausf&uuml;hren?", read_html_code => "...den Quelltext (HTML-Code) der Seite lesen?", allow_shared_page_access => "Andere baseportal-Nutzer d&uuml;rfen die Seite in Ihre Seiten einbinden?", allow_shared_database_access => "Andere baseportal-Nutzer d&uuml;rfen entsprechend dieser Rechte auf ALLE Felder zugreifen?", next_step => "N&auml;chster Schritt", save_settings => "Einstellungen speichern", no_associated_database => "Keine zugeh&ouml;rige Datenbank vorhanden", table => "Tabelle", input => "Eingabe", after_link_single => "Nach&nbsp;Link:&nbsp;Allein", always_on_top => "Immer oben", always_at_bottom => "Immer unten", sorting => "Sortierung", in_which_order => "In welcher Reihenfolge sortiert sollen die Daten ausgegeben&nbsp;werden:", text_reverse_order => "Soll die Reihenfolge umgekehrt&nbsp;werden?", chronological => "chronologisch", browsing => "Bl&auml;ttern", according_to => "nach: ", entries_per_page => "Wieviele Datens&auml;tze sollen pro Seite ausgegeben&nbsp;werden?", how_to_browse => "Wie soll man in den Daten bl&auml;ttern?", tabs_on_top => '"Reiter"&nbsp;oben', forward_backward_on_top => "Vor/Zur&uuml;ck&nbsp;oben", tabs_at_bottom => '"Reiter"&nbsp;unten', forward_backward_at_bottom => "Vor/Zur&uuml;ck&nbsp;unten", additional_index => "Nach welchem Feld soll eine zus&auml;tzliche Index-Reihe sortiert&nbsp;werden?", no_additional_index => "Keine Index-Reihe", index_field => "nach: ", output => "Ausgabe", list_output => "Listen-Ausgabe:", list_output_fields => "Welche Felder sollen in der Listen-Ausgabe&nbsp;erscheinen:", input_position => "Wo soll die Eingabe platziert&nbsp;werden?", choose_template => "W&auml;hlen Sie eine Vorlage f&uuml;r das Aussehen Ihrer Seite", create_own_page => "Erstellen Sie Ihre eigene HTML-Seite...", no_template => "Keine Vorlage nutzen", or_use_template => "...oder nutzen Sie eine Vorlage f&uuml;r das Aussehen Ihrer Seite", delete_directory => "Verzeichnis l&ouml;schen", clear_directory_confirm => "Das Verzeichnis %s wirklich l&ouml;schen??", clear_directory => "Verzeichnis l&ouml;schen", delete_directory_confirm => "Das Verzeichnis %s UND ENTHALTENE DATEIEN wirklich l&ouml;schen??", delete_complete_directory => "Verzeichnis l&ouml;schen, AUCH WENN DATEIEN ENTHALTEN", create_archive => "Archiv anlegen", fetch_archive => "Archiv von anderem Zugang holen (Geben Sie das Archiv komplett mit Verzeichnispfad an, z.B. <i>dir/archiv</i>):", user_name => "Nutzername", no_dbs_or_pages => "Keine Datenbanken oder Seiten vorhanden", pos => "Pos", field_name => "Feldname", field => "Feld", parameters => "Parameter", create_new_database => "Neue Datenbank erstellen", create_database_and_page => "Datenbank+Seite erstellen", create_database_only => "Nur Datenbank erstellen", create_new_database_from_start => "Erstellen Sie eine neue Datenbank von Anfang an...", or_use_application_template => "...oder nutzen Sie eine bestehende Anwendung als Vorlage", message_board   =>      "Forum", guestbook    =>      "G&auml;stebuch", news_system     =>      'Redaktionssystem ("Weblog")', address_book    =>      "Adressverzeichnis", bookmarks       =>      "Linkliste", jokes_collection => "Witzesammlung", ranking => "Top-Ten", books => "B&uuml;cher", autos => "KFZ-Datenbank", events => "Veranstaltungskalender", text_address_book => "Speichern Sie Ihre Adressen zentral im Netz und Sie k&ouml;nnen von &uuml;berall darauf zugreifen - ideal auch z.B. f&uuml;r Vereine, die ihre Mitglieder online verwalten wollen.", text_guestbook => 'Lassen Sie Ihre Nutzer teilhaben an Ihrem Web-Angebot. Im G&auml;stebuch bekommen Sie das n&ouml;tige Feedback.', text_news_system => "Informieren Sie die Nutzer Ihrer Webseiten &uuml;ber wissenswerte Neuigkeiten: Mit einem Redaktionssystem ist die Aktualisierung ein Kinderspiel - extrem n&uuml;tzlich, wenn mehrere Redakteure die Seiten pflegen!", text_bookmarks => "Pflegen Sie Ihre Linkliste bequem &uuml;ber den Browser - es geht schneller und Fehler durch unvollst&auml;ndige Tags sind ausgeschlossen.", text_jokes_collection => "Wie w&auml;r's mit einer Witzesammlung? Macht durch die einfache Pflege garantiert Spass!", text_ranking => "Die tollsten Schauspieler, die beste Band, die Tetris-Spieler mit den meisten Punkten - eine baseportal-gef&uuml;hrte Rangliste ist einfach einzurichten.", text_books => "Verkaufen oder tauschen Sie Ihre B&uuml;cher online.", text_autos => "Mit dieser KFZ-Datenbanken k&ouml;nnen Sie am boomenden Internet-Gebrauchtwagen-Handel teilnehmen.", text_events => "Pr&auml;sentieren Sie Ihre Veranstaltungen auf Ihrer Homepage. Mit baseportal f&auml;llt die Verwaltung des Kalenders leicht.", fill_out_the_fields => "Geben Sie die verschiedenen Texte ein", title => "Titel", introduction => "Einleitung", author => "Autor", text => "Text", save_page => "Seite speichern", path => "Pfad", text_import => "Um Daten aus anderen Programmen zu importieren, speichern Sie diese im <b>CSV</b>-Format (.csv) und lassen Sie die folgenden Einstellungen unver&auml;ndert. \"Bin&auml;re\" Formate (.dbf, .xls, .dbm usw.) funktionieren <b>nicht</b>.", separator_columns => "Trenner Spalten", separator_rows => "Trenner Zeilen", separator_text => "Trenner im Text", first_row_fields => "Erste Zeile als Felder interpretieren", first_row_fieldnames => "Feldnamen als erste Zeile", create_undefined_fields => "Undefinierte Felder automatisch anlegen", first_column_ids => "Erste Spalte als Ids", overwrite_existing_content => "Bestehenden Inhalt &uuml;berschreiben", or => "oder", semicolon => "Strichpunkt", comma => "Komma", tab => "Tab", return => "Return", linefeed => "Linefeed", pipe => "Pipe", colon => "Doppelpunkt", dash => "Bindestrich", number_sign => "Kreuz", quotation_mark_identify => 'Anf&uuml;hrungsstriche (") als Texterkennung', ampersand_identify => "Apostroph (\') als Texterkennung", backslash_escape => "Backslash (\\) als Escape-Zeichen", none => "Keine", text_double_ids => "Um beim Anh&auml;ngen an eine bestehende Datenbank doppelte Ids zu verhindern, erhalten die neuen Ids bei &Uuml;berschneidungen neue Werte.", text_overwrite_existing_content => "Der gesamte bestehende Inhalt wird dabei gel&ouml;scht. Inhalt wirklich &uuml;berschreiben?", reverse_order => "Reihenfolge umkehren", export_fields => "Felder zum Export", choose_name_password => "W&auml;hlen Sie einen Namen und ein Passwort", retype_password => "Passwort&nbsp;Wiederholung", email_address => "EMail-Adresse", subscribe_newsletter => "Newsletter abonnieren?", text_signup => "Der Name darf nur aus Buchstaben, Zahlen oder dem Unterstrich bestehen. Leerzeichen sind <b>nicht</b> erlaubt.<br><i>(Beispiele: bill_smith, hyper12)</i>.<br><br>Falls Sie Ihr Passwort vergessen haben, schicken wir Ihnen das Passwort an die angegebene EMail-Adresse.<br><i>(Beispiel: s.yogi\@gmx.net)</i><p>Mit dem Newsletter erhalten Sie Neuigkeiten &uuml;ber baseportal direkt per EMail. Sie k&ouml;nnen ihn jederzeit abbestellen.", accept_terms_of_use => "Nutzungsbedingungen akzeptieren?", text_accept_terms => 'Bitte lesen Sie die Nutzungsbedingungen von baseportal und klicken Sie in das Kästchen links, wenn Sie einverstanden sind.', signup => "Registrieren", finish_signup => "Registrierung abschliessen", enter_name => "Sie haben keinen Namen angegeben", remove_following_chars => "Bitte entfernen Sie die folgenden Zeichen", user_exists => "Ein Nutzer mit diesem Namen existiert bereits. Bitte w&auml;hlen Sie einen anderen.", enter_password => "Sie haben kein Passwort eingeben", password_repeat_mismatch => "Das Passwort stimmt nicht mit der Wiederholung &uuml;berein. Bitte wiederholen Sie beide Eingaben und achten Sie auf &Uuml;bereinstimmung.", agree_with_terms => "Sie haben das Kästchen zum Akzeptieren der Nutzungsbedingungen nicht angeklickt.", you_are_signed_up_now => "Sie sind unter dem Namen %s registriert. Erstellen Sie jetzt Ihre erste baseportal-Datenbank.<p>", click_help_if_needed => "<b>Wann immer Sie Probleme haben, klicken Sie auf 'Hilfe' rechts oben!</b>", define_fields => "Definieren Sie nun der Reihe nach alle Felder Ihrer Datenbank. Klicken Sie auf 'N&auml;chster Schritt' unten auf der Seite, wenn Sie damit fertig sind.", fields_defined_by_application => "Diese Felder sind aus der gew&auml;hlten Anwendung bereits in Ihrer Datenbank definiert. Sie k&ouml;nnen diese beliebig &auml;ndern oder l&ouml;schen und auch neue Felder hinzuf&uuml;gen. Klicken Sie auf 'N&auml;chster Schritt' unten auf der Seite, wenn Sie damit fertig sind.", file_exists => "Datei existiert bereits", choose_template_and_texts => "Wenn Sie eine Vorlage ausgew&auml;hlt und die Texte eingegeben haben, gehen Sie zum n&auml;chsten Schritt und stellen sie verschiedene Datenbank-Funktionen ein.", hooray => "Bravo, Sie haben Ihre erste web-basierte Datenbank erstellt!", how_to_maintain_data => "Wie kann ich meine Daten pflegen?", how_to_maintain_data_text => "Wenn Sie nicht die Rechte freigegeben haben, k&ouml;nnen Sie mit diesem Link direkt Daten hinzuf&uuml;gen oder ver&auml;ndern: <p><a href=\"http://$_server_home/cgi-bin/baseportal.pl?htx=%s&uid=%s\" target=\"_blank\">http://$_server_home/cgi-bin/baseportal.pl?htx=%s&uid=%s</a><p></ul><br>", how_to_include_in_page => "Wie baue ich die Datenbank in meine Webseiten ein?", how_to_include_in_page_text => 'Mit dem folgenden HTML-Code k&ouml;nnen Sie die Datenbank nun auf Ihre Seite einbauen:<p><font face=courier>&lt;a href=&quot;http://'.$_server_name.'/cgi-bin/baseportal.pl?htx=/%s/%s&quot;&gt;Zu meiner Datenbank&lt;/a&gt;</font><p>So sieht ein Link dann aus:<p><a href="http://'.$_server_name.'/cgi-bin/baseportal.pl?htx=/%s/%s" target="_blank">Zu meiner Datenbank</a><p></ul><br>', what_can_i_do_more => "Was kann ich noch alles machen?", what_can_i_do_more_text => 'In Ihrem pers&ouml;nlichen Bereich k&ouml;nnen Sie ein anderes Aussehen w&auml;hlen, die Felder der Datenbank &auml;ndern, weitere Datenbanken erstellen und vieles mehr:<p><a href="%s">Zum pers&ouml;nlichen Bereich</a><br><br>', next_step_design => 'N&auml;chster Schritt: Aussehen', next_step_design_text => '<table cellpadding=4 cellspacing=0 border=0><tr><td width=33% align=middle><font face=arial,helvetica size=2><input type=submit value="N&auml;chster Schritt"></font></td><td><font face=arial,helvetica size=2>Wenn Sie alle Felder der Datenbank eingetragen haben, gehen Sie zum n&auml;chsten Schritt und bestimmen das Aussehen Ihrer Datenbank</font></td></tr></table>', standard => "Standard", compact => "Kompakt", extra => "Extra", blue_ocean => "Blue Ocean", orange_whip => "Orange Whip", poetry => "Poesie", lib_entry_copied => "Auswahl wurde in das Verzeichnis kopiert...", back_to_related_database => 'Zur&uuml;ck zur <a href="javascript:history.back()">verweisenden Datenbank</a><p>', changes_too_long => "&Auml;nderung zu lang!", data => "Daten", wrong_key => "Falscher privater Schlüssel!", limit_reached => "Limit erreicht!", limit_reached1 => "Sie haben das mit dieser Version zulässige Limit an ", limit_reached2 => " erreicht. Sie können keine weiteren mehr anlegen.", pages => "Seiten", databases_and_pages => "Datenbanken und Seiten", uninstall_baseportal => "baseportal komplett deinstallieren", uninstall_baseportal_text => "<b>Achtung:</b> Diese Funktion entfernt baseportal vollständig von diesem Server!<p><b>Damit werden auch ALLE vorhandenen Seiten, Datenbanken und deren Inhalte (inkl. aufgespielter Dateien) KOMPLETT GELÖSCHT!!!", uninstall_baseportal_confirm1 => "Aus Sicherheitsgründen müssen Sie die baseportal-Deinstallation mit Ihrem <i>privaten Schlüssel</i> bestätigen:", uninstall_baseportal_confirm2 => "baseportal und ALLE VORHANDENEN DATENBANKEN UND SEITEN, SOWIE ÜBER BASEPORTAL AUFGESPIELTE DATEIEN WIRKLICH LÖSCHEN!?", uninstall_baseportal_ok => "baseportal wurde von diesem Server entfernt. Auf Wiedersehen...", private_key => "privater Schlüssel", archive_get_from => "Archiv von $_server_home holen (Geben Sie das Archiv komplett mit Verzeichnispfad an, z.B. <i>dir/archiv</i>)", archive_upload => "Archiv aufspielen", archive_error => "Fehler beim Erstellen des Archivs:", change_path_url => "Pfade und URL-Aufrufe &auml;ndern", path_to_bpdata => "Pfad zu den baseportal-Daten", path_to_bpfiles => "Pfad zu den Dateien die per File-Upload aufgespielt werden", url_to_bpfiles => "URL-Aufruf der Dateien die per File-Upload aufgespielt werden", url_to_bppics => "URL-Aufruf der baseportal-Grafiken", path_to_zip => "Pfad zum 'zip'-Programm zum Packen von Dateien", path_to_unzip => "Pfad zum 'unzip'-Programm zum Entpacken von Dateien", path_to_sendmail => "Pfad zum 'sendmail'-Programm zum Versenden von EMails", keep_file => "Datei behalten", no_file => "Keine Datei", new_file => "Neue Datei", change_language => "Sprache &auml;ndern", new_language => "Neue Sprache", language_changed => "Sprache wurde ge&auml;ndert", error_language_changing => "Fehler beim Ändern der Sprache", path_url_changed => "Pfade/URL-Aufrufe wurden ge&auml;ndert", error_path_url_changing => "Fehler beim &Auml;ndern der Pfade/URL-Aufrufe", Copy => "Kopie", new_unknown => "Neu & unbesehen", lib_list => ["Gästebücher, Foren, Chats", "Passwort-Schutz/Nutzerverwaltung", "Für die Homepage", "Anwendungen", "Bilder", "Tools", "Offene Datenbanken", "Spezial", "Neu & unbesehen"], copy_entry_dir => "Auswahl in eigenes Verzeichnis kopieren", version => "Version", entry_on => "Eintrag vom", bugs_problems => "Fehler/Probleme", planned => "geplante/m&ouml;gliche Erweiterungen", usage_include => "Direktes Einbinden per include", pages => "Seiten", error_copy_file => "Fehler beim Kopieren von %s nach %s: Eine Datei mit diesem Namen existiert bereits", no_database_page_chosen => "Sie haben keine Datenbank oder Seite ausgew&auml;hlt!", enter_title => "Bitte geben Sie einen Titel ein!", enter_introduction => "Bitte geben Sie eine Einleitung ein!", enter_project_name => "Bitte geben Sie einen Projektnamen ein!", no_rights_modfiy_entry => "Sie haben keine Rechte diesen Eintrag zu &auml;ndern", project_exists => "Ein Projekt mit diesem Namen existiert bereits", error_rename_dir => "Fehler beim Umbenennen vom Verzeichnis %s nach %s", project => "Projekt", add => "hinzuf&uuml;gen", text_lib_modify => "Entfernen Sie die Auswahl bei bereits enthaltenen Dateien, die Sie aus der Bibliothek l&ouml;schen wollen und w&auml;hlen Sie neue Dateien aus dem Verzeichnis aus, die sie zus&auml;tzlich aufnehmen wollen. Wenn Sie fertig sind, klicken Sie auf 'Abschicken'.", included_files => "Bereits enthaltene Dateien", files_in_dir => "Dateien im Verzeichnis", text_lib_new_entry_pre => "Die baseportal-Bibliothek dient zum Austausch fertiger Anwendungen zwischen den Nutzern.<p><b>Bitte stellen Sie nur abgeschlossene, gut dokumentierte</b> Anwendungen ein, die programmtechnisch f&uuml;r andere interessant sind!<p><b>Sehen Sie sich VORHER bitte die bereits vorhandenen Beispiele an</b>, damit Sie verstehen, welche Projekte f&uuml;r andere Sinn machen. Es kostet unn&ouml;tig viel Zeit unpassende Eintr&auml;ge wieder zu entfernen. Danke f&uuml;r die Mithilfe!!<p><b>Zum VORSTELLEN Ihrer Datenbank</b> nutzen Sie bitte das <a href=\"http://$_server_home/cgi-bin/baseportal.pl?htx=/baseportal/verzeingabe\">Nutzer-Verzeichnis</a></td></tr></table><p>W&auml;hlen Sie die Datenbanken und Seiten aus, die Sie in die Bibliothek einstellen wollen und klicken Sie dann auf 'Abschicken'.<p>", text_lib_new_entry => 'Geben Sie Ihren Namen (muss nicht Ihr Nutzername sein), einen aussagekr&auml;ftigen Titel, eine kurze Einleitung, die Version ("Beta" wenn noch nicht fertig), m&ouml;gliche Fehler/Probleme, geplante/sinnvolle Erweiterungen und einen Link auf Ihre Anwendung im Einsatz ein.', text_lib_textinc => 'Geben Sie Ihrem Projekt einen aussagekr&auml;ftigen Namen: Damit sind alle Datenbanken und Seiten per <i>&lt;include src=/_bib/Name/...&gt;</i> zu erreichen.<p>Geben Sie bei der Beschreibung die möglichen Parameter mit Beispielen an und bei mehreren Seiten den Startaufruf. Verwenden Sie für Parameter kurze, klare ausgeschriebene Namen (gilt ebenso für Variablen und Felddefinitionen). Orientieren Sie sich an bereits bestehende "Kulturen" (Verwenden Sie z.B. für den Datenbanknamen "db" wie in baseportal üblich oder für die Hintergrundfarbe "bgcolor" wie in HTML).<p>Setzen Sie Pfade nicht absolut, sondern relativ oder mittels Variablen.', text_lib_db => "Geben Sie zu jeder Datenbank eine kurze Erkl&auml;rung ein. Die jetzigen Inhalte und Rechte der Datenbanken werden mit übertragen. Denken Sie daran offenen Datenbanken entsprechende Rechte (z.B. Lesen, Schreiben, Zugriff für andere Nutzer) zu geben. Nur wenn die Rechte \"Lesen\" und \"Zugriff für andere Nutzer\" gesetzt sind, kann der Inhalt einer Datenbank aus der Bibliothek gelesen oder geholt werden.", overwrite_existing_db => "Alte gleichnamige Datenbank wird mit dieser &uuml;berschrieben", text_lib_page => "Geben Sie zu jeder Seite eine Erkl&auml;rung ein. Der Code der Seite ist im Textfeld enthalten; mit einem Doppeltpunkt ':' vor jeder Zeile. Sie k&ouml;nnen nun einfach unwichtigen Code l&ouml;schen (er ist im kompletten Quelltext enthalten) oder zwischen die Codezeilen Erl&auml;uterungen einf&uuml;gen. Bei der Ausgabe erkennt baseportal an den Doppelpunkten den Code und gibt ihn (ohne die Doppelpunkte) entsprechend aus.<p>Seiten in der Bibliothek können von jedem gelesen, ausgeführt und eingebunden werden.", overwrite_existing_page => "Alte gleichnamige Seite wird mit dieser &uuml;berschrieben", add_entry_lib => "Eintrag in Bibliothek aufnehmen", lib_entry => "Ihr Eintrag wurde", lib_entry_added => "in die Bibliothek aufgenommen...", baseportal_bottom_text => "Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!", powered_by => "powered by", please_click_text => "Bitte klicken Sie auf den Werbebanner um uns zu unterst&uuml;tzen. Danke.", file_has_changed => "Die Datei wurde zwischenzeitlich geändert. Diese geänderte Version wurde in %s umbenannt.", invalid_fieldname => "Der Feldname darf nicht 'Id' oder '_id' sein. Dieses Feld ist automatisch definiert.", empty_fieldname => "Bitte geben Sie einen Feldnamen ein.", login_lostpw=> "Wenn Sie Ihr <a href=\"%s\"> Passwort vergessen</a> haben, k&ouml;nnen Sie es an die beim Registrieren angegebene EMail-Adresse schicken lassen.", login_session_timeout=> "Sie waren zulange abwesend. Ihre Session wurde beendet.<br>Bitte melden Sie sich erneut an:", login_session_invalid=> "Die angegebene Session Id ist ung&uuml;ltig.<br>Bitte melden Sie sich an:", login_please_login=> "Bitte melden Sie sich an:", login_invalid_login=> "Der Name und/oder das Passwort sind falsch. Bitte versuchen Sie es erneut und achten Sie auch auf Gross/Kleinschreibung, diese wird unterschieden.", login_name=> "Name", login_password=> "Passwort", login_email=> "EMail-Adresse", login_login=> "Anmelden", login_send=> "Abschicken", login_get_passwort=> "Bitte geben Sie den Namen und die EMail-Adresse an, die Sie auch bei der Registrierung verwendet haben. Wenn beides stimmt, bekommen Sie das Passwort zugeschickt:", login_invalid_email=> "Die angegebene EMail-Adresse enth&auml;lt kein At-Zeichen ( @ ) und/oder keinen Punkt ( . ). Bitte &uuml;berpr&uuml;fen Sie Ihre Eingabe:", login_mail_title=> "Zugang fuer baseportal", login_mail_text_1=> "Wie angefordert, erhalten Sie hiermit Ihren Zugang bei baseportal", login_mail_text_2=> "Achten Sie bei der Anmeldung auf die richtige Schreibweise und Gross/Kleinbuchstaben; diese werden unterschieden.\n\nViel Spass und Erfolg mit baseportal!", login_login_send=> "Der Zugang wurde an die angegebene Email-Adresse verschickt. Warten Sie bis Sie die entsprechende EMail erhalten haben und melden Sie sich dann mit dem &uuml;bermittelten Passwort an.", login_invalid_request=> "Der Name und/oder die EMail-Adresse stimmen nicht. Bitte &uuml;berpr&uuml;fen Sie Ihre Eingabe:", php_not_in_free=>  "PHP ist im kostenlosen baseportal nicht verfügbar.", php_not_in_this=> "PHP ist in diesem Paket nicht verfügbar. Bitte upgraden.", wrong_domain =>  "Programm läuft unter falscher Domain.", socket_open_missed=> "Socket open fehlgeschlagen", error_mail=> "Fehler beim Mail-Versand", board=> "Forum",  edit_design=> "Aussehen bearbeiten", load_page=> "Seite laden", fullscreen=> "Vollbild", webedit => "Webedit", center=> "Zentrieren", save=> "Speichern", save_without_reloading=>"Alt+S  Speichern ohne Neuladen", page_will_be_saved=> "Seite wird gespeichert...", get_it_from_net=> "...oder aus dem Internet holen", adress=> "Adresse", bp_meta_title=> "baseportal - kostenlose Web-Datenbanken - einfach, schnell, leistungsfähig!", bp_meta_description=> "Professionell Webseiten erstellen mit webbasierten Datenbanken. Einfach, schnell, kostenlos!", bp_meta_keywords=> "webdatenbank, webdatenbanken, web-datenbank, web-datenbanken, webbasiert, web-basiert, datenbank, datenbanken, webseiten, webseite, website, homepage, homepages, php, perl, mysql, sql, asp, access, erstellen, generieren, dynamisch, erzeugen, bauen, anwendung, anwendungen, webanwendung, webanwendungen, web-service, web-services, webservice, webservices, web-anwendung, web-anwendungen, einfach, schnell, leistungsfähig, internet, browser, minuten, programmierbar, programme, programmierung, web-auftritt, webauftritt, content, content management, cms, content management system, easy, start, umsetzung, umsetzen, pflegen, einsetzen, pflege, kostenlos", user_exist_already=> "Ein Nutzer mit diesem Namen existiert bereits. Bitte w&auml;hlen Sie einen anderen.", webspace_provided=> "Ihr baseportal-Webspace wurde unter dem Namen %s eingerichtet.", stop_easy_start=> "Easy Start abbrechen", from=> "von", at=> "am", step_for_step=> "Schritt-f&uuml;r-Schritt-Erstellung abbrechen", which_database=> "Die wievielte Datenbank auf der Seite soll bearbeitet werden:", database_name=> "Database Name", no_provided_database=> "Sie haben keine Datenbank angelegt.", all_langlist=> ["Deutsch", "Englisch", "Spanisch", "Französisch", "Italienisch", "Türkisch", "Griechisch", "Japanisch", "Koreanisch", "Chinesisch", "Katalanisch"], all_poslist=> ["", "Links", "Mittig","Rechts"], all_button_poslist=> ["Nicht möglich", "Nach Link alleine", "Nach Link oben", "Nach Link unten", "Immer oben", "Immer unten"], description=> "Beschreibung", description_pos=> "<b>Pos</b><br>Die Position die das neue Feld erhalten soll: <i>Neu</i> f&uuml;gt es an das Ende aller Felder. Andere Positionen f&uuml;gen es an der jeweiligen Stelle ein, alle darunter liegenden Felder werden nach hinten verschoben.<p>", description_field_name=>"<b>Feldname</b><br>Der Name des Feldes: Er wird bei der Ein- und Ausgabe verwendet. Sie k&ouml;nnen beliebige Zeichen f&uuml;r den Namen verwenden, auch das Leerzeichen.<p>", description_example=> "Beispiele", save_page_and_back=> "Seite speichern & zurück zu baseportal", or_picture_from_local=> "...oder Bild vom lokalen Rechner aufspielen", open=> "Öffnen", new=> "Neu", cut=> "Ausschneiden", copy=> "Kopieren", paste=> "Einfügen", undo=> "Rückgängig", redo=> "Wiederholen", find=> "Suchen", table=> "Tabelle", insert_row=> "Zeile einfügen", del_row=> "Zeilen löschen", insert_col=> "Spalte einfügen", del_col=> "Spalten löschen", insert_cell=> "Zellen einfügen", del_cell=> "Zellen löschen", merge_cell=> "Zellen zusammenfügen", split_cell=> "Zellen teilen", picture=> "Bild", insert_html_code=> "HTML Code einfügen", insert_page=> "Seite einfügen [include]", insert_database=> "Datenbank [do action=all]", loop_entries=> "Einträge durchlaufen [loop]", perl_code=> "Perl-Code [perl]", left_align=> "Links ausrichten", middle_align=> "Mittig ausrichten", right_align=> "Rechts ausrichten", to_the_left=> "Nach links", to_the_right=> "Nach rechts", save_and_show_page=> "Seite speichern & anzeigen", pagesetting=> "Seiteneinstellungen", htmledit_error=> "Fehler", htmledit_row=> "Zeile", htmledit_cancel=> "Abbrechen", htmledit_adress=> "Adresse", htmledit_border=> "Rahmen", htmledit_padding=> "Innenabstand", htmledit_celldistance=> "Zellenabstand", htmledit_width=> "Breite", htmledit_height=> "Höhe", htmledit_rows=> "Zeilen", htmledit_columns=> "Spalten", htmledit_yes=> "Ja", htmledit_page_settings=> "Seiteneinstellungen", htmledit_table=> "Tabelle", htmledit_picture=> "Bild", htmledit_insert_picture_form_net=>"Bild aus dem Internet einfügen...", htmledit_clear_to_get_original=>"(Leeren Sie Breite und Höhe um das Bild in Originalgrösse darzustellen)", htmledit_page=> "Seite", htmledit_get_page_from_net=> "Seite aus dem Internet laden...", htmledit_or_from_local=> "...oder Seite vom lokalen Rechner aufspielen", htmledit_file=> "Datei", htmledit_new_page_in_this_1=> "Neue Seite in bestehende Seite", htmledit_at_caret_2=> "an der Cursorposition", htmledit_replace_selection_3=> "statt der Auswahl", htmledit_replace_4=> "einsetzen?", htmledit_remove_link=> "Link aufheben", htmledit_edit_existing_link=> "Bestehenden Link ändern...", htmledit_selection_linked=> "Auswahl wird verlinkt...", htmledit_open_link_in_new=> "Link in neuem Fenster öffnen?", htmledit_insert_page=> "Seite einfügen [include]", htmledit_parameter=> "Parameter", htmledit_database_settings=> "Datenbank Einstellungen", htmledit_settings_will_load=> "Einstellungen werden geladen...", htmledit_save_page=> "Seite speichern", htmledit_page_will_be_saved=> "Seite wird gespeichert...", htmledit_clear_page_or_reset=> "Seite leeren oder zurücksetzen", htmledit_new_page=> "Neue Seite", htmledit_existing_will_overwrite=>"Bestehender Inhalt wird gelöscht.", htmledit_reset_page=> "Seite zurücksetzen", htmledit_all_changes_lost=> "Alle Änderungen werden verworfen.", htmledit_insert_html_code=> "HTML Code einfügen", colorpattern=> "Farbschema", colorpattern_click_on=> "Klicken Sie auf den Namen eines Farbschemas um es zu übernehmen", colorpattern_title=> "Titel", colorpattern_introduction=> "Einleitung", colorpattern_cancel=> "Abbrechen", colorchooser=> "Farbauswahl", colorchooser_red=> "Rot", colorchooser_green=> "Gr&uuml;n", colorchooser_blue=> "Blau", colorchooser_hexcode=> "Hex Code", colorchooser_no_color=> "Keine Farbe (transparent)", colorchooser_select_color=> "Farbe auswählen", colorchooser_cancel=> "Abbrechen", option_title_1=> "Aussehen der Tabelle", option_border_width=> "Rahmendicke", option_lattice_strength=> "Gitterstärke", option_text_distance=> "Textabstand vom Rahmen", option_border_color=> "Gitterfarbe", option_font=> "Schriftart", option_font_size=> "Schriftgrösse", option_font_color=> "Schriftfarbe", option_background_colour=> "Hintergrundfarbe", option_alternating=> "abwechselnde Hintergrundfarbe", option_adjustment=> "Ausrichtung", option_field_font=> "Feldnamen Schriftart", option_field_font_size=> "Feldnamen Schriftgrösse", option_field_font_color=> "Feldnamen Schriftfarbe", option_field_background_colour=>"Feldnamen Hintergrundfarbe", option_field_adjustment=> "Feldnamen Ausrichtung", option_other_font=> "Sonstiger Text Schriftart", option_other_font_size=> "Sonstiger Text Schriftgrösse", option_other_font_color=> "Sonstiger Text Schriftfarbe", option_other_background_colour=>"Sonstiger Text Hintergrundfarbe", option_title_2=> "Sortierung und Blättern", option_fields_sort=> "Felder und Reihenfolge der Sortierung", option_fields_sort_link=> "Felder mit Link zur Sortierung", option_index_row=> "Nach welchem Feld soll eine zusätzliche Index-Reihe erstellt werden?", option_pos_amount=> "Wo soll die Anzahl der passenden Einträge ausgegeben werden?", option_pos_register=> "Wo soll <i>Alles, Neu, Detail...</i> ausgegeben werden?", option_pos_sliders=> "Wo soll <i>&gt;, &gt;&gt...</i> ausgegeben werden?", option_pos_numbers=> "Wo soll <i>1, 21...</i> ausgegeben werden?", option_additional_index=> "Wo soll die zusätzliche Index-Reihe ausgegeben werden?", option_output_mode=> "Ausgabeart", option_language=> "Sprache", option_fields_and_sequenz=> "Felder und Reihenfolge", option_of_list_output=> "der Listen-Ausgabe", option_of_detail_output=> "der Detail-Ausgabe", option_by_input_form=> "beim Eingabe-Formular", option_by_search_form=> "beim Such-Formular", option_detail_output=> "Detail-Ausgabe", option_input_form=> "Eingabe-Formular", option_search_form=> "Such-Formular", option_cancel=> "Abbrechen", option_field_is_link=> "Welches Feld soll zur Detail-Ausgabe verlinken?", option_max_text_length=> "Maximale Textlänge bei der Listen-Ausgabe", option_special_parm=> "Zusatzparameter zu den <font size=3><tt>&lt;td&gt;</tt></font>-Tags", option_convert_br=> "Felder bei denen Zeilenumbrüche <font size=3><tt>\\n</tt></font> in <font size=3><tt>&lt;br&gt;</tt></font> gewandelt werden sollen", option_convert_html=> "Felder bei denen HTML-Code angezeigt statt ausgeführt werden soll", option_background_from_Web=> "...oder Hintergrundbild aus dem Internet", option_background_from_local=> "...oder von lokal laden", option_link=> "Link", option_visited=> "Besuchter", option_selected=> "Angewählter", option_clicked=> "Angeklickter", option_ts_bold=> "Fett", option_ts_italic=> "Kusiv", option_ts_underline=> "Unterstrichen", option_with_all=> "bei Gesamt", option_with_selection=> "bei Auswahl", option_top=> "Oben", option_bottom=> "Unten", option_color_pattern=> "Farbvorlagen&nbsp;ausw&auml;hlen", option_colors_and_formatting=> "Farben und Formatierung", option_design=> "Design", option_color=> "Farbe", option_title=> "Title", option_introduction=> "Einleitung", option_text=> "Text", option_text_and_picture=> "Texte und Grafiken", option_picture_from_Web=> "Hauptgrafik aus dem Internet", add_project_to_library=>"Projekt&nbsp;in&nbsp;Bibliothek&nbsp;einstellen", lib_field_author=>"Autor", lib_field_title=>"Titel", lib_field_introduction=>"Einleitung", lib_field_version_status=>"Version/Status", lib_field_error_problems=>"Fehler/Probleme", lib_field_extensions=>"Erweiterungen", lib_field_date=>"Datum", lib_field_name=>"Name", lib_field_description=>"Beschreibung", reorg_aborted => "Reorganisation wurde abgebrochen... %s.<br><br>Bereits reorganisiert: %.2f%<br>Schrittweite: %d<br><br>Bitte laden Sie diese Seite erneut, wenn mit einer Fehlermeldung abgebrochen wird.", shorten_amount => "Schrittweite wird verkleinert", new_pass => "Neuer Durchlauf",                        access          =>      "Zugang",                        address         =>      "Stammdaten",                        orders          =>      "Bestellungen",                        invoices        =>      "Rechnungen",                        usage           =>      "Verbrauch", ); }}sub set_language{ $_get{language}||=$_language; if($_get{language} eq "en") { %_text= ( %_text, invalid_entry => "Invalid entry", entry_added => "Entry added", entry_deleted => "Entry deleted", entry_modified => "Entry modified", all => "All", selection => "Selection", search => "Search", detail => "Details", modify => "Modify", new => "New", modify_entry => "Modify entry", new_entry => "New entry", do_search => "Search", search_result => "Search result", entry => "entry", entries => "entries", selected_entry => "selected", selected_entries => "selected", in_all => "in all", no_entries => "No entries found", and_more => "and more", delete => "Delete", confirm_delete => "Are you sure to delete this entry", submit => "Submit", reset => "Reset", action => "Action", error => "Error", more_info => "More info", read => "Read", write => "Write", permission_denied => "Permission denied", name => "Name", password => "Password", please_login => "Please sign in", user_locked => "Access denied", session_closed => "Session has been closed", session_timeout => "Session has timed out.<br>Please sign in again", session_invalid => "Session is invalid.<br>Please sign in", invalid_login => "Invalid name and/or password. Please try again and mind case sensitivity.", invalid_login_lostpw => "Invalid name and/or password. Please try again and mind case sensitivity.<p>If you <a href=\"/cgi-bin/$_myname?htx=%s&cmd=lostpw\">forgot your password</a> we will send you an email to the address you used when you signed up", password_lost => "Please enter your name and the email address you used when you signed up. We will send you your password if both is correct.", password_sent => "Your access has been sent to the given email address. Please check your mailbox and sign in with the password you received", invalid_email => "Invalid name and/or email address. Please try again and mind about case sensitivity", lostpw_mailsubject => "Your access to baseportal", lostpw_mailtext1 => "With this email you receive your access to baseportal:\n\n", lostpw_mailtext2 => "\n\nPlease be aware of the right typing and mind about case sensitivity.\n\nWe wish you much fun and success with baseportal!", unable_lock => "Unable to lock %s", unable_open => "Unable to open %s", unable_open_read => "Unable to open %s for reading", unable_open_write => "Unable to open %s for writing", unable_open_modify => "Unable to open %s for modifying", unable_open_delete => "Unable to open %s for deleting", unable_create_temp_file => "Unable to create temporary index file", unable_lock_users_db => 'Fatal error! Unable to lock users database. Please email to <a href="mailto:info@baseportal.com=?subject=Unable to lock users database!">info@baseportal.com', error_no_index_file_text => "Unable to read index file (%s).<p><b>Reasons:</b> 1. No sorting is defined for the field %s.<br>2. The index file is damaged<p><b>Solutions:</b> 1. Log into you private domain, choose the appropriate database, click on 'Fields' and modify the field %s. Now choose a sorting (by 'Number' or by 'Text')...<br>2. Reorganize the database: (Database / Management / Reorganize)", error_no_field_defined_text => "Field %s not defined in database %s<p><b>Reason:</b> The field is not defined in the database. Maybe you have just mistyped the query?<p><b>Solutions:</b> 1. Correct your query. 2. Log into your private domain, choose the appropriate database, click on 'Fields' and add the desired field.", error_no_access_text => "The specified database is not approved for the desired access.<p><b>Solution:</b> Log into your private domain, choose the appropriate database, click on 'Management' and change the rights settings.", error_template_exec_text => "Unable to open template %s.<p><b>Reasons:</b> The specified template does not exist or you don't have the rights to access it. Maybe you have just mistyped the name?<p><b>Solutions:</b> 1. Correct the name. 2. Log into your private domain, choose the appropriate template, click on 'Management' and change the rights settings.", error_field_unsorted => "Field %s is not sorted", error_field_undefined => "Field %s is not defined", error_includes_deadlock => "Too much includes! Deadlock?", error_perl => "Perl error in %s:<br>%s", error_open_htx => "Page %s does not exist", ); } elsif($_get{language} eq "es") { %_text= ( %_text, invalid_entry => "Entrada no v&aacute;lida", entry_added => "Entrada a&ntilde;adida", entry_deleted => "Entrada eliminada", entry_modified => "Entrada modificada", all => "Todo", selection => "Selecci&oacute;n", search => "Buscar", detail => "Detalle", modify => "Modificar", new => "Nuevo", modify_entry => "Modificar entrada", new_entry => "Nueva entrada", do_search => "B&uacute;squeda", entry => "Entrada", entries => "Entradas", selected_entry => "Seleccionada", selected_entries => "Seleccionadas", in_all => "total", no_entries => "No&nbsp;existen&nbsp;entradas", delete => "Eliminar", confirm_delete => "Eliminar definitivamente esta entrada", submit => "Enviar", reset => "Reiniciar", action => "Acci&oacute;n", error => "Error", more_info => "M&aacute;s informaci&oacute;n", read => "Leer", write => "Escribir", permission_denied => "El permiso ha sido denegado", name => "Nombre", password => "Contrase&ntilde;a", please_login => "Por favor, ingrese al sistema", user_locked => "Esta entrada est&aacute; bloqueada", session_closed => "Su sesi&oacute;n ha finalizado", session_timeout => "Ha estado demasiado tiempo ausente. Su sesi&oacute;n ha sido finalizada.<br> Por favor, vuelva a ingresar al sistema", session_invalid => "Su Id ingresada es inv&aacute;lida.<br> Por favor, ingrese al sistema", invalid_login => "El nombre de usuario y/o la contrase&ntilde;a est&aacute; mal ingresada. por favor, intente otra vez y ponga atenci&oacute;n al escribir con may&uacute;sculas o min&uacute;sculas, pues son diferentes para el sistema", invalid_login_lostpw => "El nombre de usuario y/o la contrase&ntilde;a est&aacute; mal ingresada. por favor, intente otra vez y ponga atenci&oacute;n al escribir con may&uacute;sculas o min&uacute;sculas, pues son diferentes para el sistema.<p> Si usted ha olvidado su <a href=\"/cgi-bin/$_myname?htx=%s&cmd=lostpw\">contrase&ntilde;a</a> , puede pedir que se le env&iacute;e a su correo electr&oacute;nico ingresado", password_lost => "Por favor, ingrese el nombre y el correo electr&oacute;nico que us&oacute; para el registro a baseportal. Si ambos coinciden, entonces recibir&aacute; su contrase&ntilde;a por e-mail.", password_sent => "Su contrase&ntilde;a ha sido enviada a su e-mail. Espere a recibir el mensaje e ingrese con la contrase&ntilde;a recibida", invalid_email => "El nombre y/o la cuenta de correo electr&oacute;nico no coinciden. Por favor, revise los datos ingresados y ponga atenci&oacute;n al diferenciar entre may&uacute;sculas y min&uacute;sculas", lostpw_mailsubject => "Acceso para baseportal", lostpw_mailtext1 => "Como ya anunciamos, aqu&iacute; recibe la contrase&ntilde;a para ingresar a baseportal:\n\n", lostpw_mailtext2 => "\n\nPonga atenci&oacute;n para ingresar correctamente al sistema y recuerde que este diferencia las min&uacute;sculas de las may&uacute;sculas.\n\n&iexcl;Mucha suerte y entretenci&oacute;n al usar baseportal!", unable_lock => "No se puede cerrar %s", unable_open => "No se puede abrir %s", unable_open_read => "No se puede abrir %s para leerlo", unable_open_write => "No se puede abrir %s para escritura", unable_open_modify => "No se puede abrir %s para modificarlo", unable_open_delete => "No se puede abrir %s para eliminar", unable_create_temp_file => "No se pudo crear datos indexados temporales", unable_lock_users_db => '&iexcl;Error fatal! No se puede cerrar datos de usuario. Por favor escriba un e-mail a <a href="mailto:info@baseportal.de">info@baseportal.de', error_no_index_file_text => "Dato indexado (%s) no puede ser abierto para lectura.<p><b>Razones:</b> 1. Para el campo %s no se defini&oacute; un orden.<br>2. Los datos indexados han sido destruidos<p><b>Soluciones:</b> 1. Vaya al &aacute;mbito personal (ingresando al sistema), seleccione la base de datos en cuesti&oacute;n, clickee en 'Campos' y en el campo %s haga click sobre Modificar. Escoja un orden alfab&eacute;tico o por n&uacute;mero...<br>2. Reorganice su base de datos bajo 'Base de datos / Administraci&oacute;n / Reorganisaci&oacute;n'", error_no_field_defined_text => "El campo %s en %s no existe<p><b>Raz&oacute;n:</b> El campo no ha sido definido en la base de datos. Talvez solo escribi&oacute; mal el texto de llamado.<p><b>Soluciones:</b> 1. Corrija el texto de llamado. 2. Vaya al &aacute;mbito personal (ingresando al sistema), seleccione la base de datos en cuesti&oacute;n, clickee en 'Campos' e ingrese el campo deseado.", error_no_access_text => "La base de datos no est&aacute; disponible para la aplicaci&oacute;n deseada.<p><b>Soluci&oacute;n:</b> Vaya al &aacute;mbito personal (ingresar al sistema), selecciones la base de datos en cuesti&oacute;n, vaya a 'Administraci&oacute;n' y corriga los derechos de la p&aacute;gina.", error_template_exec_text => "%s no puede ser abierto para su ejecuci&oacute;n.<p><b>Raz&oacute;n:</b> La p&aacute;gina no existe o usted no tiene los derechos para ejecutarla. Talvez solo se equivoc&oacute; al escribir el texto.<p><b>Soluciones:</b> 1. Corriga el texto de llamado. 2. Vaya al &aacute;mbito personal (ingresando al sistema) y cree la p&aacute;gina respectiva. 3. Modifique los derechos de la p&aacute;gina (bajo 'Administraci&oacute;n') si es que se trata de una p&aacute;gina propia.", error_field_unsorted => "El campo %s no tiene establecido un orden", error_field_undefined => "El campo %s no est&aacute; definido", error_includes_deadlock => "Demasiados 'include'. ¿Deadlock?", error_perl => "Error de Perl en %s:<br>%s", error_open_htx => "La p&aacute;gina %s no existe", ); } elsif($_get{language} eq "fr") { %_text= ( %_text, invalid_entry => "Enregistrement non valide", entry_added => "Enregistrement ajout&eacute;", entry_deleted => "Enregistrement effac&eacute;", entry_modified => "Enregistrement modifi&eacute;", all => "Tout", selection => "S&eacute;lection", search => "Rechercher", detail => "D&eacute;tail", modify => "Modifier", new => "Nouveau", modify_entry => "Modifier l'enregistrement", new_entry => "Nouvel Enregistrement", do_search => "Recherche", entry => "Enregistrement", entries => "Enregistrements", selected_entry => "Enregistrement s&eacute;lectionn&eacute;", selected_entries => "Enregistrements s&eacute;lectionn&eacute;s", in_all => "en entier", no_entries => "Il n'y a pas d'enregistrements", delete => "Supprimer", confirm_delete => "Vraiment supprimer cet enregistrement", submit => "Envoyer", reset => "R&eacute;initialiser", action => "Action", error => "Erreur", more_info => "Plus d&lsquo;info", read => "Lire", write => "Ecrire", permission_denied => "Op&eacute;ration d'acc&egrave;s refus&eacute;e", name => "Nom", password => "Mot de passe", please_login => "Pri&egrave;re d'ouvrir une session", user_locked => "Cet acc&egrave;s est bloqu&eacute;", session_closed => "Votre session est termin&eacute;e", session_timeout => "Vous &eacute;tiez absent trop longtemps. Votre session a &eacute;t&eacute; cl&ocirc;tur&eacute;e.<br>Pri&egrave;re d'ouvrir une nouvelle session", session_invalid => "L'identificateur de session est invalide.<br>Pri&egrave;re d'ouvrir une nouvelle session", invalid_login => "Le nom et/ou le mot de passe sont incorrects. Essayez &agrave; nouveau et faites attention &agrave; la casse (majuscules/minuscules); elles sont prises en compte", invalid_login_lostpw => "Le nom et/ou le mot de passe sont incorrects. Essayez &agrave; nouveau et faites attention &agrave; la casse (majuscules/minuscules); elles sont prises en compte.<p>Si vous avez <a href=\"/cgi-bin/$_myname?htx=%s&cmd=lostpw\">oubli&eacute; votre mot de passe</a>, vous pouvez vous le faire envoyer &agrave; l'adresse de courrier &eacute;lectronique que vous avez mentionn&eacute;e lors de l'ouverture de votre compte", password_lost => "Pri&egrave;re de mentionner votre nom d'utilisateur et votre adresse de courrier &eacute;lectronique que vous avez indiqu&eacute;s lors de l'ouverture de votre compte. Si les deux sont corrects, vous obtiendrez le mot de passe par courriel", password_sent => "Les codes d'acc&egrave;s ont &eacute;t&eacute; envoy&eacute;s &agrave; l'adresse de courrier &eacute;lectronique indiqu&eacute;e. Attendez d'avoir re&ccedil;u ce message &eacute;lectronique et ouvrez une nouvelle session avec le mot de passe transmis", invalid_email => "Le nom d'utilisateur ou l'adresse de courrier &eacute;lectronique ne correspondent pas. Pri&egrave;re de contr&ocirc;ler vos indications et attention &agrave; la casse (majuscules/minuscules).", lostpw_mailsubject => "Acc&egrave;s &agrave; baseportal", lostpw_mailtext1 => "Comme requis, veuillez recevoir par la pr&eacute;sente votre code d'acc&egrave;s &agrave; baseportal:\n\n", lostpw_mailtext2 => "\n\nLorsque vous ouvrez une session, attention &agrave; la casse (majuscules/minuscules); elles sont prises en compte.\n\nNous vous souhaitons beaucoup de satisfaction et de succ&egrave;s avec baseportal!", unable_lock => "Impossible de fermer %s", unable_open => "Impossible d'ouvrir %s", unable_open_read => "Impossible d'ouvrir %s pour la lecture", unable_open_write => "Impossible d'ouvrir %s pour y &eacute;crire ", unable_open_modify => "Impossible d'ouvrir %s pour modification", unable_open_delete => "Impossible d'ouvrir %s pour supprimer", unable_create_temp_file => "Impossible de cr&eacute;er le fichier d'indexation temporaire", unable_lock_users_db => 'Erreur fatale! Impossible de fermer le fichier d\'utilisateur. Pri&egrave;re d\'&eacute;crire un courriel &agrave; <a href="mailto:info@baseportal.de?subject=Sperre Nutzerdatei fehlgeschlagen!&body=Erreur fatale! Impossible de fermer le fichier d\'utilisateur.">info@baseportal.com</a>', error_no_index_file_text => "Impossible d'ouvrir le fichier d'indexation (%s).<p><b>Causes:</b> 1. Vous n'avez pas d&eacute;fini de mode de tri pour le champ %s.<br>2. Le fichier d'indexation est d&eacute;truit<p><b>^Solutions:</b> 1. Entrez dans votre espace personnel (ouvrir une session), s&eacute;lectionnez la base de donn&eacute;es correspondante, cliquez sur 'Champs' et ensuite sur 'Modifier' aupr&egrave;s du champ %s. Choisissez &agrave; pr&eacute;sent le mode de tri par 'Nombre' ou 'Texte'...<br>2. R&eacute;organisez la base de donn&eacute;es sous 'Base de donn&eacute;es / Administration / R&eacute;organisation'", error_no_field_defined_text => "Le champ %s n'existe pas dans %s<p><b>Cause:</b> Le champ n'a pas &eacute;t&eacute; d&eacute;fini dans la base de donn&eacute;es. Peut-&ecirc;tre s'agit-il tout simplement d'une erreur de frappe dans la requ&ecirc;te?<p><b>Solutions:</b> 1. Corrigez votre requ&ecirc;te. 2. Entrez dans votre espace personnel (ouvrir une session), s&eacute;lectionnez la base de donn&eacute;es correspondante, cliquez sur 'Champs' et ajoutez le champ voulu.", error_no_access_text => "La base de donn&eacute;es n'est pas libre d'acc&egrave;s pour cette requ&ecirc;te.<p><b>Solution:</b> Entrez dans votre espace personnel (ouvrir une session), s&eacute;lectionnez la base de donn&eacute;es correspondante, cliquez sur 'Administration' et adaptez les droits d'acc&egrave;s en cons&eacute;quence.", error_template_exec_text => "Impossible d'ouvrir %s pour l'ex&eacute;cuter.<p><b>Causes:</b> La page requise n'existe pas ou bien vous ne disposez pas des droits d'ex&eacute;cution. Peut-&ecirc;tre s'agit-il tout simplement d'une erreur de frappe dans la requ&ecirc;te?<p><b>Solutions:</b> 1. Corrigez votre requ&ecirc;te. 2. Entrez dans votre espace personnel (ouvrir une session) et cr&eacute;ez la page requise. 3. Changez les droits attribu&eacute;s &agrave; la page (sous 'Administration'), s'il s'agit bien de la v&ocirc;tre.", error_field_unsorted => "Le champ %s n'est pas index&eacute; (tri)", error_field_undefined => "Le champ %s n'est pas d&eacute;fini", error_includes_deadlock => "Trop de balises de type include! Deadlock?", error_perl => "Code Perl incorrect dans %s:<br>%s", error_open_htx => "La page requise %s n'existe pas", ); } elsif($_get{language} eq "pl") { %_text= ( %_text, invalid_entry => "Wpis niewa¿ny",  entry_added => "Wpis zosta³ do³±czony ",  entry_deleted => "Wpis zosta³ usuniêty", entry_modified => "Wpis zosta³ zmieniony", all => "Wszystkie wpisy", selection => "Wybór", search => "Wyszukiwanie", detail => "Szczegó³y", modify => "Zmiana", new => "Nowy", modify_entry => "Zmieniæ wpis", new_entry => "Nowy wpis", do_search => "Szukaæ", search_result => "Wyniki szukania", entry => "Wpis", entries => "Wpisy", selected_entry => "wybrany wpis", selected_entries => "wybrane wpisy", in_all => "razem", no_entries => "Nie znaleziono ¿adnych wpisów", and_more => "i wiêcej", delete => "Usun±æ wpis", confirm_delete => "Ten wpis ma zostaæ usuniêty", submit => "Wykonaæ", reset => "Powrót", action => "Operacja", error => "B³±d", more_info => "Wiêcej informacji", read => "Czytaæ", write => "Pisaæ", permission_denied => "Niewystarczaj±ce uprawnienia ", name => "U¿ytkownik", password => "Has³o", please_login => "Proszê siê zameldowaæ", user_locked => "Dostêp zabroniony", session_closed => "Sesja zosta³a zakoñczona", session_timeout => "Sesja zosta³a zakoñczona.<br> Proszê siê powtórnie zameldowaæ", session_invalid => "Numer sesji jest niewa¿ny.<br> Proszê siê zameldowaæ", invalid_login => "U¿ytkownik lub has³o niewa¿ne. Proszê spróbowaæ powtórnie - uwa¿aæ na ma³e i du¿e litery", invalid_login_lostpw => "U¿ytkownik lub has³o niewa¿ne. Proszê spróbowaæ powtórnie - uwa¿aæ na ma³e i du¿e litery.<p>Jeli <a href=\"/cgi-bin/$_myname?htx=%s&cmd=lostpw\">zapomnia³e has³a</a>mo¿esz go otrzymaæ na email-adres, który poda³e przy rejestracji", password_lost => "Proszê podaæ: jak nazywa sie u¿ytkownik oraz email-adres, który poda³e przy rejestracji. Jeli dane siê zgadzaj±, otrzymasz twoje has³o", password_sent => "Has³o zosta³o wys³ane na podany email-adres. Po otrzymaniu tej wiadomoci proszê siê powtórnie zameldowaæ", invalid_email => "U¿ytkownik lub email-adres nie zgadza siê. Proszê spróbowaæ powtórnie - uwa¿aæ na ma³e i du¿e litery", lostpw_mailsubject => "Dostêp do baseportalu", lostpw_mailtext1 => "Poni¿ej - twój dostêp do baseportalu :\n\n", lostpw_mailtext2 => "\n\nPrzy meldowaniu siê proszê uwa¿aæ na w³aciw± pisowniê oraz na ma³e i du¿e litery.\n\n¯yczymy powodzenia przy korzystaniu z baseportalu!", unable_lock => "%s - blokada niemo¿liwa", unable_open => "%s - otwarcie niemo¿liwe", unable_open_read => "%s - otwarcie dla operacji czytania niemo¿liwe", unable_open_write => "%s - otwarcie dla operacji pisania niemo¿liwe", unable_open_modify => "%s - otwarcie dla operacji zmieniania niemo¿liwe", unable_open_delete => "%s - otwarcie dla operacji usuwania niemo¿liwe", unable_create_temp_file => "Tworzenie tymczasowego Index-pliku jest niemo¿liwe", unable_lock_users_db => "B³±d! Plik u¿ytkownika nie mo¿e zostaæ zablokowany. Proszê wys³aæ email <a href=\"mailto:info\@$_server_home=?subject=Sperre Nutzerdatei fehlgeschlagen!\">info\@$_server_home", error_no_index_file_text => "Otwarcie index-pliku (%s) dla operacji czytania jest niemo¿liwe<p><b>Przyczyny:</b> 1. Dla kolumny %s nie zosta³o zdefiniowane ¿adne uporzadkowanie.<br>2. Index-plik jest uszkodzony<p><b>Pomoc:</b> 1. Po zalogowaniu, wybraæ bazê danych, wybraæ kolumnê %s i poprzez opcjê 'Zmieniæ' zdefiniowaæ uporz±dkowanie...<br>2. Zreorganizowaæ bazê danych 'Database/Management/Reorganize'", error_no_field_defined_text => "Nie znaleziono kolumny %s w %s <p><b>Przyczyna:</b> Kolumna nie zosta³a zdefiniowana w tej bazie danych lub pisownia jest niepoprawna.<p><b>Pomoc:</b> 1. Proszê sprawdziæ pisowniê. 2. Proszê sprawdziæ, czy ta kolumna jest zdefiniowana w tej bazie danych.", error_no_access_text => "Ten rodzaj dostêpu jest dla podanej bazy danych niedozwolony.<p><b>Pomoc:</b> Proszê zmieniæ uprawnienia u¿ytkowników.", error_template_exec_text => "%s nie mo¿e zostaæ uruchomiona.<p><b>Przyczyna:</b> Strona nie istnieje lub twoje uprawnienia sa niewystarczaj±ce. Mo¿e b³±d w pisowni?<p><b>Pomoc:</b> 1. Proszê sprawdziæ pisowniê. 2. Proszê sprawdziæ czy strona istnieje. 3. Proszê sprawdziæ uprawnienia.", error_field_unsorted => "Kolumna %s nie jest uporz±dkowana", error_field_undefined => "Kolumna %s nie istnieje", error_includes_deadlock => "Za du¿o includes! Deadlock?", error_perl => "B³±d w kodzie perla: %s:<br>%s", error_open_htx => "Strona %s nie istnieje", ); } elsif($_get{language} eq "el") { %_text= ( %_text, invalid_entry => "&#182;&#234;&#245;&#241;&#231; 196;&#233;&#225;&#244;&#225;&#227;&#229;&#223;",
 entry_added => "&#212;&#239; 200;&#221;&#236;&#225; 240;&#241;&#239;&#243;&#244;&#221;&#200;&#231;&#234;&#229;",
 entry_deleted => "&#212;&#239; 200;&#221;&#236;&#225; 243;&#226;&#222;&#243;&#244;&#233;&#234;&#229;",
 entry_modified => "&#212;&#239; 200;&#221;&#236;&#225; 225;&#235;&#235;&#220;&#247;&#244;&#231;&#234;&#229;",
 database_reorganized => "&#199; 244;&#241;&#220;&#240;&#229;&#230;&#225; 228;&#233;&#239;&#241;&#227;&#225;&#237;&#254;&#232;&#231;&#234;&#229;",
 all => "&#207;&#235;&#225;",
 selection => "&#193;&#240;&#252;&#246;&#225;&#243;&#229;&#233;",
 search => "&#216;&#220;&#247;&#237;&#229; 216;&#220;&#247;&#237;&#249;",
 detail => "&#208;&#229;&#241;&#233;&#243;&#243;&#252;&#244;&#229;&#241;&#229;&#242; 240;&#235;&#231;&#241;&#239;&#246;&#239;&#229;&#223;&#229;&#242;",
 modify => "&#182;&#235;&#235;&#225;&#238;&#229;",
 new => "&#205;&#221;&#239; 202;&#225;&#233;&#237;&#239;&#253;&#241;&#227;&#229;&#233;&#225;",
 modify_entry => "&#182;&#235;&#235;&#225;&#238;&#229- 244;&#239; 200;&#221;&#236;&#225;",
 new_entry => "&#202;&#225;&#233;&#237;&#239;&#253;&#241;&#227;&#229;&#233;&#139; &#200;&#221;&#236;&#225;",
 do_search => "&#216;&#220;&#238;&#229;",
 entry => "&#200;&#221;&#236;&#225;",
 entries => "&#200;&#221;&#236;&#225;&#244;&#225;",
 selected_entry => "&#197;&#234;&#235;&#229;&#227;&#236;&#221;&#237;&#239;&#242;",
 selected_entries => "&#197;&#234;&#235;&#229;&#227;&#236;&#221;&#237;&#239;&#233;",
 total => "&#207;&#235;&#252;&#234;&#235;&#231;&#241;&#239;&#242;",
 no_entries => "&#193;&#245;&#244;&#252; 244;&#239; 200;&#221;&#236;&#225; 228;&#229;&#237; 245;&#240;&#220;&#241;&#247;&#229;&#233;",
 delete => "&#211;&#226;&#222;&#243;&#229;",
 confirm_delete => "&#200;&#229;&#242; 237;&#225; 243;&#226;&#222;&#243;&#229;&#233;&#242; 225;&#245;&#244;&#252; 244;&#239; 200;&#221;&#236;&#225;",
 submit => "211;&#244;&#229;&#223;&#235;&#229;",
 reset => "&#211;&#226;&#222;&#243;&#244;&#239;",
 action => "&#197;&#237;&#221;&#241;&#227;&#229;&#233;&#225;"
 ); } elsif($language eq "ja") { %_text= ( %_text, invalid_entry => "&#20837;&#21147;&#12456;&#12521;&#12540;",
 entry_added => "&#65396;&#65437;&#65412;&#65432;&#65392;&#12364;&#36861;&#21152;&#12373;&#12428;&#12414;&#12375;&#12383;",
 entry_deleted => "&#65396;&#65437;&#65412;&#65432;&#65392;&#12364;&#28040;&#21435;&#12373;&#12428;&#12414;&#12375;&#12383;",
 entry_modified => "&#65396;&#65437;&#65412;&#65432;&#65392;&#12364;&#22793;&#26356;&#12373;&#12428;&#12414;&#12375;&#12383;",
 database_reorganized => "&#65411;&#65438;&#65392;&#65408;&#65421;&#65438;&#65392;&#65405;&#12364;&#20877;&#32232;&#25104;&#12373;&#12428;&#12414;&#12375;&#12383;",
 all => "&#20840;&#12390;",
 selection => "&#36984;&#25246;",
 search => "&#26908;&#32034;",
 detail => "&#35443;&#32048;",
 modify => "&#22793;&#26356;",
 new => "&#26032;&#35215;",
 modify_entry => "&#65396;&#65437;&#65412;&#65432;&#65392;&#12434;&#22793;&#26356;&#12375;&#12390;&#12367;&#12384;&#12373;&#12356;",
 new_entry => "&#26032;&#12375;&#12356;&#65396;&#65437;&#65412;&#65432;&#65392;",
 do_search => "&#26908;&#32034;",
 entry => "&#65396;&#65437;&#65412;&#65432;&#65392;",
 entries => "&#65396;&#65437;&#65412;&#65432;&#65392;",
 selected_entry => "&#36984;&#25246;&#12373;&#12428;&#12383;",
 selected_entries => "&#36984;&#25246;&#12373;&#12428;&#12383;",
 total => "&#65412;&#65392;&#65408;&#65433;",
 no_entries => "&#21033;&#29992;&#21487;&#33021;&#12394;&#65396;&#65437;&#65412;&#65432;&#65392;&#12364;&#12354;&#12426;&#12414;&#12379;&#12435;",
 modify => "&#22793;&#26356;",
 delete => "&#28040;&#21435;",
 confirm_delete => "&#12371;&#12398;&#20837;&#21147;&#12434;&#28040;&#21435;&#12375;&#12390;&#12424;&#12429;&#12375;&#12356;&#12391;&#12377;&#12363;",
 submit => "&#25552;&#20986;",
 reset => "&#65432;&#65406;&#65391;&#65412;",
 action => "&#65393;&#65400;&#65404;&#65390;&#65437;",
 ); } elsif($language eq "ko") { %_text= ( %_text, invalid_entry => "&#51077;&#47141; &#50724;&#47448;",
 entry_added => "&#44592;&#51116;&#49324;&#54637; &#48512;&#44032;&#46120;",
 entry_deleted => "&#44592;&#51116;&#49324;&#54637; &#49325;&#51228;&#46120;",
 entry_modified => "&#44592;&#51116;&#49324;&#54637; &#48320;&#54620;&#46120;",
 all => "&#51204;&#48512;",
 selection => "&#49440;&#53469;",
 search => "&#52286;&#50500;&#48388;",
 detail => "&#49464;&#48512;&#49324;&#54637;",
 modify => "&#48148;&#45000;",
 new => "&#49352;&#47196;&#50868;",
 new_entry => "&#49352;&#47196;&#50868; &#44592;&#51116;&#49324;&#54637;",
 do_search => "&#51312;&#49324;",
 entry => "&#44592;&#51116;&#49324;&#54637;",
 entries => "&#44592;&#51116; &#49324;&#54637;&#46308;",
 selected_entry => "&#49440;&#53469; &#46104;&#50632;&#51020;",
 selected_entries => "&#49440;&#53469; &#46104;&#50632;&#51020;",
 total => "&#52509;&#54633;",
 no_entries => "&#44592;&#51116;&#49324;&#54637; &#50630;&#51020;",
 modify => "&#48320;&#54872;",
 delete => "&#49325;&#51228;",
 submit => "&#51228;&#52636;",
 reset => "&#51116;&#49444;&#51221;",
 action => "&#51089;&#46041;",
 ); } elsif($language eq "zh") { %_text= ( %_text, invalid_entry => "&#26080;&#25928;&#36755;&#20837;",
 entry_added => "&#21152;&#20837;&#30340;&#36335;&#24452;",
 entry_deleted => "&#21435;&#25481;&#30340;&#36335;&#24452;",
 entry_modified => "&#25913;&#21464;&#30340;&#36335;&#24452;",
 all => "&#20840;&#37096;",
 selection => "&#36873;&#25321;",
 search => "&#25628;&#32034;",
 detail => "&#35814;&#32454;",
 modify => "&#21464;&#21270;",
 new => "&#26032;",
 new_entry => "&#26032;&#36335;&#24452;",
 do_search => "&#25628;&#32034;",
 entry => "&#36335;&#24452;",
 entries => "&#36335;&#24452;",
 selected_entry => "&#34987;&#36873;&#25321;",
 selected_entries => "&#34987;&#36873;&#25321;",
 total => "&#24635;&#21644;",
 no_entries => "&#27809;&#26377;&#36335;&#24452;",
 modify => "&#21464;&#21270;",
 delete => "&#21435;&#25481;",
 submit => "&#25552;&#20132;",
 reset => "&#37325;&#26032;&#21551;&#21160;",
 action => "&#34892;&#21160;",
 ); } elsif($language eq "tr") { %_text= ( %_text, invalid_entry => "Kay&#305;t ge&ccedil;ersiz",
 entry_added => "Kay&#305;t eklendi",
 entry_deleted => "Kay&#305;t silindi",
 entry_modified => "Kay&#305;t de&#287;i&#351;ti",
 database_reorganized => "Bilgi Bankas&#305; reorganize edildi",
 all => "Hepsi", selection => "Se&ccedil;enek", search => "Ara", detail => "Detay", modify => "De&#287;i&#351;tir",
 new => "Yeni", modify_entry => "Kay&#305;t&#305;de&#287;i&#351;tir",
 new_entry => "Yeni kay&#305;t",
 do_search => "Arama", entry => "Kay&#305;t",
 entries => "Kay&#305;tlar",
 selected_entry => "se&ccedil;len", selected_entries => "Se&ccedil;ilenler", in_all => "b&uuml;t&uuml;n", no_entries => "Kay&#305;t yok",
 delete => "Sil", confirm_delete => "Bu kay&#305;t&#305; silinsinmi",
 submit => "G&ouml;nder", reset => "Sil", action => "Eylem", error => "Hata", more_info => "Geni&#351; Info",
 read => "Oku", write => "Yaz", modify => "De&#287;i&#351;tir",
 name => "Isim", password => "Password", please_login => "L&uuml;tfen kaydolun", session_closed => "Oturum kapand&#305;",
 session_timeout => "Uzun s&uuml;re bulunmad&#305;n&#305;z. Oturum kapand&#305;. L&uuml;tfen tekrar kaydolun",
 session_invalid => "Bildirilen Oturum ID ge&ccedil;erli de&#287;l. L&uuml;tfen kaydolun",
 invalid_login => "Isim ve/veya Password yanl&#305;&#351;. L&uuml;tfen tekrar deneyin ve b&uuml;y&uuml;k/k&uuml;&ccedil;&uuml;k harflere dikkat edin, ay&#305;rt ediliyor.",
 invalid_login_lostpw => "Isim ve/veya Password yanl&#305;&#351;. L&uuml;tfen tekrar deneyin ve b&uuml;y&uuml;k/k&uuml;&ccedil;&uuml;k harflere dikkat edin, ay&#305;rt ediliyor. Password unutuldu&#287;nda kay&#305;tta bildirilen Email-Adresine g&ouml;nderebilirsiniz.",
 password_lost => "L&uuml;tfen kay&#305;tta bildirilen Isim ve Email-Adresinizi ekleyin. Ikiside do&#287;ru ise Passwordunuz g&ouml;nderilecek.",
 password_sent => "Giri&#351; bildirilen EMail-Adrese g&ouml;nderildi. Belirtilen Email’i alana kadar bekleyin ve aktar&#305;lan Password ile kaydolun.",
 invalid_email => "Isim ve/veya EMail-Adresi yanl&#305;&#351;. L&uuml;tfen yapt&#305;&#287;n&#305;z eklentileri inceleyin ve b&uuml;y&uuml;k/k&uuml;&ccedil;&uuml;k harflere dikkat edin.",
 lostpw_mailsubject => "Baseportala giri&#351;",
 lostpw_mailtext1 => "Baseportala istenilen giri&#351;:",
 lostpw_mailtext2 => "Kay&#305;tta yaz&#305;l&#305;&#351; &#351;ekline ve b&uuml;y&uuml;k/k&uuml;&ccedil; harflere dikkat ediniz, bunlar ay&#305;rt ediliyor. Baseportal ile iyi e&#287;lenceler ve ba&#351;ar&#305;lar!",
 error_perl => "%s de yanl&#305;&#351; Perl Codu: %s",
 error_open_htx => "Sayfa %s yok", ); } elsif($_get{language} eq "it") { %_text= ( %_text, invalid_entry => "L'entrata non valida", entry_added => "Entrata ha aggiunto", entry_deleted => "Entrata cancellata", entry_modified => "Entrata modificata", database_reorganized => "Base di dati riorganizzata", all => "Tutti", selection => "Selezione", search => "Ricerca", detail => "Particolare", modify => "Modifica", new => "Nuovo", modify_entry => "Modifica l'entrata", new_entry => "Nuova entrata", do_search => "Cerca", entry => "Entrata", entries => "Entrate", selected_entry => "Ha selezionato l'entrata", selected_entries => "Entrate selezionate", total => "Totale",            no_entries => "Nessuna entrata",            delete => "Cancellazione",            confirm_delete => "Conferma la cancellazione",            submit => "Invia",            reset => "Cancella", action => "Azione" ); } elsif($_get{language} eq "ca") { %_text=( %_text, invalid_entry => "Entrada no vàlida", entry_added => "Entrada agregar", entry_deleted => "Entrada apagar", entry_modified => "Entrada modificació", database_reorganized => "La banc de dades reorganitzar", all => "Tot", selection => "Selecció", search => "Recerca", detail => "Detall", modify => "Canvi", new => "Nou", modify_entry => "Canvi entrada", new_entry => "Nou entrada", do_search => "Cerca", entry => "Entrada", entries => "Entradas", selected_entry => "seleccionar", selected_entries => "seleccionar", total => "total", no_entries => "Cap entrada", delete => "Borrar", confirm_delete => "Que desitja borrar això entrada", submit => "Enviar", reset => "Retirar", action => "Acció" ); } elsif($_get{language} eq "sr") {  %_text= ( %_text, invalid_entry => "Pogresan unos", entry_added => "Podatak je dodat", entry_deleted => "Podatak je izbrisan", entry_modified => "Podatak je izmenjen", all => "Svi", selection => "Izbor", search => "Nadji", detail => "Detalji", modify => "Izmeni", new => "Novo", modify_entry => "Izmeni unos", new_entry => "Novi unos", do_search => "Pronadji", search_result => "Rezultat pretrage", entry => "unos", entries => "unosa", selected_entry => "selektovani podatak", selected_entries => "selektovani podaci", in_all => "ukupno", no_entries => "Podatak nije pronadjen", and_more => "nastavak", delete => "Izbrisi", confirm_delete => "Da li ste sigurni da zelite da izbrisete unos", submit => "Nastavi", reset => "Brisi", action => "Akcija", error => "Greska", more_info => "Vise informacija", read => "Procitaj", write => "Upisi", permission_denied => "Pristup nije dozvoljen", name => "Korisnik", password => "Lozinka", please_login => "Otvorite nalog", user_locked => "Pristup nije dozvoljen", session_closed => "Servis je zatvoren", session_timeout => "Pristup servisu prekinut.<br>Ulogujte se ponovo", session_invalid => "Pristup servisu nepravilan.<br>Ulogujte se ponovo", invalid_login => "Nepravilan unos imena i/ili lozinke. Molimo Vas da pokusate ponovo obratite paznju na upotrebu velikih i malih slova.", invalid_login_lostpw => "Nepravilan unos imena i/ili lozinke. Molimo Vas da pokusate ponovo obratite paznju na upotrebu velikih i malih slova.<p>Ukoliko ste <a href=\"/cgi-bin/$_myname?htx=%s&cmd=lostpw\">zaboravili lozinku</a> poslacemo vam je na email adresu koju ste naveli prilikom otvaranja naloga", password_lost => "Molimo vas da unesete korisnicko ime i email adresu koje ste koristili prilikom otvaranja naloga. Ukoliko su oba unosa pravilna, poslacemo vam lozinku na navedu adresu.", password_sent => "Podaci o pristupu poslati su na vasu email adresu. Molimo da proverite vasu postu i ulogujete se sa podacima koje smo vam poslali", invalid_email => "Nepravilan unos imena i/ili email adrese. Molimo Vas da pokusate ponovo obratite paznju na upotrebu velikih i malih slova", lostpw_mailsubject => "Vas pristup na baseportal", lostpw_mailtext1 => "ovim emailom dobicete podatke za pristup servisu:\n\n", lostpw_mailtext2 => "\n\nMolimo Vas da pokusate ponovo obratite paznju na upotrebu velikih i malih slova.\n\nzelimo vam uspesan rad na baseportalu!", unable_lock => "Neuspesno zakljucavanje %s", unable_open => "Neuspesno otvaranje %s", unable_open_read => "Neuspesno otvaranje %s za pregled", unable_open_write => "Neuspesno otvaranje %s za upis", unable_open_modify => "Neuspesno otvaranje %s za izmenu", unable_open_delete => "Neuspesno otvaranje %s za brisanje", unable_create_temp_file => "Neuspesno kreiranje privremenog index fajla", unable_lock_users_db => 'Fatal error! Neuspesno zakljucavanje korisnicke baze. Molimo da posaljete email na <a href="mailto:info@baseportal.com=?subject=Unable to lock users database!">info@baseportal.com', error_no_index_file_text => "Neuspesno citanje index fajla (%s).<p><b>Razlozi:</b> 1. Nije definisano sortiranje za polje %s.<br>2. Index fajl je ostecen<p><b>Resenja:</b> 1. Ulogujte se na svoj privatni domen, odaberite odgovarajucu bazu podataka, kliknite na 'Fields' i izmenite polje %s. Zatim odaberite vrstu sortiranja (po 'Number' ili po 'Text')...<br>2. Reorganizujte bazu podataka: (Database / Management / Reorganize)", error_no_field_defined_text => "Field %s nije definisano u bazi podataka %s<p><b>Razlog:</b> Polje nije definisano u bazi podataka. Mozda ste samo pogresno upisali podatak za query?<p><b>Resenja:</b> 1. Unesite ispravke u vas query. 2. Ulogujte se na vas privatni domen, odaberite odgovarajucu bazu podataka, kliknite na 'Fields' i dodajte zeljeno polje - field.", error_no_access_text => "Navedenoj bazi nije moguce pristupiti navedenim parametrima.<p><b>Resenje:</b> Ulogujte se na svoj privatni domen, odaberite odgovarajucu bazu, kliknite na 'Management' i promenite pristupna podesavanja.", error_template_exec_text => "Neuspesno otvaranje templeta %s.<p><b>Razlozi:</b> Navedeni templet ne postoji ili vam nije dozvoljen pristup. Mozda ste samo pogresno ukucali ime?<p><b>Resenja:</b> 1. Ispravite ime. 2. Ulogujte se na vas privatni domen, odaberite odgovarajuci template, klknite na 'Management' i promenite pristupna podesavanja.", error_field_unsorted => "Polje %s nije sortirano", error_field_undefined => "Polje %s nije definisano", error_includes_deadlock => "Suvise podataka! Corsokak?", error_perl => "Perl error in %s:<br>%s", error_open_htx => "Page %s does not exist", );        } elsif($_get{language} eq "no") {invalid_entry => "Ugyldig oppf&oslash;ring",entry_added => "Oppf&oslash;ring lagt til",entry_deleted => "Oppf&oslash;ring slettet",entry_modified => "Oppf&oslash;ring endret",all => "Alle",selection => "Utvalg",search => "S&oslash;k",detail => "Detaljer",modify => "Endre",new => "Ny",modify_entry => "Endre oppf&oslash;ring",new_entry => "Ny oppf&oslash;ring",do_search => "S&oslash;k",search_result => "S&oslash;ket fant",entry => "oppf&oslash;ring",entries => "oppf&oslash;ringer",selected_entry => "utvalgt",selected_entries => "utvalgte",in_all => "i alt",no_entries => "Ingen oppf&oslash;ringer funnet",and_more => "og mer",delete => "Slette",confirm_delete => "Er du sikker p&aring; at du vil slette denne oppf&oslash;ringen",submit => "Utf&oslash;r",reset => "Tilbakestill",action => "Aksjon",error => "Feil",more_info => "Mer info",read => "Lese",write => "Skrive",permission_denied => "&Oslash;nsket tilgang nektes",name => "Navn",password => "Passord",please_login => "Vennligst logg inn",user_locked => "Tilgangen er sperret",session_closed => "Din sesjonen er blitt stengt",session_timeout => "Du har v&aelig;rt frav&aelig;rende for lenge.<br>Vennligst logg inn p&aring; nytt",session_invalid => "Ugyldig sesjon.<br>Vennligst logg inn",invalid_login => "Ugyldig navn og/eller passord. Vennligst pr&oslash;v p&aring; nytt og husk f&oslash;lsomhet for store/sm&aring; bokstaver.",invalid_login_lostpw => "Ugyldig navn og/eller passord. Vennligst pr&oslash;v p&aring; nytt og husk f&oslash;lsomhet for store/sm&aring; bokstaver.<p>Hvis du <a href=\"/cgi-bin/$_myname?htx=%s&cmd=lostpw\">har glemt passordet ditt</a> vil vi sende deg en epost  til den adressen du oppga ved registreringen",password_lost => "Vennligst oppgi navn og epost-adresse som du brukte da du registrerte deg. Vi vil sende deg passordet hvis begge er korrekte.",password_sent => "Ditt tilgangspassord er sendt til den oppgitte epost-adressen. Vennligst sjekk innboksen din og logg inn med det passordet du har mottatt",invalid_email => "Ugyldig navn og/eller passord. Vennligst pr&oslash;v p&aring; nytt og husk f&oslash;lsomhet for store/sm&aring; bokstaver",lostpw_mailsubject => "Din tilgang til baseportal",lostpw_mailtext1 => "Med denne epost-meldingen f&aring;r du tilgang til baseportal:\n\n",lostpw_mailtext2 => "\n\nVennligst tast riktig og v&aelig;r n&oslash;ye med store/sm&aring; bokstaver.\n\nVi &oslash;nsker deg mye glede og suksess med baseportal!",unable_lock => "Kan ikke l&aring;se %s",unable_open => "Kan ikke &aring;pne %s",unable_open_read => "Kan ikke &aring;pne %s for lesing",unable_open_write => "Kan ikke &aring;pne %s for skriving",unable_open_modify => "Kan ikke &aring;pne %s for endring",unable_open_delete => "Kan ikke &aring;pne %s for sletting",unable_create_temp_file => "Kan ikke opprette tempor&aelig;r indeks-fil",unable_lock_users_db => 'Fatal feil! Kan ikke l&aring;se brukers database. Vennligst send en epost-melding til <a href="mailto:info@baseportal.com=?subject=Unable to lock users database!">info@baseportal.com</a>',error_no_index_file_text => "Kan ikke lese indeks-fil (%s).<p><b>&Aring;rsak:</b> 1. Ingen sortering er definert for feltet %s.<br>2. Indeks-fila er &oslash;delagt<p><b>L&oslash;sning:</b> 1. Logg p&aring; ditt private omr&aring;de , velg aktuell database, klikk p&aring; 'Fields' og endre feltet %s. Velg s&aring; sortering (by 'Number' or by 'Text')...<br>2. Reorganiser databasen: (Database / Management / Reorganize)",error_no_field_defined_text => "Feltet %s er ikke definert i databasen %s<p><b>&Aring;rsak:</b> Feltet er ikke definert i databasen. Kanskje du har en skrivefeil i 'query'?<p><b>L&oslash;sning:</b> 1. Korriger 'query'. 2.  Logg inn p&aring; ditt private omr&aring;de, velg aktuell database, klikk p&aring; 'Fields' og legg til &oslash;nskede feltet.",error_no_access_text => "Den angitte databasen er ikke godkjent for &oslash;nsket tilgang.<p><b>L&oslash;sning:</b> Logg inn p&aring; ditt private omr&aring;de, velg aktuell database, klikk p&aring; 'Management' og endre tilgangsrettighetene.",error_template_exec_text => "Kan ikke &aring;pne styrefil (template) %s.<p><b>&Aring;rsak:</b> Angitt styrefil finnes ikke eller at du ikke har tilgangsrettighet. Kanskje du har skrevet navnet feil?<p><b>L&oslash;sning:</b> 1. Korriger navnet. 2. Logg inn p&aring; ditt private omr&aring;de, velg aktuell styrefil, klikk p&aring; 'Management' og endre tilgangsrettighetene.",error_field_unsorted => "Felt %s er ikke sortert",error_field_undefined => "Felt %s er ikke definert",error_includes_deadlock => "for mange 'includes'! Vrangl&aring;s?",error_perl => "Perl kodefeil i %s:<br>%s",error_open_htx => "Siden %s eksisterer ikke" } elsif($_get{language} eq "de") {  %_text= ( %_text, invalid_entry => "Eingabe ung&uuml;ltig", entry_added => "Eintrag hinzugef&uuml;gt", entry_deleted => "Eintrag gel&ouml;scht", entry_modified => "Eintrag ge&auml;ndert", all => "Alles", selection => "Auswahl", search => "Suchen", detail => "Detail", modify => "&Auml;ndern", new => "Neu", modify_entry => "Eintrag &auml;ndern", new_entry => "Neuer Eintrag", do_search => "Suche", search_result => "Suchergebnis", entry => "Eintrag", entries => "Eintr&auml;ge", selected_entry => "ausgew&auml;hlter", selected_entries => "ausgew&auml;hlte", in_all => "gesamt", no_entries => "Keine&nbsp;Eintr&auml;ge&nbsp;vorhanden", and_more => "und mehr", delete => "L&ouml;schen", confirm_delete => "Diesen Eintrag wirklich l&ouml;schen", submit => "Abschicken", reset => "Zur&uuml;cksetzen", action => "Aktion", error => "Fehler", more_info => "Mehr Info", read => "Lesen", write => "Schreiben", permission_denied => "Gewünschter Zugriff verweigert", name => "Name", password => "Passwort", please_login => "Bitte melden Sie sich an", user_locked => "Dieser Zugang ist gesperrt", session_closed => "Ihre Session wurde beendet", session_timeout => "Sie waren zulange abwesend. Ihre Session wurde beendet.<br>Bitte melden Sie sich erneut an", session_invalid => "Die angegebene Session Id ist ung&uuml;ltig.<br>Bitte melden Sie sich an", invalid_login => "Der Name und/oder das Passwort sind falsch. Bitte versuchen Sie es erneut und achten Sie auch auf Gross/Kleinschreibung; diese wird unterschieden", invalid_login_lostpw => "Der Name und/oder das Passwort sind falsch. Bitte versuchen Sie es erneut und achten Sie auch auf Gross/Kleinschreibung; diese wird unterschieden.<p>Wenn Sie Ihr <a href=\"/cgi-bin/$_myname?htx=%s&cmd=lostpw\">Passwort vergessen</a> haben, k&ouml;nnen Sie es an die beim Registrieren angegebene EMail-Adresse schicken lassen", password_lost => "Bitte geben Sie den Namen und die EMail-Adresse an, die Sie auch bei der Registrierung verwendet haben. Wenn beides stimmt, bekommen Sie das Passwort zugeschickt", password_sent => "Der Zugang wurde an die angegebene EMail-Adresse verschickt. Warten Sie bis Sie die entsprechende EMail erhalten haben und melden Sie sich dann mit dem &uuml;bermittelten Passwort an", invalid_email => "Der Name und/oder die EMail-Adresse stimmen nicht. Bitte &uuml;berpr&uuml;fen Sie Ihre Eingabe und achten Sie dabei auf Gross/Kleinschreibung", lostpw_mailsubject => "Zugang fuer baseportal", lostpw_mailtext1 => "Wie angefordert, erhalten Sie hiermit Ihren Zugang bei baseportal:\n\n", lostpw_mailtext2 => "\n\nAchten Sie bei der Anmeldung auf die richtige Schreibweise und Gross/Kleinbuchstaben; diese werden unterschieden.\n\nViel Spass und Erfolg mit baseportal!", documentation => "Dokumentation", documentation_for_rent => "zum Mieten Dokumentation", unable_lock => "Kann %s nicht sperren", unable_open => "Kann %s nicht öffnen", unable_open_read => "Kann %s nicht zum Lesen öffnen", unable_open_write => "Kann %s nicht zum Schreiben öffnen", unable_open_modify => "Kann %s nicht zum Ändern öffnen", unable_open_delete => "Kann %s nicht zum Löschen öffnen", unable_create_temp_file => "Tempor&auml;re Index-Datei konnte nicht erstellt werden", unable_lock_users_db => "Fataler Fehler! Kann Nutzerdatei nicht sperren. Bitte schreiben Sie eine EMail an <a href=\"mailto:info\@$_server_home=?subject=Sperre Nutzerdatei fehlgeschlagen!\">info\@$_server_home", error_no_index_file_text => "Index-Datei (%s) kann nicht zum Lesen ge&ouml;ffnet werden.<p><b>Ursachen:</b> 1. Für das Feld %s wurde keine Sortierung definiert.<br>2. Die Index-Datei ist zerst&ouml;rt<p><b>L&ouml;sungen:</b> 1. Gehen Sie in Ihren privaten Bereich (Anmelden), w&auml;hlen Sie die entsprechende Datenbank aus, klicken Sie auf 'Felder' und beim Feld %s auf '&Auml;ndern'. W&auml;hlen Sie nun eine Sortierung nach 'Zahl' oder 'Text'...<br>2. Reorganisieren Sie die Datenbank unter 'Datenbank / Verwaltung / Reorganisation'", error_no_field_defined_text => "Feld %s in %s nicht vorhanden<p><b>Ursache:</b> Das Feld wurde in der Datenbank nicht definiert. Vielleicht haben Sie sich bei der Abfrage auch nur verschrieben?<p><b>L&ouml;sungen:</b> 1. Korrigieren Sie Ihre Abfrage. 2. Gehen Sie in Ihren privaten Bereich (Anmelden), w&auml;hlen Sie die entsprechende Datenbank aus, klicken Sie auf 'Felder' und f&uuml;gen Sie das gew&uuml;nschte Feld hinzu.", error_no_access_text => "Die angegebene Datenbank ist für den gew&uuml;nschten Zugriff nicht freigegeben.<p><b>L&ouml;sung:</b> Gehen Sie in Ihren privaten Bereich (Anmelden), w&auml;hlen Sie die entsprechende Datenbank aus, klicken Sie auf 'Verwaltung' und &auml;ndern Sie die Rechte entsprechend.", error_template_exec_text => "%s kann nicht zum Ausf&uuml;hren ge&ouml;ffnet werden.<p><b>Ursache:</b> Die angegebene Ausgabeseite existiert nicht oder Sie haben keine Rechte zum Ausf&uuml;hren. Vielleicht haben Sie sich nur verschrieben?<p><b>L&ouml;sungen:</b> 1. Korrigieren Sie Ihre Abfrage. 2. Gehen Sie in Ihren privaten Bereich (Anmelden) und legen Sie eine entsprechende Seite an. 3. &Auml;ndern Sie die Rechte der Ausgabeseite (unter 'Verwaltung'), wenn es sich um Ihre handelt.", error_field_unsorted => "Feld %s ist nicht sortiert", error_field_undefined => "Feld %s ist nicht definiert", error_includes_deadlock => "Zu viele includes! Deadlock?", error_perl => "Fehlerhafter Perl Code in %s:<br>%s", error_open_htx => "Die Ausgabeseite %s existiert nicht", ); }}sub do_chat{ my($text,@rest)=@_; my($userpath)=$_get{htx}=~ /\/([^\/]*)\//;$userpath="_user/$userpath"; my $user; if($text eq "/bye" || $text eq "/hello") { $user=shift @rest; } else { &dld(undef,undef,undef,"/$userpath", $_[1]); return $_user{sid} if $text eq "/login"; return unless $_user; $user=$_user; } sysopen(FILE, "$_data/$userpath/chat.txt", O_RDWR|O_CREAT); flock FILE, 2;$|=1; seek (FILE, 0, 0); my @chat=<FILE>; my(undef,$mi,$st)=localtime;$mi="0$mi" if $mi<10; $st="0$st" if $st<10; if($text) { if($text eq "/who" || $text eq "/hello" || $text eq "/bye") { my @users; foreach (values %$_sessions) { $x=(split /#/,$_,3)[1]; push @users, $x; }
 @users=sort { lc($a) cmp lc($b) } @users; if($text ne "/who") { $text.=" @users"; } else { $text=":$user @users"; $user="[System]"; } } else { $text=~ s/</&lt;/g; $text=~ s/>/&gt;/g; $text=~ s#(http://\S*)#<a href="$1" target="show">$1</a>#gi;
 } unshift @chat, ($chat[0]+1)."|$user|$st:$mi|$text|".(join "|",@rest)."\n"; $#chat=20 if $#chat>20;
 seek (FILE, 0, 0);  for (@chat) { print FILE; } truncate FILE, tell FILE; } close FILE; return @chat;}$:=qq{)M_C(D168B`"=SE&;\@L#=IY6:\@T'(M!2?B0&9AMU;D72/M16;C_'=E=V]D`R._)BX#<\\XC8OPC+NX2?D5&9D%V]Y7'=N5V>TA]9TM%7^(&/^`'/BHC(^`'/^(V+_)\\X#=NMF9OPS9SUF<R5V]DX#,P`#,X06/RM&;O-&(TYV;FQC/BQC(\n<V<_7G<_)EM%7\@0]=O!R.T5'<\@L31,ED1\@4V<OQV8\@LC(NQU=N1B(\@4\$379\$(TY6:R!'(_)[DB(M5&;I9&;[1]9GM%7OP68T7W;P5V<A7V]DXC(\@P21,ED1HX69PM&([ER=_)N1"(EY&(WQ&7H86:[TG<O1]=!_'=U!W]DX2?GY6=BE69RAV8S5F0[1]=PM%7_)NT';E1]:4_'=U!W]DTS=N1R.%Q42&!29SM&;C_S=L1"(PUV;H-&([X31,ED1_)\\TS=L1"(YUV.I(2?EQ6:FQV>T5V9?1R+L%&=RM&<E-]8BM%7B`"+%Q42&AB;_)E!W;[!29SQ69\@T'([(B/BM"/NXB+NE69\@(W;T5]0\@X69NE69\@46:3!B;E769_)G!29T1]:"YC8\\X#<\\("(T5W;\@L'(I(B(\@\$]9\@TG<O1]=!_'=U!W]D\@B9I-';_)E!2?\@LC(^(V+\\XB+NX6:E!R9N5G8I5F<H-V<E7\$(EY6:E!29I-%(N5F8E=&(_)E1'=I7D/BQC/PQC(\@0]=O!R>\@DB(B`2<E!2?GY6=BE69RAV8S5F0[1]=PM%7_)H86:SQ69\@T'([(B/BM"/NXB+NE69\@P69TE&5\@X69NE69\@46:3!B;E769G!29_)T1]:"YC8\\X#<\\("(T5W;\@L'(I(B(\@\$]9\@T';E1]:4_'=U!W]D\@B9I!R>\@D"=_)U!W]E`B7F`B(D168B`2<E!2?DUV8[1]9GM%7H86:\@L'=U!G;IAW]O1&(B5W<_};pipe;sub do_xmod{ if($_get{cmd} eq "mod" && $_get{Id} ne "") { my($lw, $nw); open(FILE, "$_baseportal/$_get{lfile}"); $lw=<FILE>; chomp $lw; close FILE; $nw=$ENV{REMOTE_ADDR}; if($lw ne $nw) { open(FILE, ">$_baseportal/$_get{lfile}"); print FILE "$nw\n"; close FILE; local $_su=1; mod undef, "*"; } }}sub do_ymod # wieder ein spezieller fall um klicks & stimmen zaehlen zu koennen - das muss man verallgemeinern!!
{ if($_get{cmd} eq "mod" && $_get{Id} ne "" && $_get{dofield} ne "") { my($lw,$nw); if($_get{lfile}) { open(FILE, "$_baseportal/$_get{lfile}"); $lw=<FILE>; chomp $lw; close FILE; } $nw=$ENV{REMOTE_ADDR}; if($lw ne $nw) { if($_get{lfile}) { open(FILE, ">$_baseportal/$_get{lfile}"); print FILE "$nw\n"; close FILE; } local $_su=1; mod undef, "*"; } }}sub do_input{ if($_get{cmd} eq "del" && $_get{Id} ne "") { del "Id==".($_get{Id} || 0); out "<b>$_text{entry_deleted}...</b><p>"; &check_mailon("del", "entry_deleted"); } if($_get{cmd} eq "add" && %_put) { put; out $_errmsg?"<b><font color=d80000>$_errmsg</font></b><p>":"<b>$_text{entry_added}...</b><p>"; $_get{cmd}="do_add"; &check_mailon("put", "entry_added"); } if($_get{cmd} eq "mod" && %_put) { local $_formfields_workaround=$_get{formfields}; chg; out "<b>$_text{entry_modified}...</b><p>"; &check_mailon("put", "entry_modified"); }}sub acos{ set_language($_get{language}) if($_get{language});init;get; list $_get{listtype}, undef, undef, $_get{listfields} || "-Id#6";
}sub do_xsearch # spezial-volltextsuche
{ if($_server_name=~ /baseportal\.de$/) { out form("htx","wcheck=1"),"Suche im Forum: ",text(20,$_get{vtsearch},"vtsearch")," ",submit("Suchen",""),"&nbsp;&nbsp;&nbsp;<a href=\"http://baseportal.de/cgi-bin/baseportal.pl?htx=/direkt/forum/suchen\">Erweiterte Suche</a> von Andreas Jurenda</form>"; } else { out form("htx","wcheck=1"),"$_text{do_search}: ",text(20,$_get{vtsearch},"vtsearch")," ",submit("Submit",""); } if($_get{vtsearch}) { my ($s,$s2); my @s=split /\s+/,lc($_get{vtsearch}); $s="(".join(".*", @s).")"; $s2="(".join("|", @s).")";out "</table></center>";tout $_text{search_result},undef,4,"96%"; my ($width,$count,$pos,$titel,$email,$www,$datum,$text); my($i,$c,$sc,$rc); open(IFILE, "$_data$_adir$_db.0");  $_ms=$/; undef $/; $i=<IFILE>; $/=$_ms; my @result=unpack("V*", $i); close IFILE; open(FILE, "$_data$_adir$_db"); for($rc=$#result; $rc>=0; $rc--)
 { seek(FILE, $result[$rc], 0); $i=<FILE>; next if $i=~ /^°/; $li=lc($i); for($sc=0; $sc<@s; $sc++) { last if index($li,$s[$sc])<0; } if($sc==@s) {$i=~ s/\\n/ /g; ($width,$count,undef,$pos,$titel,$email,$www,$datum,$text)=split /\|/,$i; if($_server_name=~ /baseportal\.de$/) { out "<nobr>&gt; <a href=\"/cgi-bin/baseportal.pl?htx=$_get{htx}&wcheck=1&Pos=$pos\"><b>".convert_html($titel)."</b></a> von <b>".convert_html($count)."</b> am ",datum($datum),"</nobr><br>"; } else { $datum.="#+00:00" if length($datum)<28;
 out "<nobr>&gt; <a href=\"/cgi-bin/baseportal.pl?htx=$_get{htx}&wcheck=1&Pos=$pos\"><b>$titel</b></a> from <b>$count</b> on ",date($datum),"</nobr><br>"; }$text=substr(convert_html($text),0,300);$s2=quotemeta $s2;$text=~ s/($s2)/<b>$1<\/b>/igs;out "<ul>$text...</ul><br>";last if ++$c>9;  } } close FILE;out "<i>($_text{no_entries})</i>" if $c==0;out "<i>...$_text{and_more}</i>" if $c>9;out "</ul>"; }}sub do_fullsearch{ my($val, $cnt2)=@_; my($c, $pc, $pca, $ac, $aca, $li); my(@res, @s2); my $axa=0; $axa=($cnt2=~ /!$/); chop $cnt2 if $axa; $val=lc($val) unless $axa; my @s=split /,|\s/, $val;$aca=0; $_fullsearch_regex="";foreach (@s){ ($c)= /^(\+|-)/; $_=substr($_,1) if $c; push @s2, $c; $pca++ if $c eq "+"; $aca=1 if $c eq ""; $_fullsearch_regex.="$_|" if $c ne "-";}$aca=0 if $pca>0;if($_fullsearch_regex ne ""){ chop $_fullsearch_regex; if($cnt2 ne "~~") { $_fullsearch_regex="[^\\wäöüÜÄÖß]".$_fullsearch_regex; $_fullsearch_regex.="[^\\wäöüÜÄÖß]" if $cnt2 ne "~="; } $_fullsearch_regex="($_fullsearch_regex)"; $_fullsearch_regex="(?i)".$_fullsearch_regex unless $axa;} my($i,$sc,$rc,$xp,$xi); ($_fullsearch_range,undef,$_fullsearch_range_length)=$_get{fullsearch_range}=~ /^(-?\d+)(,(\d+))?$/; $_fullsearch_range+=0;$_fullsearch_range_length=2500 if $_fullsearch_range_length eq ""; $_fullsearch_match=$_get{fullsearch_match}; $_fullsearch_match=10 if $_fullsearch_match eq ""; my $cco=$_fullsearch_range; my $coo=$_fullsearch_range_length; my($memb,$rev); $memb=0; $rev=1; my $sort=$_get{fullsearch_sort}; if($sort ne "") { $rev=($sort=~ s/^-//)?1:0; $memb=$$_db{_fnr}{$sort}; return error sprintf($_text{error_field_undefined}, $$_db{_field}[$memb]) unless defined $memb; } my $max=$cco<0?0:$_amount_all; $cco=($cco<0?-$_amount_all:$_amount_all) if abs($cco)>$_amount_all; $coo=$max-$cco if $cco+$coo>=$max; open(IFILE, "$_data$_adir$_db.$memb") || return error sprintf($_text{error_field_unsorted}, $$_db{_field}[$memb]);  seek(IFILE, ($rev?$max-$cco-$coo:($cco<0?$_amount_all+$cco:$cco))*4, 0); read(IFILE, $i, $coo*4); my @result=unpack("V*", $i); close IFILE; for($rc=($rev?$#result:0); $rev?$rc>=0:$rc<=$#result; $rev?$rc--:$rc++)
 { seek(FILE, $result[$rc], 0); $i=<FILE>; next if $i=~ /^°/; $li=$axa?$i:lc($i); for($sc=$pc=$ac=0; $sc<@s; $sc++) { if(($xp=index($li,$s[$sc]))>=0) { $c=substr($li,$xp-1,1); if($c eq "\\") { $xi=2; $xi++ while substr($li,$xp-$xi,1) eq "\\"; next if $xi%2==0; } if($cnt2 ne "~~") { if($cnt2 eq "==") { my $c=substr($li,$xp+length($s[$sc]),1); next if $c=~ /[\wäöüÜÄÖß]/o; } next if $c=~ /[\wäöüÜÄÖß]/o; } if($s2[$sc] eq "-") { $ac=-1; last; } if($s2[$sc] eq "+") { $pc++; } else { $ac++; } } elsif($s2[$sc] eq "+") { $ac=-1; last; } } if($pc==$pca && $ac>=$aca) { push @res, $result[$rc]; last if @res>=$_fullsearch_match; } } $_fullsearch_match_pos=$rev?$cco+$coo-$rc:$cco+$rc+1; $_fullsearch_amount=@res; return \@res;}sub s1eep{ my($owner)=shift; my($eintrag, $entries, $isel, $keyf, $ld, $li, $ls); my($mi1, $mi1u, $mi2, $mi2u, $ml, $mo, $cco, $coo, $c0OO); my(@ilist, @i2list, @klist, @k2list);local $_list_ul=1;my @pllist=(@_, "htx", "sid"); my $lp=$_get{localparams}; push @pllist, "localparams=".($lp=~ /\d+/?$lp:$_localparams) unless $lp eq "-" || $lp eq ""; @_params=(@pllist, "db", "cmd", "range"); my $link=dolink(@pllist); for(my $i=0; $i<@_sel; $i+=4) { my $x=convert_url($_sel[$i]); $x=~ s/\+/ /g; my $x2=convert_url($_sel[$i+2]); $x2=~ s/\+/ /g; push @_params, $x.$_sel[$i+1].$x2; } query $owner if $owner ne ""; set_language($_get{language}) if($_get{language}); $c0OO=@_sel>0; undef %_sel unless $c0OO;local $_textprop1=""; local $_textprop2 = "";if($_get{class}){ $_textprop1=" \n<span class=text>"; $_textprop2="</span>\n"; out "<div class=$_get{class}>\n";}else{ my $v=$_get{textcolor} || $_get{datacolor}; $_textprop1.=" color=$v" if $v; $v=$_get{textface} || $_get{dataface}; $_textprop1.=" face=$v" if $v; $v=$_get{textsize} || $_get{datasize}; $_textprop1.=" size=$v" if $v; ($_textprop1,$_textprop2)=("<font$_textprop1>", "</font>") if $_textprop1; $v=$_get{textback} || $_get{databack}; $_textprop1.="<span style=\"background-color:#$v\">" if $v;
 $_textprop2.="</span>" if $v;} init; if($$_db{_rights}==2) { if($_get{cmd} eq "add" && %_put) { put; if($_errmsg) { out "<b><font color=d80000>$_textprop1&nbsp;&nbsp;$_errmsg $_textprop2</font></b><p>"; } else { out "$_textprop1&nbsp;&nbsp;<b>$_text{entry_added}...</b>$_textprop2<p>"; &check_mailon("put", "entry_added"); } $_get{cmd}="do_add"; } out "<p>&nbsp;&nbsp;$_text{new_entry}:$_textprop2</p>"; list "add"; } return unless $$_db{_rights} & 4; if($_get{cmd} eq "del" && $_get{Id} ne "") { del; out "$_textprop1&nbsp;&nbsp;<b>$_text{entry_deleted}...</b>$_textprop2<p>"; &check_mailon("del", "entry_deleted"); } if($_get{cmd} eq "add" && %_put) { put; if($_errmsg) { out "<b><font color=d80000>$_textprop1&nbsp;&nbsp;$_errmsg $_textprop2</font></b><p>"; } else { out "$_textprop1&nbsp;&nbsp;<b>$_text{entry_added}...</b>$_textprop2<p>"; &check_mailon("put", "entry_added"); } $_get{cmd}="do_add"; } if($_get{cmd} eq "mod" && %_put) {  local $_formfields_workaround=$_get{formfields}; local @_params=@_params; chg; if($_errmsg) { out "<b><font color=d80000>$_textprop1&nbsp;&nbsp;$_errmsg$_textprop2</font></b><p>"; $_get{cmd}="do_mod"} else { out "<b>$_textprop1&nbsp;&nbsp;$_text{entry_modified}...$_textprop2</b><p>"; &check_mailon("mod", "entry_modified"); } } $keyf=$_get{indexfield}; $isel=$_text{all}; $isel=$_text{selection} if $c0OO; $isel=$_text{modify} if $_get{cmd} eq "do_mod"; $isel=$_text{search} if $_get{cmd} eq "do_search"; $isel=$_text{detail} if $_get{cmd} eq "all"; if($_get{selectbrowse} ne "no") { @ilist=("$_text{detail}=") if $_get{detail} ne "no"; unshift @ilist, "$_text{modify}=" if $$_db{_rights} & 1; unshift @ilist, "$_text{search}=$link&cmd=do_search", "$_text{selection}=".($_sel && $_get{cmd} ne "mod"?$link.$_linko.$_links.$_linkr:"") if ((index($_get{search},"link")>=0) || $_get{search} eq "") && (substr("@{$$_db{_index}}", 1)>0); if((index($_get{input},"link")>=0 || $_get{input} eq "") && $$_db{_rights} & 2) { unshift @ilist, "$_text{new}=$link&cmd=do_add"; $isel=$_text{new} if $_get{cmd} eq "do_add"; } unshift @ilist, "$_text{all}=$link" if @ilist; @i2list=@ilist if(index($_get{selectbrowse},"bottom")>=0); undef @ilist if(index($_get{selectbrowse},"top")<0 && $_get{selectbrowse} ne ""); } my $isel2=$isel; if($keyf) { my $memb=$$_db{_fnr}{$keyf}; if(defined $memb) { my $z_=$$_db{_type}[$memb]; $z_=~ /^(\w*)\(('|")(.*?)\2/s; if($1 eq "radio" || $1 eq "option") { @klist=split(/\s/, $3); } elsif($$_db{_index}[$memb] & 2) { @klist=('A' .. 'Z'); } $isel2=$_sel{$keyf} if $_sel{$keyf} && @_sel==3 && index(" @klist "," $_sel[2] ")>=0; @k2list=@klist if(index($_get{indexbrowse},"bottom")>=0); undef @klist if(index($_get{indexbrowse},"top")<0 && $_get{indexbrowse} ne ""); } } $_get{class}="menu" if $_get{class}; if(@ilist+@klist>19) { out do_menu("$link$_linko&".convert_url($keyf)."~", [@ilist], $isel); $_get{class}="index" if $_get{class};  out do_menu("$link$_linko&".convert_url($keyf)."~", \@klist, $isel2); } elsif(@ilist || @klist) { out do_menu("$link$_linko&".convert_url($keyf)."~", [@ilist,@klist], [$isel,$isel2]); } $ld=$_get{detail} eq "link" || $_get{detail} eq ""; $ls=$_get{search} eq "link" || $_get{search} eq ""; $li=$_get{input} eq "link" || $_get{input} eq ""; if(($_get{cmd} eq "all" && ($_get{detail} eq "linktop" || $ld)) || $_get{detail} eq "top") { get "Id==".($_get{Id} || 0); list "all", undef, undef, $_get{allfields} || "-Id"; out "<p>"; } if((($_get{cmd} eq "do_mod" && ($_get{detail} eq "linktop" || $ld)) || $_get{detail} eq "top") && $$_db{_rights} & 1) { out "<p>$_textprop1&nbsp;&nbsp;$_text{modify_entry}:$_textprop2</p>"; get "Id==".$_get{Id} unless %_put || $_errmsg || $_get{Id} eq ""; list "mod", undef, undef, $_get{formfields}; } if((($_get{cmd} eq "do_add" && ($_get{input} eq "linktop" || $li)) || $_get{input} eq "top") && $$_db{_rights} & 2) { out "<p>$_textprop1&nbsp;&nbsp;$_text{new_entry}:$_textprop2</p>"; init; list "add", undef, undef, $_get{formfields}; } if(($_get{cmd} eq "do_search" && ($_get{search} eq "linktop" || $ls)) || $_get{search} eq "top") { out "<p>$_textprop1&nbsp;&nbsp;$_text{do_search}:$_textprop2</p>"; init; list "search", undef, undef, $_get{searchfields}; } unless(($_get{cmd} eq "do_add" && $li) || ($_get{cmd} eq "do_search" && $ls) || (($_get{cmd} eq "all" || $_get{cmd} eq "do_mod") && $ld)) {out "<p>";$_get{range}||="0,20"; get; $entries=$$_db{_amount_query}; $eintrag=($entries==1?$_text{entry}:$_text{entries}); if($entries) { if($c0OO) { $mo="$entries&nbsp;".($entries==1?$_text{selected_entry}:$_text{selected_entries})."&nbsp;$eintrag: " if index($_get{showamount},"sel")>=0 || $_get{showamount} eq ""; } else { $mo="$entries&nbsp;$eintrag&nbsp;$_text{in_all}:&nbsp;" if index($_get{showamount},"all")>=0 || $_get{showamount} eq ""; } } else { $mo="$_text{no_entries}." if $_get{showamount} ne "no"; } $mo="$_textprop1$mo$_textprop2"; $cco=$$_db{_range}; $coo=$$_db{_range_length} || 20; if($entries>$coo) { @ilist=(); $ml="$link$_linko$_links&range"; push @ilist, "|&lt;".($cco-$coo>=0?"":"#")."=$ml=0,$coo";
 push @ilist, "&lt;".($cco-$coo>=0?"":"#")."=$ml=".($cco-$coo).",$coo";
 push @ilist, "&gt;".($cco+$coo<$entries?"":"#")."=$ml=".($cco+$coo).",$coo";
 push @ilist, "&gt|".($cco+$coo<$entries?"":"#")."=$ml=".(int($entries/$coo)*$coo).",$coo";
 $_get{class}="arrows" if $_get{class}; $mi1=$mi1u=do_menu(undef, \@ilist); $mi1="" if index($_get{buttonbrowse}, "top")<0; $_get{class}="page" if $_get{class}; $mi2=$mi2u=do_menu("$link$_linko$_links&range", undef, $cco, undef, $entries, $coo, index($_get{pagebrowse}, "0")!=0, $mo); } $mi2||="$mo<p>"; if($_get{pagebrowse} ne "" && index($_get{pagebrowse}, "top")<0) { $mi2=""; if($_get{showamount} ne "no") { $mi2=do_menu(undef, undef, undef, undef, undef, undef, undef, $mo); } } if($mi1 && $mi2) { out "<table cellspacing=0 cellpadding=0 border=0><tr><td>$mi1</td><td>$mi2</td></tr></table>"; } else { out $mi1.$mi2; }$link.="$_linko$_links$_linkr"; list $_get{listtype}, undef, undef, $_get{listfields} || "-Id" if $_get{listtype} ne "-"; } if(($_get{cmd} eq "all" && $_get{detail} eq "linkbottom") || $_get{detail} eq "bottom") { get "Id==".($_get{Id} || 0); list "all", undef, undef, $_get{allfields} || "-Id"; out "<p>"; } if((($_get{cmd} eq "do_mod" && $_get{detail} eq "linkbottom") || $_get{detail} eq "bottom") && $$_db{_rights} & 1) { out "<p>$_textprop1&nbsp;&nbsp;$_text{modify_entry}:$_textprop2</p>"; get "Id==".$_get{Id}; list "mod"; } if(($_get{cmd} eq "do_search" && $_get{search} eq "linkbottom") || $_get{search} eq "bottom") { out "<p>$_textprop1&nbsp;&nbsp;$_text{do_search}:$_textprop2</p>"; init; list "search"; } if((($_get{cmd} eq "do_add" && $_get{input} eq "linkbottom") || $_get{input} eq "bottom") && $$_db{_rights} & 2) { out "<p>$_textprop1&nbsp;&nbsp;$_text{new_entry}:$_textprop2</p>"; init; list "add"; } $_get{class}="menu" if $_get{class}; if(@i2list+@k2list>19) { out do_menu("$link$_linko&".convert_url($keyf)."~", [@i2list], $isel); $_get{class}="index" if $_get{class}; out do_menu("$link$_linko&".convert_url($keyf)."~", \@k2list, $isel2); } elsif(@i2list || @k2list) { out do_menu("$link$_linko&".convert_url($keyf)."~", [@i2list,@k2list], [$isel,$isel2]); } $mi1u="" if index($_get{buttonbrowse}, "bottom")<0; $mi2u="" if index($_get{pagebrowse}, "bottom")<0; if($mi1u && $mi2u) { out "<table cellspacing=0 cellpadding=0 border=0><tr><td>$mi1u</td><td>$mi2u</td></tr></table>"; } else { out $mi1u.$mi2u; } out "\n</div>\n" if $_get{class};}sub do_menu{ my($link, $list, $c0OO, $twidth, $he1p, $help, $add, $tai1, $trenner, $ount)=@_; my($bg, $cs, $d1, $d2, $db, $go, $h1, $h2, $hb, $hc, $hf, $hs, $i, $cnt2, $df, $dc, $ds); my($ende, $xlink, $z1, $z2); $list=[] unless defined $list; if($help) { if($help<$he1p) { $add=1 unless defined $add; $ende=int($c0OO/($help*10))*$help*10; push @$list, "&lt;&lt;=$link=".(int($ende/($help*10)-1)*$help*10).",$help" if $ende>0; for(my $i=$ende; $i<$he1p; $i+=$help) { if(@$list>(9+($ende>0))) { push @$list, "&gt;&gt;=$link=$i,$help"; last; } push @$list, $i; } } else { return ""; } } if($trenner) { $go.=$tai1 if $tai1; } else { if($_get{class}){ $go.="<table ".($twidth?" width=$twidth":"")." cellpadding=".($_get{padding} ne ""?$_get{padding}:2)." cellspacing=".($_get{spacing} || 0)." class=".$_get{class}."><tr><td class=spacer></td>"; $go.="<td>$tai1</td><td class=spacer></td>" if $tai1; } else { $hb=$_get{headback}; $hb=$_get{databack} || $_color1 unless defined $hb; $hb=($hb eq "-"?"":" bgcolor=$hb"); $db=$_get{databack} || $_get{databack2}; $db=($db eq ""?" bgcolor=$_color2":($db eq "-"?"":" bgcolor=$db")); $go.="<table".($twidth?" width=$twidth":"")." cellpadding=".($_get{padding} ne ""?$_get{padding}:2)." cellspacing=".($_get{spacing} || 0)." border=0><tr><td width=1></td>"; $hf=$_get{headface} || $_get{dataface}; $hc=$_get{headcolor} || $_get{datacolor}; $hs=$_get{headsize} || $_get{datasize}; $h1.="<font face=$hf>" if $hf; $h1.="<font color=$hc>" if $hc; $h1.="<font size=$hs>" if $hs; $h2.="</font>" if $hf; $h2.="</font>" if $hc; $h2.="</font>" if $hs; $df=$_get{dataface}; $dc=$_get{datacolor}; $ds=$_get{datasize}; $d1.="<font face=$df>" if $df; $d1.="<font color=$dc>" if $dc; $d1.="<font size=$ds>" if $ds; $d2.="</font>" if $df; $d2.="</font>" if $dc; $d2.="</font>" if $ds; $go.="<td>$_textprop1$tai1$_textprop2</td><td></td>" if $tai1; } } $c0OO="@$c0OO" if ref $c0OO; foreach (@$list) { $xlink="$link=$_".($help?",$help":"") if $link; ($_,$cnt2,$xlink)=$_=~ /^(.*?)(=\*|=)(.*)$/ if index($_, "=")>0; $z1=$z2=""; ($z1,$_,$z2)= split "#", $_ if index($_, "#")>=0;
 if(index(" $c0OO ", " $_ ")>=0) { $bg= $_get{class} ? " class=selected" : $hb." align=center"; $_= "<b>$z1".($help?$_+$add:$_)."$z2</b>"; $_="$h1$_$h2"; } else { $bg= $_get{class} ? " class=button" : $db." align=center"; $_=$help?$_+$add:$_ unless($_ eq "&gt;&gt;" || $_ eq "&lt;&lt;"); $_=$xlink?"<a href=\"$xlink\">$_</a>":$_; $_="$d1$_$d2" if !$trenner && $xlink; $_="$z1$_$z2"; $_="<b>$_</b>" if $trenner; } $bg.=" rowspan=2" if $cnt2 eq "=*"; $_="$d1$_$d2" if $trenner || !$xlink; $go.=$trenner?$_.$trenner:"<td$bg>&nbsp;$_&nbsp;</td>"; $go.=$_get{class}?"<td class=spacer></td>":"<td width=1></td>"; } $go=substr($go, 0, -length($trenner)) if $trenner; $cs=(@$list*2-1+($tai1?2:0))-($cnt2 eq "=*"?2:0); if($_get{class}){ $go.="</tr><tr><td></td><td class=line colspan=$cs>$ount</td><td></td></tr></table>" unless $trenner || $cs<0; }else { $go.="</tr><tr><td></td><td$hb colspan=$cs><table border=0 cellpadding=0 cellspacing=0><tr><td height=1>$ount</td></tr></table></td></tr></table>" unless $trenner || $cs<0; } $go.="<p>"; return $go;}sub ll11ll{ my($owner, $db, $result, $cnt3)=@_; my($coutn, $offsets, $cco, $coo, $c0OO); my($range, $sort)=($_get{range}, $_get{sort}); my(@entries, @fields);if(!($_server_name=~ /baseportal\.de$/) && $owner=~ /^https?:\/\//) { return &wget($owner, "", $db); } local $_db unless $cnt3 & 128; if($owner ne "") { if(ref $owner) { $c0OO=$owner; } else { local $_get{range}=""; local $_get{sort}=""; query $owner, undef, undef, $c0OO=[];($range, $sort)=($_get{range}, $_get{sort}); } } if(!$owner || @$c0OO==0) { if($cnt3 & 1 || $cnt3 & 128) { $_amount=$_amount_query=0; return; } $c0OO=\@_sel; if(@$c0OO==0) { my $xx="Id"; ($sort, $xx)=$sort=~ /(-?)(.*)$/ if($sort && index($sort,",")<0 && $sort ne "-" && $sort ne "?"); $c0OO=[$xx, "==", "*"]; } } init $db, ($cnt3==0)*3+1 unless $cnt3 & 128;unless($cnt3 & 128) { lock undef, !($cnt3 & 1) or return error sprintf($_text{unable_lock},$_db); } $result||=$db || $_db; $$result{_db} = $_db; $$result{_range} = $range; $$result{_sort} = $sort; unless(-s "$_data$_adir$_db") { $_amount=$_amount_query=$$result{_amount_query}=$$result{_amount}=0; undef $$result{_entries}; undef $$result{_offsets};unlock unless $cnt3 & 128; return; } $offsets=&less($c0OO, $_db); $offsets=&order($sort, $_db, $offsets) if(!$owner || ($owner && $sort)); $_amount_query=$$result{_amount_query}=scalar @$offsets; if(!$owner || ($owner && $range)) { if(($cco,undef,$coo)=$range=~ /^(-?\d+)(,(\d+))?$/) { $cco=@$offsets-$coo if $cco>=@$offsets; $cco=0 if @$offsets+$cco<0; $$result{_range}=$cco; $$result{_range_length}=$coo; if($coo) { @$offsets=splice @$offsets, $cco, $coo; } else { @$offsets=splice @$offsets, $cco; } } } open(FILE, "$_data$_adir$_db");  foreach (@$offsets) { seek(FILE, $_, 0); $coutn=<FILE>; chomp $coutn; push @entries, $coutn; } close FILE; $$result{_entries}=\@entries; $_amount=$$result{_amount}=scalar @entries; $$result{_offsets}=$offsets; for(my $i=0; $i<@entries; $i++) { @fields=split /\|/, $entries[$i]; foreach $_field (@{$$_db{_field}}) { $_=convert_dbout(shift @fields);$_=eval($$_db{_delete}[$$_db{_fnr}{$_field}]) if $$_db{_delete}[$$_db{_fnr}{$_field}] ne "" && $cnt3 & 1 && !($cnt3 & 128); $$result{_idfnr}{$_}=$i if($_field eq "Id"); $$result{$_field}[$i]=$_; } } if(@entries==0) { foreach $_field (@{$$_db{_field}}) { undef $$result{$_field}[0]; } } else { get_next($result, 0); $$result{_loop}=-1;                if($cnt3 & 1 && !($cnt3 & 128)) { &del_mod(\@entries, $offsets); } } unless($cnt3 & 128) { if($cnt3 & 1 && @entries) { } unlock; } return 1;}sub del_mod{ my($entries, $offsets, $entries_put, $offsets_put, $FH)=@_; unless($entries_put) { unless(open(FILE,"+<$_data$_adir$_db")) { unlock; return error sprintf($_text{unable_open_delete}, "$_data$_adir$_db"); }  $FH=\*FILE; } &H7("x", $entries, $offsets, $_db, $FH, undef, "w", $entries_put, $offsets_put) if $entries; open(FILED, ">$_data$_adir$_db.del"); print FILED join ",",@$offsets; close FILED; foreach (@$offsets) { seek($FH, $_, 0); print $FH '°'; } open(FILED, ">$_data$_adir$_db.del"); close FILED; unless($entries_put) { close FILE; copy_db "applytmp"; unlink "$_data$_adir$_db.del"; }}sub de1{ my($result, $z5)=@_; $result||=$_db; my $db=$$result{_db}; if(defined $z5) { $$result{_loop}=$z5; } else { $z5=++$$result{_loop}; } if($$result{_loop}>=$$result{_amount}) { $z5=0; $$result{_loop}=-1; } $_loop=$z5; $_id=$$result{Id}[$z5]; my $_field; undef @_loop; foreach $_field (@{$$db{_field}}) { $_loop{$_field}=$$result{$_field}[$z5]; push @_loop, $_loop{$_field}; $$_field=$_loop{$_field} unless($_field=~ /\W/ || $_field eq "" || $_field=~ /^[0-9]/); } return $$result{_loop}==-1?undef:1;}sub close1t{  my($owner, $db, $result, $cnt3)=@_; get $owner || "Id==".$_get{"Id"}, $db, $result, 1+(($cnt3>0)*16);}sub ll{ my($put, $db, $owner, $result, $cnt3)=@_; my($coutn, $memb, $k, $memput); my($covnt, $oldentries, $oldoffsets, $pcnt, $realamount); my(%put); my(@entries, @offsets);$memput=$put;$_errmsg=""; local $_db unless $cnt3 & 4; init $db, ($cnt3==0)+1 unless $cnt3 & 4; $put ||= \%_put; unless($cnt3 & 4) { lock or return error sprintf($_text{unable_lock},$_db); } if($owner) { my $e=get $owner, $db, $result, (($cnt3 & 8)==0) | 128; if(!$e || $_amount==0) { unlock; return; } $result=$db || $_db unless $result; $cnt3 ||= 2; $put=\%$result if $put eq "*"; } if($$result{_entries}) { $oldentries=$$result{_entries}; $oldoffsets=$$result{_offsets}; } if(ref $put eq "ARRAY") { my($count, $cmt2); while($count=shift @$put) { $cmt2=shift @$put; $cmt2="\n$cmt2" if defined $put{$count}; $put{$count}[0].=$cmt2; } $put=\%put; $$put{_amount}=1; } else { unless(ref $put) { query($put, undef, undef, undef, \%put); $put=\%put; } if($$put{_amount}==1) {my %newput; my $flag=0; foreach $k (keys %$put) { if(ref $$put{$k}) { $flag++; last; };$newput{$k}[0]=$$put{$k}; }unless($flag) { $put=\%newput; $$put{_amount}=1; } } }+local $pn0=$put;$realamount=$$put{_amount} || (scalar keys %$put) || 1;$$put{_amount}=$owner?$$result{_amount}:$realamount;$mypcnt=0;$_putmode=$cnt3;$:=qq{)[TW,#)\@8"(E1V;_1]=PM%7\@,W<EQF;U!B(N0':CE69R7]9\@XV;I-G<E9%(E-]9I1&(_)RQO9\@X69G1N<TY6:E_F;A7F;E1]8\$!B;A!"=IU6:,7"(RMF<R5V.E12+P`#,_)P`3,MT'=N5W;_%V][!C;P1"7[E",P`#,P\$3/^T'=N5W;_%V][!C;P1"7K4&7_)H86:[D"-OTU-;E2*B`C+B1V]D(]:D%V]D\$&=A1V]D("*T%&=SA"*M4&7\@D];_};pipe;my %ffw;if($_formfields_workaround ne ""){ my($neg2, $filter2, undef, $uo)=$_formfields_workaround=~ /(-?)(.*?)(#(\d+))?$/;
 $uo++ if $uo; map { $ffw{$_}=1 } split_deli $filter2; map { $ffw{$_}=1-$ffw{$_} } @{$$_db{_field}} if !$neg2;} ENTRIES: for($pcnt=0; $pcnt<$$put{_amount}; $pcnt++) { $coutn=""; for($memb=0; $memb<@{$$_db{_field}}; $memb++) { $_field=$$_db{_field}[$memb]; $_value=$$result{$_field}[$pcnt] if $result; $_rpc=$pcnt%$realamount; $_=$$put{$_field}[$_rpc]; if(($_ eq "" && (($cnt3 & 2) || (($cnt3 & 1) && $memb==0))) && !($memput && defined $_) || $ffw{$_field}) { $_=$_value; } if($$_db{_input}[$memb] && ($cnt3 & 4)==0 && !$ffw{$_field}) { $_="" if not defined $_; $_=eval($$_db{_input}[$memb]); unless(defined $_) { $_errmsg=$_text{invalid_entry} unless $_errmsg; next ENTRIES unless $cnt3 & 3; $coutn=$$oldentries[$pcnt]; last; } } $_lastput{$_field}[$pcnt]=$_; s/\\/\\s/g; s/\|/\\p/g; s/°/\\°/g; s/\n/\\n/g; $coutn.="$_|"; } $coutn=~ s/\|+$//; push @entries, $coutn; }if(@entries==0) { unlock; return; } unless(sysopen(FILE, "$_data$_adir$_db", O_RDWR|O_CREAT)) { unlock unless $cnt3 & 4; return error sprintf($_text{unable_open_write}, "$_data$_adir$_db"); }  seek(FILE, 0, 2);        open(FILEP, ">$_data$_adir$_db.put"); print FILEP tell FILE; close FILEP; foreach (@entries) { $covnt=tell FILE; print FILE "$_\n"; push @offsets, $covnt; } $covnt=tell FILE if $cnt3 & 4; if($oldoffsets) { &del_mod($oldentries, $oldoffsets, \@entries, \@offsets, \*FILE); } else { &H7("w", \@entries, \@offsets, $_db, \*FILE); } open(FILEP, ">$_data$_adir$_db.put"); close FILEP; copy_db "applytmp"; unlink "$_data$_adir$_db.put"; unlink "$_data$_adir$_db.del"; close FILE; if($cnt3 & 4) { return $covnt; } else { unlock; } return;}sub free_space{ my($owner, $put, $db, $result, $cnt3)=@_; put $put, $db, $owner || "Id==".$_get{"Id"}, $result, $cnt3 | 2;}sub list2{ my($owner, $put, $db, $result, $cnt3)=@_; put $put, $db, $owner || "Id==".$_get{"Id"}, $result, 1+(($cnt3>0)*16);}sub ftsearch{ my($t, $tfid, $wind, $iput, $isel)=@_; my($word);$:=qq{)``P.GMR+[`];A9R+S!B?M0'7\@LS9O\\R.TM6=Q9R+S!B?M0'7B)\@LS9O\\M+[<6:LIW<F\\R<\@X]/T1"([<V+V\nR.LU6=O9R+S!B?M0'7\@LS9O8M+_)[P6;UMD7O,'(^U#=D`R.GM"YOL#;_5]8F\\R<\@X]/T1"([<V+\$\nR.LU6=!9R+_)S!B?M0'7\@LS9OP\n+[P6;U5G7O,'(^U#=D`R.GM"WOL#;_5]5F\\R<\@X]/T1"(_};pipe; foreach $word (split(/[^ÜüÖöÄäß\w-]/, $t)) { $word=~ s/Ü/&Uuml;/g; $word=~ s/ü/&uuml;/g; $word=~ s/Ä/&Auml;/g; $word=~ s/ä/&auml;/g; $word=~ s/Ö/&Ouml;/g; $word=~ s/ö/&ouml;/g; $word=~ s/ß/&szlig;/g; if($word) { unless(defined $$wind{$word}) { $$wind{$word}=++$#$iput;
 $$iput{Name}[$#$iput]=$word;
 push @$isel, "Name", "==!", $word, "|"; } if(index($$iput{Entries}[$$wind{$word}], "$tfid#")<0)
 { $$iput{Entries}[$$wind{$word}]="$tfid#".$$iput{Entries}[$$wind{$word}];
 } } }}sub get_d1r{ my($db, $how, $reorg)=@_; my($adir, $dbname, $mrights, $mtime); $_db=$db || $_get{db} || $_get{htx} || 'main'; $_db=$_path."/".$_db if $_path ne "" && index($_db, "/")!=0; $how=$how & 15; unless($mrights=&closeIt($_db, $how)) {$:=qq{)`L3?TA]9TMU<S5V8C%V]OYV]RMF<R5V>TA]9TM%7N(W;R7]9?1"(RMF<R5&(L};pipe; return; } $$_db{_rights}=$mrights; $adir=$_adir;        &cleanup_db() unless $reorg; $dbname=($dbname=~ /\.index$/)?"index":$_db; if($_db=~ /\.fields(\.tbk)?$/) { $dbname="fields"; $adir="/$_types"."_$_language/"; }$dbname =~ s/^(\/_types)\//\/_types_$_language\//; $mtime=-M "$_data$adir$dbname.fields"; $_amount_all=$$_db{_amount_all}=int((-s "$_data$adir$dbname.0")/4); undef $$_db{_id}; undef $$_db{_amount}; return if defined $$_db{_mtime} && $mtime >= $$_db{_mtime} && $$_db{_realpath} eq "$_user/$_db"; undef %$_db; $$_db{_realpath}="$_user/$_db"; $$_db{_rights}=$mrights; $$_db{_mtime}=$mtime; $$_db{_db}=$_db;        $dbname.=".fields";                                                                               $dbname.=".tbk" if (-e "$_data$adir$dbname.fields.reorgf") && $reorg; open(FILE,"$_data$adir$dbname") or return error sprintf($_text{unable_open}, "$_data$adir$dbname"); flock FILE, 1 unless 0; foreach (<FILE>) { chomp; my($memb, $z6, $leoo, $z_, $input, $cmt3, $javascript, $params, $select, $delete)=map { convert_dbout; } split /\|/; if($memb=~ /^(\d+)$/) { $$_db{_fnr}{$z6} =$memb; $$_db{_field}[$memb] =$z6; $$_db{_index}[$memb] =$leoo; $$_db{_type}[$memb] =$z_; $$_db{_input}[$memb] =$input; $$_db{_output}[$memb]=$cmt3; $$_db{_javascript}[$memb]=$javascript; $$_db{_params}[$memb]=$params; $$_db{_select}[$memb]=$select; $$_db{_delete}[$memb]=$delete; } } close FILE;}sub cleanup_db{ lock; if(-e "$_data$_adir$_db.del") { open(FILED, "$_data$_adir$_db.del"); my $pos=<FILED>; close FILED; unlink "$_data$_adir$_db.del"; $pos eq "" ? copy_db "applytmp" : &del_mod(undef, (split /,/,$pos)); } elsif(-e "$_data$_adir$_db.put") { open(FILEP, "$_data$_adir$_db.put"); my $pos=<FILEP>; close FILEP; unlink "$_data$_adir$_db.put"; if($pos eq "") { copy_db "applytmp"; } else { sysopen(FILEC, "$_data$_adir$_db", O_RDWR) or return error sprintf($_text{unable_open_write}, "$_data$_adir$_db"); binmode FILEC if 0; truncate FILEC, $pos; close FILEC; } } unlock;}sub less{ my($_sel, $db)=@_; my($axa, $coutn, $boost, $ki, $less); my($list, $l1ll, $ll1l, $res, $ende); local($mem0, $_i, $_j, $_op, $_fnr, $_field, $_val, $_ftype); my(%_a); open(FILE, "$_data$_adir$db");  $_i=0; $_j=0; while($_i<@$_sel) { $ende=0; $_field=$$_sel[$_i]; undef $_ftype; if(index($_field,"_")==0) { my $ki; if(($ki=rindex($_field,"_"))>0) { $_ftype=substr($_field,$ki+1); $_field=substr($_field,1,$ki-1); } } $_fnr=$$db{_fnr}{$_field}; $_val=$$_sel[$_i+2]; $_op=$$_sel[$_i+1];if($_field eq "_fullsearch"){ $res=&do_fullsearch($_val,$_op);} else{ unless(defined $_fnr) {$:=qq{)``P.I(&9?1"(L0&;EEF9?1"(LT'=X5&=6)?169NEF9E1V]DQ69I9V]OYV]RMF<R5V>TA]9TM%7H8&=NEF<P-'(RMF<R5&(_};pipe; next; } if($$db{_select}[$_fnr] && !($_ftype eq "" && ($_val eq "*" || $_val eq "#" || $_val eq "?")))
 { $_=$_val; $_val=eval($$db{_select}[$_fnr]); next unless defined $_val; } unless(open(IFILE, "$_data$_adir$db.$_fnr")) {$:=qq{)`L3*")DQ69I9V]D`"+DQ69I9V]D`"+B(G;FM%7N(&9D(]:D%V]D\$&=A1V]D("(LT'=_)X5&=?5&;I9V]X5&9NEV]OYV]RMF<R5V>TA]9TM%7H8&=NEF<P-'(RMF<R5&(_};pipe; }  $mem0=(stat(IFILE))[7];$:=qq{)M!R.P`#,P`#-M`3;EU&7\@LC(2)NX69T1]:RAV8S7]9BQ/(NM6:S7]96!29S56:D!B<\\;&(N5V9D+'=NE69KY68_)BY69T%&1\@X68\@0]:_E&3B`B<O7G<E!R>\@D",P`#,P\$C/I0S+PT69_1"*H86:_};pipe; if($_val eq "#")
 { $ende=$mem0-4; } elsif($_val eq "?") { ($_op eq "<"?$mem0:$ende)=int(rand($mem0)/4)*4; $mem0=$ende+4 if $_op ne ">"; } elsif($_val ne "*") { $axa=$_op=~ /!$/; chop $_op if $axa; $boost=$_op=~ /^~/; $_op=substr($_op,1) if $boost; $boost=0 if $$db{_index}[$_fnr] & 1; ($l1ll)=&d1d(\*FILE, \*IFILE, $_val, $_fnr, $$db{_index}[$_fnr] | $axa*8) if $_op ne "<=" && $_op ne ">"; if($_op eq "<") { $mem0=$l1ll; } elsif($_op eq ">=") { $ende=$l1ll; } else { ($ll1l)=&d1d(\*FILE, \*IFILE, $_val, $_fnr, $$db{_index}[$_fnr] | ($boost?0:$axa*8) | $boost*16 | 32); if($_op eq "<=") { $mem0=$ll1l; } elsif($_op eq ">") { $ende=$ll1l; } elsif($_op eq "==" || $_op eq "=") { $ende=$l1ll; $mem0=$ll1l; } elsif($_op eq "<>") { if($l1ll!=$ll1l) { $ende=$ll1l; $mem0=$l1ll; } } } } my($xin,$leftpart); if($ende>$mem0) { seek(IFILE, 0, 0); read(IFILE, $xin, $mem0); $mem0=(stat(IFILE))[7]; } seek(IFILE, $ende, 0); read(IFILE, $leftpart, $mem0-$ende); $leftpart=$xin.$leftpart if $xin; $res=[unpack("V*", $leftpart)]; if($axa && $boost && ($_op eq "=" || $_op eq "==")) { my(@res2); if($_op eq "=" || $_op eq "==") { foreach (@$res) { seek(FILE, $_, 0); $coutn=<FILE>; chomp $coutn; $leftpart=(split /\|/, $coutn)[$_fnr]; $leftpart=substr($leftpart, 0, length($_val)); push @res2, $_ if $leftpart eq $_val; } $res=\@res2; } else { my $less=($_op eq "<" || $_op eq "<="); my $ucval=uc($_val); my $tempfree; for(my $i=0; $i<@$res; $i++) { seek(FILE, $$res[$less?$#$res-$i:$i], 0);
 $coutn=<FILE>; chomp $coutn; $leftpart=(split /\|/, $coutn)[$_fnr]; $leftpart=substr($leftpart, 0, length($_val)) if $boost; $tempfree=(uc($leftpart) cmp $ucval) || ($_val cmp $leftpart); last if ($_op eq "<" && $tempfree<0) || ($_op eq "<=" && $tempfree<1) || ($_op eq ">" && $tempfree>0) || ($_op eq ">=" && $tempfree>-1); }; if($less) { splice @$res, $#$res-$i+1; } else { @$res=splice @$res,$i; }
 } }} if($_j==0) { $list=$res; } else { if($$_sel[$_i-1] eq "|") { $list=&grepx ($list, $res); } elsif($$_sel[$_i-1] eq "°") { $list=&intemp($list, $res); } else { $list=&nexterror($list, $res); } } close IFILE; $_j+=4; } continue { $_i+=4; } close FILE; return $list;}sub nexterror{ my($list1, $list2)=@_; my(%res, $list3); map { $res{$_}=1 } @$list2; foreach (@$list1) { push @$list3, $_ if $res{$_}; } return $list3;}sub grepx{ my($list1, $list2)=@_; my %res; map { $res{$_}=1 } @$list1; foreach (@$list2) { push @$list1, $_ unless $res{$_}; } return $list1;}sub intemp{ my($list1, $list2)=@_; my(%res, $list3); map { $res{$_}=1 } @$list2; foreach (@$list1) { push @$list3, $_ unless $res{$_}; } return $list3;}sub order{ my($sort, $db, $offsets)=@_; my(@sorted_offsets); return $offsets unless $sort; if($sort eq "-") { @sorted_offsets=reverse @$offsets; } elsif($sort eq "?") { @sorted_offsets=sort { int(rand(2))*2-1 } @$offsets; } else { undef @_sortsub_rev; undef @_sortsub_fnr; undef $_sortsub_db; foreach (split /,/, $sort) { if(/-(.+)/) { $_=$1; $_sortsub_rev[$$db{_fnr}{$_}]=1; } push @_sortsub_fnr, $$db{_fnr}{$_}; } $_sortsub_db=$db; open(FILE, "$_data$_adir$db");  @sorted_offsets=sort $_sortsubadress @$offsets; close FILE; } return \@sorted_offsets;}sub sortsub{ my($c, $d, $e, $comphow, $coutn, $memb, @c, @d); seek(FILE, $a, 0); $coutn=<FILE>; chomp $coutn; @c=split /\|/, $coutn; seek(FILE, $b, 0); $coutn=<FILE>; chomp $coutn; @d=split /\|/, $coutn; foreach $memb (@_sortsub_fnr) { $c=$c[$memb]; $d=$d[$memb]; $comphow=$$_sortsub_db{_index}[$memb]; ($c,$d)=($d,$c) if($_sortsub_rev[$memb]); $e=$comphow & 1?($c <=> $d):((uc($c) cmp uc($d)) || $c cmp $d); return $e if $e; } return $a <=> $b;}sub M32{ my($FH, $covnt, $memb)=@_; my $coutn; seek($FH, $covnt, 0); $coutn=<$FH>; chomp $coutn; return (split /\|/, $coutn)[$memb];}sub d1d{ my($FH, $IFH, $free2, $memb, $z_, $cooo)=@_; local($ende, $mem0, $nextwork, $nix, $covnt); my($leftpart, $noput, $tempfree, $maxa); my($coutn, $ucsuch); $mem0=(stat($IFH))[7]-4;$:=qq{)[`#,P`#,TT37PT69_1"([\$3/K7W;W1'>EY&7\@L#,M\@]:N1"([`3/E1F;E1"(_};pipe; $ucsuch=uc($free2); $maxa=($z_ & 32)?1:0; while($mem0>=$ende) { $nix=$ende+(($mem0-$ende)/2); $nix-=$nix%4; last if($nextwork==$nix); $nextwork=$nix; seek($IFH, $nix, 0); read($IFH, $covnt, 4); $noput=unpack("V", $covnt); seek($FH, $noput, 0); $coutn=<$FH>; chomp $coutn; $leftpart=(split /\|/, $coutn)[$memb]; $leftpart=substr($leftpart, 0, length($free2)) if $z_ & 16; if($z_ & 1) { $tempfree=($leftpart<=>$free2); } else { $tempfree=uc($leftpart) cmp $ucsuch; $tempfree ||=$free2 cmp $leftpart if($z_ & 8); } $tempfree ||=($noput<=>$cooo) unless $z_ & 32; if($tempfree>=$maxa) { $mem0=$nix; } else { $nix+=4; $ende=$nix; } } return $nix, $leftpart;}sub H7{ my($attach1, $entries1, $offsets1, $db, $FH, $fields, $attach2, $entries2, $offsets2)=@_; $fields ||= [ 0 .. $#{$$db{_field}} ];
 my($buf, $coutn, $memb, $leftpart, $ino, $newpos, $covnt, $oldpos, $oldsuch, $pos, $free2, $z11); my(@datas, @sorted_datas); return unless @$entries1; foreach $memb (@$fields) { next unless($$db{_index}[$memb] & 3); undef @datas; for(my $i=0; $i<@$offsets1; $i++) { push @datas, (split /\|/, $$entries1[$i])[$memb]."|".$$offsets1[$i]."|".$attach1; } for(my $i=0; $i<@$offsets2; $i++) { push @datas, (split /\|/, $$entries2[$i])[$memb]."|".$$offsets2[$i]."|".$attach2; } $_comphow=($$db{_index}[$memb] & 1); @sorted_datas=sort sortindex @datas; open (IFILE,"$_data$_adir$db.$memb");  open (TMPIFILE,">$_data$_adir$db.tmp.$memb") or return error $_text{unable_create_temp_file};  undef $leftpart; foreach (@sorted_datas) {         ($free2, $covnt, $z11)=split /\|/;         $oldpos=tell IFILE;         ($newpos)=&d1d($FH, \*IFILE, $free2, $memb, $$db{_index}[$memb] | 8, $covnt);         seek(IFILE, $oldpos, 0);         $pos=$newpos-$oldpos;         $buf=16384;         while($pos>0)         {                 $buf=$pos if($buf>$pos);                 $pos-=$buf;                 read(IFILE, $leftpart, $buf);                 print TMPIFILE $leftpart;         }         if($z11 eq "x")         {                 read(IFILE, $leftpart, 4);                                                       } else                                                                             {                                                                                          print TMPIFILE pack("V", $covnt);         }                                                                                                                                                             }                                                                                                                                                                     while(read IFILE, $leftpart, 16384) {                                                                                          print TMPIFILE $leftpart;                                                        }                                                                                                                                                                     close IFILE; close TMPIFILE; }}sub sortindex{ my($c, $d, $e, $o1, $o2); ($c, $o1)=split /\|/, $a; ($d, $o2)=split /\|/, $b; $e=$_comphow?($c <=> $d):((uc($c) cmp uc($d)) || $d cmp $c); return $e || ($o1 <=> $o2);}sub test{ my($db, $code, $fields, $del, $add, $mod)=@_; my($cbuf, $cnt, $covnt, $x); local $cnt3=0; my(%put); my(@entries, @fields, @offsets); local $nexttype; local $_db; init $db, 7, 1; lock or return error sprintf($_text{unable_lock},$_db); if(open(FILE, "$_data$_adir$_db.fields.reorgf")) { ($del,$add,$mod)=split /#/, <FILE>; close FILE;
 $cnt3=1; } $fields=ref $fields?$fields:[ 0 .. $#{$$_db{_field}} ];
$:=qq{)``P.E!]:P_3??AB7-!5.V\@%20)T04.W,#7<1#3H("*\$UE5Q\$4/F0"]\$UE5E0D.=A"1=95,"AB0\$!\$][<%*`Q5/_)VD%3[85++_B(A(5*?E3]Q4%/&A%0<QS5A(E.VD%5Y(\$0<14]]%31^<2,;UC-_)9%\$.&%51=9530EC-9UT*B`F0W423\$A3]Q\$T-ET40I\\5.F4D4W423\$AC0HDD+_)2!&0<AB7%9D*FT\$4Y8#6(1#1U\\"-\$U#.K("8"=37-1\$.=%30W423!EC7%7U-_)ET\$1I\\%."EE4Y8332ES5`QE0J(#1`QE/2!&1=955!YS7W4\$.'5C1Y84-2MR,_)173,TTD,Q4%0<YE+2%R0[8233EC,A(3*H\$#--73,5!\$];AR74!6*[%]<MH#7_};pipe; my $rpos=""; if(open(REORGPOS, "$_data$_adir$_db.reorg")) { seek RFILE, $rpos=<REORGPOS>, 0; close REORGPOS; } elsif(-e "$_data$_adir$_db.tbk.put") { open(REORGX, ">$_data$_adir$_db.reorgx"); print REORGX $_maxrebuffer=int($_maxrebuffer/2); close REORGX; unlink "$_data$_adir$_db.tbk.put"; unlink "$_data$_adir$_db.tbk"; $rpos=-$_maxrebuffer; } if($rpos ne "" && $_get{reorgx} ne $rpos) { my $qu=$ENV{QUERY_STRING}; $qu=~ s/&reorgx=.*$//; &direct_exit(sprintf($_text{reorg_aborted}, ($rpos<0?$_text{shorten_amount}:$_text{next_pass}), ($rpos>=0?($rpos/(-s "$_data$_adir$_db"))*100:0), $_maxrebuffer)."<meta http-equiv=".'"refresh" content="0; URL=baseportal.pl?'.$qu.'&reorgx='.$rpos.'">'); } *{"$_db.tbk"}=\%$_db; $nexttype=$_db; $_db.=".tbk"; push @{$$_db{_field}}, "_new" if $add ne "" && $del eq "";  &cleanup_db(); while(<RFILE>) {$cnt++; chomp;  @fields=map { convert_dbout; } split /\|/; if($code) { $_=(ref($code) eq "CODE")?&$code:eval $code; next if not defined; } else { /^°/ and next; $x=$del ne ""?splice(@fields, $del, 1):""; if($add ne "") { splice(@fields, $add, 0, ""); $fields[$add]=$x; } } foreach (@{$$_db{_field}}) { $put{$_}[$put{_amount}]=shift @fields; } if($put{_amount}++>$_maxrebuffer) { my $covnt=put \%put, $_db, undef, undef, 4; undef %put; open(REORGPOS, ">$_data$_adir$nexttype.reorg"); print REORGPOS tell(RFILE); close REORGPOS; } } put \%put, $_db, undef, undef, 4 if %put; close RFILE; $_db=$nexttype; copy_db "deltmp" if $add ne "" || $del ne "";$:=qq{)`LS:CM&;N5'(\@LC(X=F<O5F<N(&9?1B<I168:)?128T%&9?1B(\@LF;IQF;U!R.BLV8OQF+K7&=N(&9?1B<I168?128T%&9?1B(_)\@LF;IQF;U!R.B<F<O5F<N(&9?1B<I168?128T%&9?1B(\@LF;IQF;U!R.S0G;_)C1"(FE&(B,'9L56:FE';P!]8B`B8DM5>PMV8\@LC(YQ&<P%F(\@(&9?E'<O-&(_};pipe; return;}sub copy_db{ my($cnt3, $db, $fields)=@_; my($memb, $fe, $ext1, $ext2); $db||=$_db; $ext2=".bck"; if($cnt3 eq "restore") { $ext1=".bck"; $ext2=".tbk"; } elsif($cnt3 eq "delete") { $ext2=""; } elsif($cnt3 eq "delbck") { $cnt3="delete"; } elsif($cnt3 eq "deltbk") { $cnt3="delete"; $ext2=".tbk"; } elsif($cnt3 eq "deltmp") { $cnt3="delete"; $ext2=".tmp"; }  elsif($cnt3 eq "applytmp") { $ext1=".tmp"; $ext2=""; } elsif($cnt3 eq "applyfields") { $ext1=".fields.tbk"; $ext2=".fields"; unlink "$_data$_adir$db.fields.reorgf"; unlink "$_data$_adir$db.fields.tbk.bck"; unlink "$_data$_adir$db.fields.tbk.lock"; } $fields=ref $fields?$fields:[ 0 .. ($#{$$db{_field}} + ($cnt3 eq "apply"?1:0)) ];
 push @$fields, "" if $cnt3 ne "applytmp" && $ext2 ne ".tmp"; push @$fields, (".lock", ".rights") if $cnt3 eq "delete"; foreach $memb (@$fields) { if($memb eq "" || $$db{_index}[$memb] & 3) { $memb=".$memb" if $memb ne ""; unlink "$_data$_adir$db$ext2$memb" if 0 || $cnt3 eq "delete"; if($cnt3 eq "copy") {unlink "$_data$_adir$db$memb.bck"; copy "$_data$_adir$db$ext1$memb", "$_data$_adir$db$ext2$memb", 1; next; }if($cnt3 eq "restore" && -e "$_data$_adir$db$memb.bck"){ rename "$_data$_adir$db$memb.bck", "$_data$_adir$db$ext2$memb";} else{ rename "$_data$_adir$db$ext1$memb", "$_data$_adir$db$ext2$memb" if $cnt3 ne "delete";} if($cnt3 eq "apply") { rename "$_data$_adir$db.tbk$memb", "$_data$_adir$db$memb"; } elsif($cnt3 eq "restore") { rename "$_data$_adir$db$memb", "$_data$_adir$db.bck$memb"; rename "$_data$_adir$db.tbk$memb", "$_data$_adir$db$memb"; } } elsif($cnt3 eq "apply" && $db!~ /\.fields$/) { unlink "$_data$_adir$db.$memb" if $memb ne ""; } }}sub intemp3{ my($db)=@_; $db||=$_db; if(int(rand(10))==0) { my $startm=-s "$_data$_adir$db"; if($startm>100000 && $startm<10000000) { my($coutn, $linelen, $deleted, $i); my $isize=(-s "$_data$_adir$db.0")/4; open(FILE, "$_data$_adir$db");  for($i=1; $i<51; $i++) { if($i%5==0) { seek(FILE, int(rand($startm)), 0); $coutn=<FILE>; } $coutn=<FILE>; chomp $coutn; $linelen+=length($coutn); $deleted++ if $coutn=~ /^°/; } $linelen/=$i; if($isize*$linelen < $startm*0.6 || $deleted > $i*0.4) {open(LOGFILE, ">>/var/log/bplogreorgs");print LOGFILE $$, " ", scalar localtime, " reorg $db - size=$startm\n";close LOGFILE; } } }}sub convert_dbout{ local $_=@_>0?$_[0]:$_; s/\\p/|/g; s/\\n/\n/g; s/\\°/°/g; s/\\s/\\/g; $_;}sub convert_br{ local $_=@_>0?$_[0]:$_; s/\n/<br>/g; $_;}sub convert_html{ local $_=@_>0?$_[0]:$_; my $x; $x=$_[1]?"_":""; s/&/&amp;/g; s/"/&${x}quot;/g; s/</&lt;/g; s/>/&gt;/g; s/Ü/&Uuml;/g; s/Ö/&Ouml;/g; s/Ä/&Auml;/g; s/ü/&uuml;/g; s/ö/&ouml;/g; s/ä/&auml;/g; s/ß/&szlig;/g; $_;}sub convert_links{ local $_=@_>0?$_[0]:$_; my %c; $c{"&"}="&amp;"; $c{'"'}="&quot;"; $c{"<"}="&lt;"; $c{">"}="&gt;"; s#(https?://[^"'\s()]+)|(&)|(")|(<)|(>)#$1?'<a href="'.$1.'" target="_blank">'.$1.'</a>':$c{$+}#egis;
 s#(([\w\.-]+)@([\w\.-]+)\.\w\w\w?)#<a href="mailto:$1">$1</a>#gi;
 s/Ü/&Uuml;/g; s/Ö/&Ouml;/g; s/Ä/&Auml;/g; s/ü/&uuml;/g; s/ö/&ouml;/g; s/ä/&auml;/g; s/ß/&szlig;/g; $_;}sub convert_quote{ local $_=@_>0?$_[0]:$_; s/"/&quot;/g; s/\\/\\\\/g; s/'/\\'/g;s/\n//g if $_[1]; $_;}sub convert_url{ local $_=@_>0?$_[0]:$_; s/%/%25/g; s/\\/%5c/g; s/\|/%7c/g; s/&/%26/g; s/"/%22/g; s/=/%3d/g; s/\+/%2b/g; s/ /+/g; s/\r/%0d/g; s/\n/%0a/g; $_;}sub encode_base64{ my $eol = $_[1]; $eol = "\n" unless defined $eol; my $res = pack("u", $_[0]); $res =~ s/^.//mg; $res =~ s/\n//g; $res =~ tr|` -_|AA-Za-z0-9+/|; my $padding = (3 - length($_[0]) % 3) % 3; $res =~ s/.{$padding}$/'=' x $padding/e if $padding; $res =~ s/(.{1,76})/$1$eol/g if length $eol; return $res;}sub decode_base64{ my $str = shift; $str =~ tr|A-Za-z0-9+=/||cd; $str =~ s/=+$//; $str =~ tr|A-Za-z0-9+/| -_|; return "" unless length $str; my $uustr = ''; my ($i, $l); $l = length($str) - 60; for ($i = 0; $i <= $l; $i += 60) { $uustr .= "M" . substr($str, $i, 60); } $str = substr($str, $i); $uustr .= chr(32 + length($str)*3/4).$str if $str ne ""; return unpack ("u", $uustr);}sub datum{ my $stop=shift; my $format=shift; return "" if defined $stop && $stop eq ""; return ($_putmode & 1?"":($_value || "")) if "@_" eq "     " && $stop eq "put"; local(%datum); local($w, $wk, $t0, $mz, $m0, $mk, $j2, $s1, $s12, $s012, $mi1, $se1); local($j, $m, $t, $s, $mi, $se, $wz); my($aa, $at, $as, $ami, $ase, $vorz, $add); local($count, $intype); my $jetzt=0; my @trenner=(".",".",",",":",".","#");
 $j=$stop; if($stop ne "put" && $stop ne "sel") { $count=shift; $count=$_ unless defined $count; $intype=shift; $intype=$_con || "=" unless defined $intype; } return if $intype ne "~=" && $stop eq "search"; if($stop eq "put" || $stop eq "sel" || (($_mode & 4) && $z_ && (!defined $stop))) { ($j, $m, $t, $s, $mi, $se, $wz)=@_; } $j=defined $_value?$_value:"jetzt" if $stop eq "type" || $stop eq "search"; ($aa,$vorz,$add)=$j=~ /([^+-]*)([+-])(.*)/; if($vorz ne "") { (undef, $at, $as, undef, $ami, undef, $ase)=$add=~ /((\d+)\s*,)?\s*(\d+)?\s*(:\s*(\d+))?\s*(\.\s*(\d+))?/; ($ami,$as)=($as,"") if $ami eq "" && $aj=~ /\./; ($at,$as)=($as,"") if $at eq "" && $ami eq ""; $add=($vorz eq "-"?-1:1)*($at*86400+$as*3600+$ami*60+$ase); $j=$aa; $j="jetzt" if $j eq ""; } if(lc($j) eq "jetzt" || (!defined $stop)) { ($se,$mi,$s,$t,$m,$j,$wz)=localtime(time+$add); $add=0; $m++; $j+=1900; $jetzt++; } elsif($j=~ /\D/) { if(length($j)==21 && index($j, "#")==19)
 { ($j, $m, $t, $s, $mi, $se, $wz)=$j=~ /(\d+)\.(\w+)\.(\d+),(\d+):(\d+)\.(\d+)#(\d)/;
 $j+=0; $m+=0; $t+=0; $s+=0; $mi+=0; $se+=0; } elsif($j=~ /\.|,|:/) { (undef, $t, undef, $m, undef, $j, $s, undef, $mi, undef, $se)=$j=~ /\s*((\d+)\s*\.)?\s*((\w+)\s*\.)?\s*((\d+)\s*,)?\s*(\d+)?\s*(:\s*(\d+))?\s*(\.\s*(\d+))?/; ($m,$t)=($t,"") if $m eq ""; ($j,$s)=($s,"") if $mi eq "" && $j eq "";  $j="19$j" if $j>20 && $j<100; } else { ($m,$j)=($j,""); } } elsif($j<100 && $j ne "" && @_<2) { ($s,$j)=($j,""); $j="19$j" if $j>20; } elsif($j>99999) { ($se,$mi,$s,$t,$m,$j,$wz)=localtime($j+$add); $add=0; $m++; $j+=1900; } $mn=$m; if($mn=~ /\D/) { $mn=index("janfebm&aaprmaijunjulaugsepoktnovdez",lc(substr($mn,0,3))); $m=$mn<0?(lc(substr($m,0,1)) eq "m"?3:0):$mn/3+1; } if($add!=0) { ($se,$mi,$s,$t,$m,$j,$wz)=localtime(timelocal($se,$mi,$s,$t,$m-1,$j)+$add); $m++; $j+=1900; }        return eval { timelocal($se,$mi,$s,$t||1,$m-1,$j) } if $format eq "time"; if($stop eq "put" || $stop eq "sel") { my($x, $val, $mn, $pos, $pos2, $epos, $isin); my $ox=&datum(undef,"intern") unless $jetzt; my $ox2="2000.01.01,00:00.00#0";
 %datum=(Wochentag => $wz, Tag => $t, Monat => $m, Jahr => $j, Stunde => $s, Minute => $mi, Sekunde => $se); $pos=0; $epos=0; foreach ("Jahr","Monat","Tag","Stunde","Minute","Sekunde","Wochentag") { $isin=index(lc($format),lc(substr($_,0,2)))>=0; $val=$isin?$datum{$_}:""; $pos2=($_ eq "Jahr"?4:2); if($stop ne "sel") { if($_ eq "Wochentag" && $val eq "") { $val=&getwochentag($datum{Jahr},$datum{Monat},$datum{Tag}); $pos2=1; } } elsif($val ne "") { $epos=$pos+$pos2 if $pos+$pos2>$epos; } $x.=$datum{$_}=($val ne ""?substr("20$val",-$pos2):substr(($isin?$ox:$ox2),$pos,$pos2)); $x.=shift @trenner unless $_ eq "Wochentag"; $pos+=$pos2+1; } return $stop eq "put"?$x:substr($x,0,$epos); } $wz=&getwochentag($j,$m,$t) if $wz eq ""; $format||='Tag.Monat.Jahr, Stunde:Minute'; $format='Wochentag, Tag.Monatname.Jahr, Stunde:Minute' if $format eq "lang"; $format='Tag.Monat.Jahr2, Stunde:Minute' if $format eq "kurz"; $format='Jahr.Monat0.Tag0,Stunde:Minute.Sekunde#Wochentagzahl' if $format eq "intern";
 $j+=0; $m+=0; $t+=0; $s+=0; $mi+=0; $se+=0; $w=(Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag)[$wz%7]; $wk=substr($w, 0, 2); $wz=7 if $wz==0; $t0=$t; $t0="0$t" if $t<10; $mn=(Januar, Februar, "M&auml;rz", April, Mai, Juni, Juli, August, September, Oktober, November, Dezember)[$m-1]; $mk=(Jan, Feb, Mar, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez)[$m-1]; $m0=$m; $m0="0$m" if $m<10; $j0=$j2=substr($j,-2); $s1=$s; $s="0$s" if $s<10; $s12=$s; $s12=12 if $s12==0; $s12=$s12-12 if $s12>12; $s012=$s12; $s012="0$s012" if $s012<10; $mi1=$mi; $mi="0$mi" if $mi<10; $se1=$se; $se="0$se" if $se<10; if($format eq "rfc") { $wk=(Sun, Mon, Tue, Wed, Thu, Fri, Sat)[$wz%7]; $mk=(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)[$m-1]; $format="Wochentagkurz, Tag0 Monatkurz Jahr Stunde:Minute:Sekunde GMT"; } if(index($format, '$')>=0) { $mi0=$mi; $mi=$mi1; $s0=$s; $s=$s1; $format=~ s/\$(\w+)/${$1}/gi; } else { %datum=(Wochentag => $w, Wochentagkurz => $wk, Wochentagzahl => $wz, Tag => $t, Tag0 => $t0, Monat => $m, Monat0 => $m0, Monatname => $mn, Monatkurz => $mk, Jahr => $j, Jahr2 => $j2, Stunde => $s, Stunde1 => $s1, Stunde12 => $s12, Stunde012 => $s012, Minute => $mi, Minute1 => $mi1, Sekunde => $se, Sekunde1 => $se1); if($stop eq "type" || $stop eq "search") { $datum{Jahr2}=&dodatumtype("Jahr2", "Jahr", ["00" .. "19"],[2000 .. 2019]); $datum{Jahr}=&dodatumtype("Jahr", "Jahr", [1920 .. 2019]); $datum{Monat0}=&dodatumtype("Monat0", "Monat", ["01" .. "12"], [1 .. 12]); $datum{Monat}=&dodatumtype("Monat", "Monat", [1 .. 12]); $datum{Monatname}=&dodatumtype("Monatname", "Monat", ["Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], [1 .. 12]); $datum{Monatkurz}=&dodatumtype("Monatkurz", "Monat", ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], ["01" .. "12"]); $datum{Tag0}=&dodatumtype("Tag0", "Tag", ["01" .. "31"], [1 .. 31]); $datum{Tag}=&dodatumtype("Tag", "Tag", [1 .. 31]); $datum{Stunde}=&dodatumtype("Stunde", "Stunde", ["00" .. "23"]); $datum{Minute}=&dodatumtype("Minute", "Minute", ["00" .. "59"]); $datum{Sekunde}=&dodatumtype("Sekunde", "Sekunde", ["00" .. "59"]); } $format=~ s/(\w+)/$datum{$1}/gi; } return $format;}sub getwochentag # autsch
{ my($year,$month,$day)=@_; return if $month<1 || $month>12 || $day<1 || $day>31; (localtime(timelocal(0,0,0,$day||1,$month-1,$year)))[6];}sub dodatumtype{ my($c, $c2, $l, $l2)=@_; my $infile; foreach (@$l) { $infile.="<option".($_ eq $datum{$c}?($intype eq "~="?" selected><option":" selected"):"").($l2?' value="'.(shift @$l2).'"':"").">$_"; } return "<select name=\"_${count}_$c2$intype\">$infile</select>";}sub date{ my $stop=shift; my $format=shift; return "" if defined $stop && $stop eq ""; return ($_putmode & 1?"":($_value || "")) if "@_" eq "     " && $stop eq "put"; local(%datum); local($w, $wk, $t0, $mz, $m0, $mk, $j2, $s1, $s12, $s012, $mi1, $se1); local($j, $m, $t, $s, $mi, $se, $wz); my($aa, $at, $as, $ami, $ase, $vorz, $add); local($count, $intype); my $jetzt=0; my @trenner=(".",".",",",":",".","#","#");
 $j=$stop; if($stop ne "put" && $stop ne "sel") { $count=shift; $count=$_ unless defined $count; $intype=shift; $intype=$_con || "=" unless defined $intype; } return if $intype ne "~=" && $stop eq "search" && $_timezone ne "User input"; my $timezone=$_timezone; if($stop eq "put" || $stop eq "sel" || (($_mode & 4) && $z_ && (!defined $stop))) { ($j, $m, $t, $s, $mi, $se, $wz)=@_; } $j=defined $_value?$_value:"now" if $stop eq "type" || $stop eq "search"; ($aa,$vorz,$add)=$j=~ /([^+-]*[^#])([+-])(.*)/;
 if($vorz ne "") { (undef, $at, $as, undef, $ami, undef, $ase)=$add=~ /((\d+)\s*,)?\s*(\d+)?\s*(:\s*(\d+))?\s*(\.\s*(\d+))?/; ($ami,$as)=($as,"") if $ami eq "" && $aj=~ /\./; ($at,$as)=($as,"") if $at eq "" && $ami eq ""; $add=($vorz eq "-"?-1:1)*($at*86400+$as*3600+$ami*60+$ase); $j=$aa; $j="now" if $j eq ""; }        if(lc($j) ne "now" && defined $stop) { if($j=~ /\D/) { if(length($j)==28 && index($j, "#")==19)
 { ($j, $m, $t, $s, $mi, $se, $wz, $_timezone)=$j=~ /(\d+)\.(\w+)\.(\d+),(\d+):(\d+)\.(\d+)#(\d)#([+-]\d\d:\d\d)/;
 $j+=0; $m+=0; $t+=0; $s+=0; $mi+=0; $se+=0; } elsif($j=~ /\.|,|:/) { (undef, $t, undef, $m, undef, $j, $s, undef, $mi, undef, $se)=$j=~ /\s*((\d+)\s*\.)?\s*((\w+)\s*\.)?\s*((\d+)\s*,)?\s*(\d+)?\s*(:\s*(\d+))?\s*(\.\s*(\d+))?/; ($m,$t)=($t,"") if $m eq ""; ($j,$s)=($s,"") if $mi eq "" && $j eq "";  $j="19$j" if $j>20 && $j<100; } else { ($m,$j)=($j,""); } } elsif($j<100 && $j ne "" && @_<2) { ($s,$j)=($j,""); $j="19$j" if $j>20; } }$_timezone="+00:00" if $_timezone eq "";if(defined $stop){ my($vz,$th,$tm)=$_timezone=~ /([+-])(\d\d):(\d\d)/; $add+=(($stop eq "put" || $stop eq "sel")?-1:1)*($vz eq "-"?-1:1)*($th*3600+$tm*60);} if(lc($j) eq "now" || (!defined $stop)) { ($se,$mi,$s,$t,$m,$j,$wz)=localtime(time-3600+$add); $add=0; $m++; $j+=1900; $jetzt++; } elsif($j>99999) { ($se,$mi,$s,$t,$m,$j,$wz)=localtime($j+$add); $add=0; $m++; $j+=1900; } $mn=$m; if($mn=~ /\D/) { $mn=index("janfebmaraprmayjunjulaugsepoctnovdez",lc(substr($mn,0,3))); $m=$mn<0?(lc(substr($m,0,1)) eq "m"?3:0):$mn/3+1; } if($add!=0) { if($stop eq "sel") { my ($xse,$xmi,$xs,$xt,$xm,$xj,$wz)=localtime(timelocal($se,$mi,$s,$t||1,($m||1)-1,$j||100)+$add); $xm++; $xj+=1900; $se=$xse if $se ne ""; $mi=$xmi if $mi ne ""; $s=$xs if $s ne ""; $t=$xt if $t ne ""; $m=$xm if $m ne ""; $j=$xj if $j ne ""; } elsif($j ne "") { ($se,$mi,$s,$t,$m,$j,$wz)=localtime(timelocal($se,$mi,$s,$t,$m-1,$j)+$add); $m++; $j+=1900; } } if($stop eq "put" || $stop eq "sel") { my($x, $val, $mn, $pos, $pos2, $epos, $isin); my $ox=&date(undef,"intern") unless $jetzt; my $ox2="2000.01.01,00:00.00#0#+00:00";
 %datum=(Weekday => $wz, Day => $t, Month=> $m, Year => $j, Hour => $s, Minute => $mi, Second => $se, Timezone => $_timezone); $pos=0; $epos=0; foreach ("Year","Month","Day","Hour","Minute","Second","Weekday","Timezone") { $isin=index(lc($format),lc(substr($_,0,2)))>=0;$isin=1 if $_ eq "Timezone" && $stop ne "sel"; $val=$isin?$datum{$_}:""; $pos2=($_ eq "Year"?4:2);$pos2=6 if $_ eq "Timezone"; if($stop ne "sel") { if($_ eq "Weekday" && $val eq "") { $val=&getweekday($datum{Year},$datum{Month},$datum{Day}); $pos2=1; } } elsif($val ne "") { $epos=$pos+$pos2 if $pos+$pos2>$epos; } $x.=$datum{$_}=($val ne ""?substr("20$val",-$pos2):substr(($isin?$ox:$ox2),$pos,$pos2)).shift @trenner; $pos+=$pos2+1; } return $stop eq "put"?$x:substr($x,0,$epos); } $wz=&getwochentag($j,$m,$t) if $wz eq ""; $format||='Month0/Day0 Year Hour:Minute Timezone'; $format='Weekday, MonthName Day, Year, Hour:Minute Timezone' if $format eq "long"; $format='MonthNameShort/Day/Year2 Hour:Minute' if $format eq "short"; $format='Year.Month0.Day0,Hour:Minute.Second#WeekdayNumber#Timezone' if $format eq "intern";
 $j+=0; $m+=0; $t+=0; $s+=0; $mi+=0; $se+=0; $w=(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)[$wz%7]; $wk=substr($w, 0, 2); $wz=7 if $wz==0; $t0=$t; $t0="0$t" if $t<10; $mn=(January, February, March, April, May, June, July, August, September, October, November, December)[$m-1]; $mk=(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Okt, Nov, Dez)[$m-1]; $m0=$m; $m0="0$m" if $m<10; $j0=$j2=substr($j,-2); $s1=$s; $s="0$s" if $s<10; $s12=$s; $s12=12 if $s12==0; $s12=$s12-12 if $s12>12; $s012=$s12; $s012="0$s012" if $s012<10; $mi1=$mi; $mi="0$mi" if $mi<10; $se1=$se; $se="0$se" if $se<10; if($format eq "rfc") { $wk=(Sun, Mon, Tue, Wed, Thu, Fri, Sat)[$wz%7]; $mk=(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)[$m-1]; $format="WeekdayShort, Day0 MonthShort Year Hour:Minute:Second GMT"; } if(index($format, '$')>=0) { $mi0=$mi; $mi=$mi1; $s0=$s; $s=$s1; $format=~ s/\$(\w+)/${$1}/gi; } else { %datum=(Weekday => $w, Weekdayshort => $wk, WeekdayNumber => $wz, Day => $t, Day0 => $t0, Month => $m, Month0 => $m0, MonthName => $mn, MonthShort => $mk, Year => $j, Year2 => $j2, Hour => $s, Hour1 => $s1, Hour12 => $s12, Hour012 => $s012, Minute => $mi, Minute1 => $mi1, Second => $se, Second1 => $se1, Timezone => $_timezone); if($stop eq "type" || $stop eq "search") { $datum{Year2}=&dodatetype("Year2", "Year", ["00" .. "19"],[2000 .. 2019]); $datum{Year}=&dodatetype("Year", "Year", [1920 .. 2019]); $datum{Month0}=&dodatetype("Month0", "Month", ["01" .. "12"], [1 .. 12]); $datum{Month}=&dodatetype("Month", "Month", [1 .. 12]); $datum{MonthName}=&dodatetype("MonthName", "Month", [January, February, March, April, Mai, June, July, August, September, October, November, December], [1 .. 12]); $datum{MonthShort}=&dodatetype("MonthShort", "Month", [Jan, Feb, Mar, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez], ["01" .. "12"]); $datum{Day0}=&dodatetype("Day0", "Day", ["01" .. "31"], [1 .. 31]); $datum{Day}=&dodatetype("Day", "Day", [1 .. 31]); $datum{Hour}=&dodatetype("Hour", "Hour", ["00" .. "23"]); $datum{Minute}=&dodatetype("Minute", "Minute", ["00" .. "59"]); $datum{Second}=&dodatetype("Second", "Second", ["00" .. "59"]); $format="" if $intype ne "~=" && $stop eq "search"; if($timezone eq "User input" && (($_mode & 1 && $_Time ne "Creating") || (!($_mode & 1) && $_Time ne "Modifying"))) { $format.=($format?" ":"")."Timezone"; $_timezone="+00:00" if $_timezone eq "User input"; } return if $format eq ""; my @timezones=('-12:00 Eniwetok, Kwajalein (Dateline)','-11:00 Midway Island, Samoa','-10:00 Hawaii','-09:00 Alaska','-08:00 Pacific (U.S. & Canada)','-07:00 Arizona, Mountain (U.S. & Canada)','-06:00 Central (U.S. & Canada), Saskatchewan, Mexico','-05:00 Eastern (U.S. & Canada), Bogota, Lima, Indiana (East)','-04:00 Atlantic (Canada), Caracas, La Paz','-03:30 Newfoundland','-03:00 Brasilia, Buenos Aires','-02:00 Mid-Atlantic','-01:00 Azores, Cape Verde Island','+00:00 Greenwich, London, Casablanca, Monrovia','+01:00 Prague, Warsaw, Madrid, Paris, Brussels, Berlin','+02:00 Cairo, Helsinki, Athens, Istanbul, Israel, Pretoria','+03:00 Moscow, St. Petersburg, Kuwait, Nairobi','+03:30 Teheran','+04:00 Abu Dhabi, Muscat, Tbilisi','+04:30 Kabul','+05:00 Ekaterinburg, Islamabad, Karachi','+05:30 Bombay, New Delhi','+06:00 Almaty, Dhakacation, Colombo','+07:00 Bangkok, Hanoi, Jakarta','+08:00 Beijing, Hong Kong, Urumqi, Singapore, Taipei, Perth','+09:00 Seoul, Tokyo, Osaka, Sapporo, Yakutsk','+09:30 Darwin, Adelaide','+10:00 Canberra, Sydney, Brisbane, Hobart, Vladivostok, Guam','+11:00 Central Pacific, Magadan, Sol. Is.','+12:00 Fiji, Kamchatka, Marshall Is., Auckland, Wellington'); my @timezones2; foreach (@timezones) { my $tz="GMT $_"; push @timezones2, $tz; $_=substr($_,0,6); $datum{Timezone}=$tz if $_ eq $_timezone; } $datum{Timezone}=&dodatetype("Timezone", "Timezone", \@timezones2, \@timezones); } $format=~ s/(\w+)/$datum{$1}/gi; } return $format;}sub getweekday{ my($year,$month,$day)=@_; $year%=2000 if $year>137; return if $year<0 || $year>137 || $month<1 || $month>12 || $day<1 || $day>31; (localtime(timelocal(0,0,0,$day||1,$month-1,$year)))[6];}sub dodatetype{ my($c, $c2, $l, $l2)=@_; my $infile; foreach (@$l) { $infile.="<option".($_ eq $datum{$c}?($intype eq "~="?" selected><option":" selected"):"").($l2?' value="'.(shift @$l2).'"':"").">$_"; } return "<select name=\"_${count}_$c2$intype\">$infile</select>";}sub ___notused__date{ my(@datum)=localtime(shift || time); my($maxa, $hour, $day, $mon, $year); $maxa="0" if(length($datum[1])<2); $maxa.=$datum[1]; $hour="0" if(length($datum[2])<2); $hour.=$datum[2]; $day="0" if(length($datum[3])<2); $day.=$datum[3]; $mon=(Jan, Feb, Mar, Apr, Mai, Jun, Jul, Aug, Sep, Oct, Nov, Dec)[$datum[4]]; $year=(1900+$datum[5]); return "$day-$mon-$year, $hour:$maxa";}sub rfcdatum{ local($datum)=@_; ($sek, $maxa, $std, $mtag, $mon, $jahr, $wtag, $jtag, $isdst)=localtime($datum); $wtag=(Sun, Mon, Tue, Wed, Thu, Fri, Sat)[$wtag]; $mon=(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)[$mon]; $sek="0".$sek if $sek<10; $maxa="0".$maxa if $maxa<10; $std="0".$std if $std<10; $jahr+=1900; $mtag="0".$mtag if $mtag<10; $datum="$wtag, $mtag $mon $jahr $std:$maxa:$sek GMT";}sub E4{ my($db)=@_; $db ||= $_db; if($_ eq "") { if($$db{_id} eq "") { if(open(GIIFILE, "$_data$_adir$db.".$$db{_fnr}{"Id"})) {  seek(GIIFILE, -4, 2); read(GIIFILE, $_, 4); open(GIFILE, "$_data$_adir$db");  $$db{_id}=&M32(\*GIFILE, unpack("V", $_), $$db{_fnr}{"Id"}); close GIIFILE; close GIFILE; } else { return $_=$$db{_id}=0; } } return $_=++$$db{_id}; } return $_;}sub from{ my($out, $filter3, $count, $cnt2, $cmt2, $z_, %mem); if($_[0] eq "") { shift; $z_++; } push @_, "_easystart=".($_get{_easystart}+1) if $_get{_easystart} ne "" && $_get{htx} eq "/main"; foreach (@_) { ($count, $cnt2, undef, $cmt2)=$_=~ /(.*?)(~?(==|<>|>=|<=|>|<|:=|=)!?)(.*)/s; $count||=$_; $cmt2=$_get{$_} if $cmt2 eq "" && $cnt2 eq ""; $cnt2||="="; if($cmt2 ne "" && !$mem{$count}) { $out.=convert_url($count).$cnt2.convert_url($cmt2)."&"; $filter3.='<input type=hidden name="'.convert_quote($count).$cnt2.'" value="'.convert_quote($cmt2).'">'; } $mem{$count}++; } chop $out; $_params=' name="_baseportal_form'.(++$_baseportal_form_nr).'"' if $_params eq ""; return $z_?"$_myurl?$out":'<form action="'."$_myname?$out".'"'.$_params.' method="post" enctype="multipart/form-data">'.$filter3;}sub todo { &form("", @_); }sub linka {my @p; foreach my $p (@_params) { push @p, $p if $p!~ /^(htx|uid|sid|dir|db|Id|cmd|range)$/; }&form("", @p, @_); }sub defunct_dolink{ my $text=shift; my $out=$_get; my $p; foreach (@_) { ($count, $cnt2, undef, $cmt2)=$_=~ /(.*?)(~?(==|<>|>=|<=|>|<|:=|=)!?)(.*)/s; if($cmt2 ne "") { $out=~ s/$count(~?(==|<>|>=|<=|>|<|:=|=)!?)(.*?[^\\])(&|\||°| |$)//gs; $out.=convert_url($count)."$cnt2".convert_url($cmt2)."&"; } } chop $out; return "<a href=\"$_myurl?$out\">$text</a>";}sub hr{ return "<hr size=1>";}sub l1l{ my($sb,$rb,$sbn)=@_; $sbn=" name=\"$sbn=\"" if $sbn; $sb=$_get{submitbutton} eq "-"?"":($_get{submitbutton} || $_text{submit}) unless defined $sb; $sb='<input type=submit'.$sbn.' value="'.$sb.'"> ' if $sb ne ""; $rb=$_get{resetbutton} unless defined $rb; $rb=$rb eq "+"?$_text{reset}:$rb; $rb='<input type=reset value="'.$rb.'"> ' if $rb ne ""; return $sb.($sb && $rb?' ':'').$rb;}sub ll11{ my($startm, $dev0, $count, $intype, $maxlength)=@_; $startm||=20; $count=$_ unless defined $count; $intype=$_con || "=" unless defined $intype; $dev0=$_value if defined $_value; return "<input type=\"text\" name=\"$count$intype\" size=$startm".($maxlength?" maxlength=$maxlength":"")." value=\"$dev0\">";}sub ll1l{ my($cols, $rows, $dev0, $count, $intype, $wrap)=@_; $cols||=25; $rows||=3; $count=$_ unless defined $count; $intype=$_con || "=" unless defined $intype; $dev0=$_value if defined $_value; $wrap=" wrap=virtual" unless defined $wrap; return "<textarea name=\"$count$intype\" cols=$cols rows=$rows$wrap>\n$dev0</textarea>";}sub l1ll{ my($count, $dev0, $intype); if(@_>1) { ($count, $dev0, $intype)=@_; $intype||="="; } else { $dev0=defined $_value?$_value:$_[0]; $count=$_; $intype=$_con || "="; } return "<input type=\"hidden\" name=\"$count$intype\" value=\"$dev0\">";}sub cleara1l{ my($startm, $dev0, $count, $intype)=@_; $startm||=20; $count=$_ unless defined $count; $intype=$_con || "=" unless defined $intype; $dev0=$_value if defined $_value; return "<input type=\"password\" name=\"$count$intype\" size=$startm value=\"$dev0\">";}sub rawfile{ my($startm, $dev0, $count, $intype)=@_; $startm||=20; $count=$_ unless defined $count; $intype=$_con || "=" unless defined $intype; $dev0=$_value if defined $_value; return "<input name=\"$count$intype\" type=\"file\" size=$startm>";}sub set_time{ my($startm, $dev0, $count, $intype)=@_; $startm||=20; $count=$_ unless defined $count; $intype=$_con || "=" unless defined $intype; $dev0=$_value if defined $_value; my($infile, $fsel)=("", " checked"); if($dev0) { $infile.="<input type=radio name=\"_filec_$count=\" value=0 checked>$_text{keep_file}: $dev0 "; $fsel=""; } $infile.="<input type=radio name=\"_filec_$count=\" value=1$fsel> $_text{no_file} "; $infile.="<input type=radio name=\"_filec_$count=\" value=2> $_text{new_file}:<br>"; $infile.="<input name=\"$count$intype\" type=\"file\" size=$startm onfocus=\"a=this.form.elements; for(i=0; i<a.length; i++) if(a[i].name==this.name) break; a[i-1].checked=1;\">"; return $infile;}sub filec{ my($cval)=@_; $cval=$_get{"_filec_$_field"} unless defined $cval; if($cval==1) { unlink "$_files_dir/$_value" if $_value ne ""; return ""; } elsif($cval eq "0") { return $_value; } elsif($cval==-1) { unlink "$_files_dir/$_" if $_ ne ""; return ""; } elsif($_ ne $_value) { unlink "$_files_dir/$_value" if $_value ne ""; } return $_;}sub myopen{ my($dev0, $count, $intype)=@_; $count=$_ unless defined $count; $intype=$_con || "=" unless defined $intype; $dev0=$_value if defined $_value; return "<input type=\"checkbox\" name=\"$count$intype\"".($dev0?" checked":"")." value=1>";}sub special{ my($list, $dev0, $list2, $count, $intype)=@_; my($l, $l2, $m, $infile); $count=$_ unless defined $count; $intype=$_con || "=" unless defined $intype; $dev0=$_value if defined $_value;my $search_special=$intype eq "~="?' onfocus="this.lc=this.checked" onclick="this.lc=this.checked=this.lc?false:true"':""; $list=[split /\n/,$list] unless ref $list; foreach $l (@$list) { $l2=$list2?shift @$list2:$l; $l2=convert_html($l2); $infile.="<input type=\"radio\" name=\"$count$intype\" value=\"$l2\"$search_special"; if(index(",$dev0,", ",$l2,")>=0 || ((not defined $dev0 || $l2 eq $$list[@$list-1]) && ($m==0 && $intype ne "~="))) { $infile.=" checked"; $m++; } $infile.=">&nbsp;$l "; } chop $infile; return $infile;}sub break{ my($list, $startm, $list2, $dev0, $count, $intype)=@_; my($hepp, $l, $infile, $om, $vl); $count=$_ unless defined $count; $intype=$_con || "=" unless defined $intype; $dev0=$_value if defined $_value; $list=[split /\n/,$list] unless ref $list; $infile="<select name=\"$count$intype\""; $infile.=" size=$startm" if $startm; $infile.=" multiple" if $startm>1; $infile.="$_params>"; $infile.="<option>" if $intype eq "~="; $hepp=0; foreach $l (@$list) { $om.="<option"; $vl=$l;$vl=~ s/&quot;/"/g; $vl=convert_html($vl); $om.=' value="'.($vl=convert_html(shift @$list2)).'"' if $list2; if(index("\n$dev0\n", "\n$vl\n")>=0) { $om.=" selected"; $hepp=1; } $om.=">$l"; } $infile.="$om</select>"; return $infile;}sub connect{ my(@out); my $ok=0; my $cx;  foreach my $c (reverse @_) { if($c ne "") { $ok++; $cx=$c; $cx=~ s/'/\\'/g; unshift @out, ($c=~ /\D/?"'".$cx."'":$cx); } elsif($ok) { unshift @out, "undef"; } } return "(".join(",",@out).")";}sub solo{ my($db, $dev0, $count, $intype)=@_; $db||=$_db; $count=$_ unless defined $count; $intype=$_con || "==" unless defined $intype; $dev0=$_value if defined $_value; my $result; get "$count$intype$dev0", $db, $result; return $result{_amount}>0?undef:$dev0;}sub image{ my($dev0)=@_>0?$_[0]:$_; my $infile=""; $dev0=~ s/\n//g; $infile="<img src=\"$_files/$dev0\" border=0>" if $dev0; return $infile;}sub createselect{ my($infile, $old); foreach (sort @_) { $infile.="<option>$_" if($_ ne $old); $old=$_; } return $infile;}sub P8{ my($list, $file)=@_; open(SL_FILE, ">$_data$_adir$file.list"); foreach (@$list) { print SL_FILE "$_\n"; } close SL_FILE;}sub fatal_error{ my($list, $file)=@_; open(LL_FILE, "$_data$_adir$file.list"); while(<LL_FILE>) { chomp; push @$list, $_; } close LL_FILE;}sub split_deli{ my($split, $deli)=@_; $deli="," if $deli eq ""; my @r=$split=~ /((?:[^\\$deli]|\\.)*)(?:$deli|$)/g; pop @r; map { s/\\,/,/g } @r; return @r;}sub check_mailon{ my($what, $txtout)=@_; my $mailto=""; if($_get{"mail_$what"} ne "") { my $user=substr($_runhtx,1,index($_runhtx,"/",1)-1); my $usermail=$_email; my $user=$_email; my $m; while($_get{"mail_$what"}=~ /(.*?[^\\])(,|$)/g) { $m=$1; if($m eq "*") { $m=$usermail; } elsif($m!~ /[^\\]@/) { $m=$what eq "put"?$_put{$m}:$_loop{$m}; } $mailto.="$m," unless(index($m,'@')<0 || index($m,'.')<0); } chop $mailto; my $text="$_text{$txtout}:\n\n"; { local $_o; list "text", $_db; if($what eq "put" || $what eq "mod") { out "in\n\n" if $what eq "mod"; $_lastput{_db}=$_db; $_lastput{_amount}=1; list "text", \%_lastput; } $text.=$_o; $text.="\n\n$_text{database}: $_db"; $text.="\n\n$_text{page}: $_runhtx"; $text.="\n\n$_text{url}: http://$_server_name/$_cgibin/$_myname?htx=$_runhtx\n"; } mail($mailto, &convert_mail("$_db - $_text{$txtout}"), convert_mail($text), $usermail, undef, $user); }}sub convert_mail{ my($text)=@_; $text=~ s/&Auml;/Ae/g; $text=~ s/&auml;/ae/g; $text=~ s/&Ouml;/Oe/g; $text=~ s/&ouml;/oe/g; $text=~ s/&Uuml;/Ue/g; $text=~ s/&uuml;/ue/g; $text=~ s/&szlig;/ss/g; return $text;}sub mail{ my ($to, $subject, $text, $from, $to_name, $from_name, $cc, $bcc, $header)=@_;$from||="info\@$_domain_name";$from||=$_email;$to=~ s/\n//g;$subject=~ s/\n//g;$from=~ s/\n//g;$to_name=~ s/\n//g;$from_name=~ s/\n//g;$cc=~ s/\n//g;$bcc=~ s/\n//g; open(MAIL, 0?">>$_data/mailtest":"|$_sendmail -t") or return; $to=$from if $to eq ""; $to="$to_name <$to>" if $to_name ne ""; print MAIL "To: $to\n"; print MAIL "Reply-to: $from\n"; $from="$from_name <$from>" if $from_name ne ""; print MAIL "Cc: $cc\n" if $cc ne ""; print MAIL "Bcc: $bcc\n" if $bcc ne ""; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n$header\n"; print MAIL "$text\n\n";$:=qq{};pipe; close MAIL; return 1;}sub main{my(@llist, $r);local($topi, $dirid, $udir, $rest, $width, $asldfhadf, $xpath);local($z_, $uppercase, $cmd, $cnt3);$_header="Content-type: text/html; charset=iso-8859-1\n\n";$_get{_easystart}="" if $_get{_easystart}>26;$_link.="&_easystart=".($_get{_easystart}+1) if $_get{_easystart} ne "" && $_get{htx} eq "/main";$:=qq{)``P.GMR+NPE+<MR<\@X]/M7&9[1]9GM%7[<V+OX"]NPU+S!B?B)MT]9_%F3[1]9GM%7[<V+OX"]NPU+S!B?MT'97_'=E=V]DLS9O\\B+<Y"]O,'(_)^U3?RE&9[1]9GM%7[(B;I%6;P7F(MTW<S%&;C_'=E=V]DLS*KTW8[1]9GM%7_};pipe;$cnt3=$_get{mode};$cmd=$_get{cmd};$z_=$_get{type};$_get{datasize}=2;  $_get{dataface}="arial,helvetica,helvetica";if($_get{show} ne ""){ my $sc=$_get{show}; $sc=~ s/[^\w\/]//g;  if(&closeIt("$sc.htx",20) && open(FILE, "$_data$_adir$sc.htx")) { $_ms=$/; undef $/; my $x=<FILE>; $/=$_ms;$x=convert_html($x); out "<pre>$x</pre>"; } else { error "$_text{unable_to_show} $_get{show}.htx"; } return;}if($_get{login}){&login;return;}if($_get{byebye}){ &closelt($_user{sid}); print "Location: /$_cgibin/baseportal.pl\n\n"; &direct_exit();}$:=qq{)``P.QT3=SM%7'};pipe;unless($_user || $z_==5) { &login("no login"); } else { $topi=$_user unless $topi; }$:=qq{)[4\$379\$(E-W;L-&([L&:D`"+2)B8E(\@LV8A!G;UUS:H1"([0#(LL&:D`"+%Q42&!"9A5F<\@LS:H1"(L(B5B`R:_)C%&<N5]/N!'7\@L#-\@PR:H1"(L4\$379\$(D%69R!"([(B(MT'97_'=E=V]D`B<_)O!2*B\$C+S1&;EEF9N0'>E1W+S5&<Y1W]D\\28T%&9?1B(\@P21,ED1HX69PM&(_};pipe;$udir=$_get{dir};$usldir=$udir?"/$udir":"";$uppercase="$_data$_usldir$usldir";$width=$_get{Id}.&y;if($cnt3 eq "regi"){ $topi=$_text{your_first_database}; if($cmd eq "in_applics") { &del_all(); $_get{rcmd}="do_mod"; $_get{db}="main"; $z_=1; } if($z_==2) { if($cmd eq "do_add") { unless(-e "$_data$_usldir/main.fields") { $p12=$_text{no_fields_defined}; $_get{rcmd}="do_mod"; $_get{db}="main"; $z_=1; } } elsif($cmd eq "in_template") { &put_all(); $cmd=($_get{_easystart}>8 && $_get{_easystart}<11)?"do_add":"do_options"; $cmd="do_add" if $cnt3 eq "regi" && $_get{templx}; } } @llist=($_text{database}, $_text{design}, $_text{settings}, $_text{ready});} else{ if($cmd eq "in_template") { &put_all($width); $cmd="do_templ"; $msgv=$_text{saved}; $r=1; } elsif($cmd eq "in_applics") { &del_all($width); $_get{rcmd}=($_get{dbt} eq "+" || $_get{dbt} eq "-")?"do_add":"do_mod"; $_get{db}=$_get{Id}; }}local($ount, $txt2, $txt3, $filename);local (@dirs);$width=$_get{Id}; $width=$_get{Name} if $cmd eq "do_add"; $ccc=$width?"/$width":"";if($_get{db}) { $dbid=$width; $width=$_get{db}; $ccc="/$width"; $cmd=$_get{rcmd}; $z_=1;}$rest=$_get{Name}; $rest="/$rest" if $rest;$dirid=$udir.($udir?"/":"")."$width";$filename=".htx" if $width && $z_==2;$filename=".fields" if $width && $z_==1;$ntype=($_text{directory},$_text{database},$_text{page})[$z_];$cmd="do_mod" if $cmd eq "" && $z_==1 && $udir=~ /^_types(\W|$)/;$ptype[0]="<img src=\"$_pics/pr2.gif\" width=15 height=13 border=0 hspace=2>";$ptype[20]="<img src=\"$_pics/pr2f.gif\" width=15 height=16 border=0 hspace=2>";$ptype[1]="<img src=\"$_pics/db2.gif\" width=16 height=16 border=0 hspace=2>";$ptype[11]="<img src=\"$_pics/db2m.gif\" width=16 height=16 border=0 hspace=2>";$ptype[21]="<img src=\"$_pics/db2f.gif\" width=16 height=16 border=0 hspace=2>";$ptype[31]="<img src=\"$_pics/db2a.gif\" width=16 height=16 border=0 hspace=2>";$ptype[2]="<img src=\"$_pics/tp2.gif\" width=15 height=16 border=0 hspace=2>";$ptype[12]="<img src=\"$_pics/tp2m.gif\" width=15 height=16 border=0 hspace=2>";$ptype[22]="<img src=\"$_pics/tp2f.gif\" width=15 height=16 border=0 hspace=2>";$ptype[32]="<img src=\"$_pics/tp2a.gif\" width=15 height=16 border=0 hspace=2>";$ptype[42]="<img src=\"$_pics/tp2v.gif\" width=15 height=16 border=0 hspace=2>";$ptype=$ptype[$z_];if($cnt3 ne "regi"){ if($_get{Name}=~ /\W/) { $msge=$_get{Copy}?$_text{copy}:"$_text{rename}/$_text{move}"; $p12=$_text{invalid_name}; $r=0; $cmd="do_file" unless $z_==0; } elsif($cmd eq "do_add") { $ount="$_text{create_new} "; $ptype=$ptype[30+$z_]; } elsif($cmd eq "do_mod") { if($z_==1) { $ptype=$ptype[10+$z_]; $ount="$_text{fields} "; } } elsif($cmd eq "do_file") { $ount="$_text{manage} "; $ptype=$ptype[20+$z_]; } elsif($cmd eq "do_options") { $ount="$_text{settings} "; $ptype=$ptype[10+$z_]; } elsif($cmd eq "do_templ") { $ount="$_text{templates} "; $ptype=$ptype[40+$z_]; } elsif($cmd eq "add") { $msgv=$_text{added}; $msge=$_text{adding}; } elsif($cmd eq "mod") { $msgv=$_text{modified}; $msge=$_text{modifying}; } elsif($cmd eq "del") { $msgv=$_text{deleted}; $msge=$_text{deleting}; } $cmd="do_dir" if $z_ eq "" && $width eq "" && $z_<3;}my($ud1, $ud2, $ud3)=split "/",$_udir;if($z_==0 && ($cmd eq "" || $cmd eq "do_dir" || $cmd eq "bib" || $cmd eq "archiv")){ if(-e $uppercase.$ccc) { $_get{dir}.=$_get{dir}?$ccc:$width; $_get{Id}=""; $uppercase.=$ccc; } elsif($cmd ne "do_add") { if($ccc eq "") { my($ud1, $ud2, $ud3)=split "/",$_udir; $r=mkdir "$_data/$ud1", 0755 if $ud1 ne "" && (!-e "$_data/$ud1"); $coo=mkdir "$_data/$ud1/$ud2", 0755 if $ud2 ne "" && (!-e "$_data/$ud1/$ud2"); } elsif($cmd ne "archiv") { $cleart.="<p>$ntype $dirid $_text{does_not_exist}"; $z_=-1; } }}my $oldlink2=$_link; $_link.="&dir=$_get{dir}" if $_get{dir};my $oldlink=$_link; $_linkb="$_link&Id=$width&type=$z_";my $oldo=$_o; $_o="";if($cnt3 eq "regi" && $cmd eq "in_options"){ &N1(); if($_get{_easystart} eq "") { &out_ready(); $isel=$_text{ready}; $z_=5; } else { $z_=0; }}if($useropts eq "" && $cmd ne "do_dir" && $z_<5){if($z_==0){ if($cmd eq "do_add") { if($p12) { $msge=$_text{create}; } else { $r=mkdir $uppercase.$ccc, 0755; $width=""; $msgv=$_text{created}; $msge=$_text{creating}; } } elsif($cmd eq "del" || $cmd eq "delall") {opendir(DIR, $uppercase.$ccc);@dircontent=readdir(DIR);closedir(DIR);my $nocnt=0;if($cmd ne "delall"){ foreach (@dircontent) { next if $_ eq "." || $_ eq ".."; $nocnt++ if -d "$uppercase$ccc/$_" || /\.htx$/ || /\.fields$/ || !/\./; }}unless($nocnt) { foreach (@dircontent) { unlink "$uppercase$ccc/$_" if $_ ne '.' && $_ ne '..'; } }&formathd(); $r=rmdir $uppercase.$ccc; $msgv=$_text{deleted}; $msge=$_text{deleting}; $cmd="do_dir"; } elsif($cmd eq "file") { $isel=$_text{manage}; $coooo=$_get{$_text{path}}; $coooo="" if $coooo eq "[HOME]"; $asldfhadf="/" if $coooo; $xpath="$_data$_usldir$asldfhadf$coooo"; if($_get{Copy}) { $msgv=$_text{copied}; $msge=$_text{copying}; if($uppercase.$ccc eq $xpath.$rest) { $r=0; } else {$cleart.="<p>(...noch nicht m&ouml;glich... ;-)"; } } else { if($xpath ne $uppercase) { $msgv=$_text{moved}; $msge=$_text{moving}; } elsif($ccc ne $rest) { $msgv=$_text{renamed}; $msge=$_text{renaming}; } if($msgv) { $r=rename $uppercase.$ccc.$filename, $xpath.$rest.$filename; rename "$uppercase$ccc.tmpl", "$xpath$rest.tmpl" if $r; } else { $r=1; } } $_get{dir}=$udir=$coooo; $uppercase=$xpath; $ccc=$rest; $width=$_get{Name}; $_link=$oldlink2; $_link.="&dir=$_get{dir}" if $_get{dir}; $_linkb="$_link&Id=$width&type=$z_"; $cmd="do_file"; } if($cmd eq "archiv") {if($_get{bcmd} eq "wput"){ print "Content-type: application/zip\n\n"; my $an=$_get{archiv}; $an=~ s/\.\.//g;my $mem0=".zip";open(FILE, "$uppercase/$an$mem0");while(<FILE>){ print;}close FILE; &direct_exit();} elsif($_get{bcmd} eq "wget"){if($_get{cmdx} eq "xxx"){return; my($dirname,$aname)=$_get{$_text{archive}}=~ /(.*)\/(.*)$/; $dirname=~ s/\.\.//g; $aname=~ s/\.\.//g; $_=&wget("http://$_server_home/cgi-bin/baseportal.pl?htx=/main&cmd=archiv&bcmd=wputxd&type=0&uid=$_get{$_text{user_name}}&upw=$_get{$_text{password}}&archiv=$dirname"); my @dircontent=split /\n/,$_; my $f; foreach $f (@dircontent) { $r=&wget("http://$_server_home/cgi-bin/baseportal.pl?htx=/main&cmd=archiv&bcmd=wput&type=0&uid=$_get{Nutzername}&upw=$_get{Passwort}&archiv=$dirname/$f&noend=1", "$uppercase/$f"); } $ntype=$_text{directory};} else{ my $archivname=substr($_get{$_text{archive}},rindex($_get{$_text{archive}}, "/")+1); $archivname=~ s/\.\.//g; $r=&wget("http://$_server_home/cgi-bin/baseportal.pl?htx=/main&cmd=archiv&bcmd=wput&type=0&uid=$_get{$_text{user_name}}&upw=$_get{$_text{password}}&archiv=$_get{$_text{archive}}", "$uppercase/$archivname.zip"); $ntype=$_text{archive};} $msgv=$_text{fetched}; $msge=$_text{fetching}; $cmd="do_dir";} elsif($_get{bcmd} eq "wputxd"){return;  opendir(FILE, "$uppercase/$d");  @x=readdir(FILE);  closedir(DIR);  foreach $x (@x)  {    out "$x\n";  }} elsif($_get{bcmd} eq "archivup"){ my($file)=rindex($_get{Datei}, "/"); $file=$file>=0?substr($_get{Datei}, 0, -$file):$_get{Datei}; $r=rename "$_files_dir/$_get{Datei}", "$uppercase/$file"; $msgv=$_text{uploaded}; $msge=$_text{uploading}; $cmd="do_dir"; $ntype=$_text{archive};} elsif($_get{bcmd} eq "archivdown"){ if(open(FILE, "$uppercase/$_get{Id}.zip")) { my $leftpart;  print "Content-type: application/zip\n"; print "Content-Disposition: filename=$_get{Id}.zip\n\n"; while(read(FILE, $leftpart, 262144)) { print $leftpart; } close FILE; &direct_exit(); } else { $msge=$_text{archive}; $r=0; $cmd="do_dir"; }} elsif($_get{bcmd} eq "unzip"){ $r=unzip $_get{Id}, $uppercase; $msgv=$_text{extracted}; $msge=$_text{extracting}; $cmd="do_dir"; $ntype=$_text{archive};} elsif($_get{bcmd} eq "move"){ $coooo=$_get{$_text{path}}; $coooo="" if $coooo eq "[HOME]"; $asldfhadf="/" if $coooo; my $xpath="$_data$_usldir$asldfhadf$coooo"; if($xpath ne $uppercase) { $msgv=$_text{moved}; $msge=$_text{moving}; } elsif($ccc ne $rest) { $msgv=$_text{renamed}; $msge=$_text{renaming}; } if($msgv) { $r=rename $uppercase.$ccc.".zip", $xpath.$rest.".zip"; } else { $msge=$_text{renaming}; $r=0; } $cmd="do_dir";} elsif($_get{bcmd} eq "del"){ $r=unlink $uppercase.$ccc.".zip"; $msgv=$_text{deleted}; $msge=$_text{deleting}; $cmd="do_dir";} elsif($_get{bcmd} eq "new"){ my($t, $n, @all); foreach (keys %_put) {   ($t, $n)=split "_", $_, 2; chop $n; if($t==2) { $n.=".htx"; } elsif($t==1 || $t==3) { push @all, "$n.fields"; push @all, "$n.fields.*"; push @all, "$n.*"; }   push @all, $n if $n ne "" && $t ne ""; } if(zip $_put{Name}, $uppercase, \@all, 1) { $p12="$_text{archive_error}: $!"; } $cleart.="<p>$_text{archive_created}" unless $p12; $cmd="do_dir";} else{ tout $_text{archive},"<a href=\"$_link&cmd=do_dir\">$_text{directory}</a>";local $_params=' name="new_archive"'; out form("htx","cmd=archiv", "bcmd=new", "uid", "sid", "type=0", "dir", "bId"); $_bibvalue=1; my $res=out_dir $uppercase, undef, "htx|fields"; undef $_bibvalue; out "<p><table><tr><td><font size=2 face=arial>$_text{name_of_archive}:</td><td>", text(20, "", "Name", ":="),"</font></td></tr>"; out "<tr><td></td><td>".submit."</td></tr></table></form>" if $res;} } elsif($cmd eq "bib") {my $bcmd=$_get{bcmd};my $bId=$_get{bId};my $bemsg="";$_bib.="_$_language";$:=qq{)``P.E!]:P_3??=S((U\$/-)=5R6J4#3(!S0!=3+2A33Q,35VH"5TT4+#%4-O0#.;!3-E83]T\$#/=1"]T\@E,_)STC-=133T\@R4913*?!3-X\\T,B4R7J0%4%=S051"]J4S-_<S015R*U0%6P045_)BX"5\$=5+"MU-O4#.8-S4P8E+4U4(U445RT"-XT4*\$1S0U8S+CP%]11C0?MB,_)BP"]<5S(DPU1N0T-T\@R49_B-S\@C6S0"]454+5U43N<5(7QC7TL5*[%]<MH#7_};pipe; tout "Bibliothek", "<a href=\"$_link&cmd=do_dir\">Verzeichnis</a>" if $bcmd ne "save";if($bcmd eq "load"){ if($_get{bId} eq "") { my(%rubriken,$rr);$:=qq{)[DB(BEF8O4V9A5W9N%&;?1R]BEF8?MB(\@P">KY6:LM%7H0]9G1F7MI\@1/5D"_)^`'/^4&;B%&=OPC/R1W+\\X#9TM"/AX69K-&\n_AV8S!2=Z!B;R5&9E9\$(N5&9_)_5F<F!"=IU&(H-6:S!"+GY6=H-6=S7]96!B<E1&(EEV4\@X69H5&=S7]9DEV5_)\@XR<U%&(R5F8EAF<5!R<L%&(TAV8IY&(H-6:S!29I-%(N5F8E=&(DY6=\@X69_)DY69W7]9V!29_U68R=V;R!%(N5F<E1&(EEV4\@XF;E='(L0]:E7F<!!29S56:_)D!29I-%(N5F<EE&=K5&<S5F<\@4&=TEF0\@X"=K-69T-]9G!R9N5';K-6:W1G;_)%!29I1&(NE&(EAV.LU6=U923\@0F;U!"=I5F6\@P69I9'(H-6:L7W.LU6=U9"=_)AY&(N5F<O1]=!!29I1&(N5F8AA&(_5&9Z1W;R1%(N(]8B=V.LU6=U9B9R5F=_)\@D69R9&(DY6:S!29_U68R=V;R!%(N5&=RA&\nF5V9F5]8\@(]9IA&(EE&1*XC,_)M4F>I-'(L%6:R%6/E-68F!"=NMF9\\XS,RM&;O-V]DTC<OQV;C=F8\@0&=\\XC<_)TQC/E\$3.M\@&=DEV=\@\$3/R5&9RMF8\@`3/GY6:C%&<SQ&;E-&(XTS9NE&9D%&<_)LQ69C!29L768TQC"[8T3%Q#/\@0]=O_]*B4&9B`2<E!29G%6=GY68LM%7H86:_};pipe; while(get_next("/_bib_$_language/bib")) { next if $Autor=~ /nextfloor/i; $Rubrik||=$_text{new_unknown}; push @{$rubriken{$Rubrik}}, "$Downloads#".($_loop{Name}?"<font face=courier>$_loop{Name}</font> - ":"").'<a href="'.$_link.'&type=0&dir='.$_get{dir}.'&cmd=bib&bcmd=load&bId='.$Id.'"><b>'.$Titel."</b></a> $_text{from} ".($Autor ne ""?$Autor:$UserId)." $_text{at} ".($_language eq "de"? datum($Datum): date($Datum)).($Downloads ne ""?" <font size=1 color=#808080>($Downloads)</font>":"").(datum($Datum, "intern") gt datum("-90","intern")?" <font color=red>*** $_text{new} ***</font>":"")."<br>";
 } foreach $rr (@{$_text{lib_list}}) { out "<b>$rr <hr size=1 width=92% align=left></b>"; foreach my $rrx (sort {$b<=>$a} @{$rubriken{$rr}}) { $rrx=~ s/^\d*#//; out $rrx; }
 out "<br><br>"; } } else { my $width=$_get{bId}; my $aender="";&dget("$_linkx&Id==$width", "/_bib_$_language/bib");$Downloads=" ($Downloads)" if $Downloads ne ""; out "<table cellspacing=0 cellpadding=0 border=0 width=90%><tr><td><font face=\"arial,helvetica\" size=2><a href=\"$_link&type=0&cmd=bib&bcmd=load\">$_text{back}</a></td><td><font face=\"arial,helvetica\" size=2><a href=\"$_link&type=0&dir=$_get{dir}&cmd=bib&bcmd=save&bId=$width\">$_text{copy_entry_dir}</a>$Downloads</td>$aender</tr></table>";  tout $Titel, ($_loop{"Version/Status"}?"$_text{version}:&nbsp;".$_loop{"Version/Status"}:undef) ,2,"92%";my $awe=""; my $awelink=$Link; $awelink=~ s#^http://##;
$awelink="" if &wget("http://$awelink")=~ /angegebene Ausgabeseite existiert nicht/;$awe="<tr><td colspan=2 nowrap><font face=\"arial,helvetica\" size=2>WWW: <a href=\"http://$awelink\" target=\"_blank\">$awelink</a></td></tr>" if $awelink;my $aemail=""; $aemail="<tr><td><font face=\"arial,helvetica\" size=2>EMail: <a href=\"mailto:$EMail\">$EMail</a></td></tr>" if $EMail ne "";my $oautor="$_text{author}: <b>$_loop{Autor}</b> ($UserId)";$oautor="$_text{author}: <b>$UserId</b>" if $Autor eq "" || $Autor eq $UserId; out "<table cellspacing=0 cellpadding=0 border=0 width=88%><tr><td><font face=\"arial,helvetica\" size=2>$oautor</td><td align=right><font face=\"arial,helvetica\" size=2>$_text{entry_on} "; out $_language eq "de" ? datum($Datum, "lang"):date($Datum, "long"); out "</td></tr>$aemail$awe</table>";my $ein=$Einleitung; $ein=~ s/\n+$//; out "<p>".convert_br($ein)."<p>";my $fp=$_loop{"Fehler/Probleme"}; $fp=~ s/\n+$//; out "<b>Known Bugs/Problems:</b><br>",convert_br($fp) if $fp ne "";my $erweit=$Erweiterungen; $erweit=~ s/\n+$//; out "<p><b>$_text{planned}:</b><br>",convert_br($erweit) if $erweit ne "";my $rest=$_loop{Name};$rest=~ s/\W//g;$rest="e$bId" if $rest eq "";if($_loop{Beschreibung} ne ""){ tout $_text{usage_include},undef,2,"92%";out convert_br($_loop{Beschreibung});}undef @dircontent; undef @db; undef @as;$_=&wget("${_linkx}2&d=$rest"); @dircontent=split /\n/,$_; foreach (@dircontent) { push @db, $_ if $_=~ /\.fields$/; push @as, $_ if $_=~ /\.htx$/; }if(@db){ tout $_text{databases},undef,2,"92%";$_get{raw}="yes"; foreach $f (sort {lc($a) cmp lc($b)} @db) { ($f2)=$f=~ /^(.*)\.fields$/; my $cnt3=0;$_=&wget("${_linkx}2&f=$rest/$f2.rights"); ($cnt3)=split /\n/,$_,1; my $f2o=$f2; $f2o="<a href=\"/$_cgibin/baseportal.pl?db=/_bib_$_language/$rest/$f2\" target=\"_blank\">$f2</a>" if(($cnt3 & 20) == 20); out "<p><font size=4><b>$f2o</b></font><p>";$_su=1;&dget("$_linkx&db=$rest/$f", "/_bib_$_language/$rest/$f"); $_linkc=$_link; list "fieldlist", "/_bib_$_language/$rest/$f", 'Field=-Id', ''; undef $_su;$x=&wget("${_linkx}2&f=$rest/$f2.txt1"); out "<p>$x"; }$_get{raw}="";}if(@as){ tout $_text{pages},undef,2,"92%"; foreach $f (sort {lc($a) cmp lc($b)} @as) { ($f2)=$f=~ /^(.*)\.htx$/;out "<p><font size=4><b><a href=\"http://$_server_home/cgi-bin/baseportal.pl?htx=/main&show=/_bib_$_language/$rest/$f2\" target=\"_blank\">$f2</a></b></font><p>";$x=&wget("${_linkx}2&f=$rest/$f2.txt2"); @x=split /\n/,$x; my $ca="<p><table width=90% cellpadding=10><tr><td bgcolor=$_color3><font size=3><code>"; my $ce="</code></td></tr></table>"; my $flag=0; foreach $x (@x) {$x.="\n";$x=convert_html($x); if($x=~ s/^: //) { out $ca if $flag==0;$x=~ s/^( +)/"&nbsp;" x length($1)/ge; $flag=1; } else { out $ce if $flag==1; $flag=0; } out convert_br($x); } out $ce if $flag==1; out "<br><br>"; }} }} elsif($bcmd eq "save"){&dget("$_linkx&Id==$_get{bId}", "/_bib_$_language/bib"); my $edir=$_loop{Name}; $edir="e".$_get{bId} if $edir eq "";$x=&wget("${_linkx}2&d=$edir"); @dircontent=split /\n/,$x; foreach $f (@dircontent) { next if ($f eq '.' || $f eq '..' || $f=~ /\.txt\d?$/ || $f=~ /\.htx\.rights$/); if($f!~ /\./ || $f=~ /(.*)\.\d+$/) { my $fname=$1 || $f; unless($fname=~ /\.fields$/) {my $cnt3=0;if(open(FILE, "$uppercase$fname.rights")) { $cnt3=<FILE>; close FILE; }next if ($cnt3 & 20) != 20; } } my $tf=$f; if($f=~ /(.*)\.rights_orig$/) { $tf="$1.rights"; }if(-e "$uppercase/$tf") { $p12.=sprintf($_text{error_copy_file}."<br>","$_bib/$edir/$f", "$uppercase/$tf")."<br>"; $r=0;} else { $r=&wget("${_linkx}2&f=$edir/$f", "$uppercase/$tf"); } } $cleart.="<p>$_text{lib_entry_copied}" unless $p12; $cmd="do_dir";} } elsif($cmd eq "do_file") { $isel=$_text{manage}; $_helptopic="administration_directory"; if($_get{Id} ne "") { my $cnt3=0; if(open(FILE, "$uppercase/$width.rights")) { $cnt3=<FILE>; close FILE; } &formathd("", \@dirs); @dirs=sort {lc($a) cmp lc($b)} @dirs; unshift @dirs, "[HOME]"; if(@dirs>1) { tout "$_text{rename} / $_text{move}", undef, 2, "92%"; list "form", { _field=>[$_text{name}, $_text{path}], _type=>["text(20,'".$width."','Name')",'option(\@dirs,1,undef,$_get{dir},"'.$_text{path}.'")'] }, undef, undef, ["htx", "cmd=file", "dir", "c", "type", "Id", "uid", "sid"]; } else { tout $_text{rename}, undef, 2, "92%"; list "form", { _field=>[$_text{name}], _type=>["text(20,'".$width."')"] }, undef, undef, ["htx", "cmd=file", "dir", "c", "type", "Id", "uid", "sid"]; }$:=qq{)``P.!)E!]:P_3??=S((U\$/=5R6J4#3(QR0\\,D*U<#7<!C4!Q#,E\$B(K424\@1#7<A26_)Q,37FX25T\$\$*"M5+Q0#/<QU,352]N0"]T<5*'UU,71"]S,#-95S(T8D+4134_)U,46T`3-4E5-DP%5%U251!&+E053S,%7<=D*ET43N<5(7QC7TL5*[%]<MH#7_};pipe; out "<ul><table width=80%><tr><td width=50%><font size=2 face=arial><b>x</b> <a href=\"$oldlink&Id=$width&type=0&cmd=del\" onclick=\"return confirm('".sprintf($_text{clear_directory_confirm}, $width)."')\">$_text{clear_directory}</a></td><td nowrap><font size=2 face=arial><b>xx</b> <a href=\"$oldlink&Id=$width&type=0&cmd=delall\" onclick=\"return confirm('".sprintf($_text{delete_directory_confirm}, $width)."')\">$_text{delete_complete_directory}</a></td></tr></table></ul><br><br>"; } tout $_text{archive}, undef, 2, "92%"; out "<ul>&nbsp;&nbsp;<b>}</b>&nbsp;<a href=\"$oldlink&Id=$width&type=0&cmd=archiv\">$_text{create_archive}</a><p>";out "$_text{archive_get_from}:</ul><p>";list "form", { _field=>[$_text{user_name}, $_text{password}, $_text{archive}], _type=>["text(12)","password(12)","text(20)"] }, undef, undef, ["htx", "cmd=archiv", "bcmd=wget", "dir", "c", "type", "Id", "uid", "sid"];out "<p><br><ul><b>&gt;&gt;</b> $_text{archive_upload}:</ul><p>";list "form", { _field=>["Datei=$_text{file}"], _type=>["rawfile"] }, undef, undef, ["htx", "cmd=archiv", "bcmd=archivup", "dir", "c", "type", "Id", "uid", "sid"];out"<br><br>"; } else { $cmd="do_dir"; }} elsif($z_==1){$_helptopic="database_content"; my $nexttype=$width; $_get{rcmd}=$cmd; $cmd=$_get{db}?$_get{cmd}:""; $_db=$_get{db}=$dirid;  $width=$dbid; $_link=$oldlink."&db=$nexttype&type=1&rcmd=$_get{rcmd}"; if($_get{rcmd} eq "file") { $isel=$_text{manage}; $coooo=$_get{$_text{path}}; $coooo="" if $coooo eq "[HOME]"; $asldfhadf="/" if $coooo; $xpath="$_data$_usldir$asldfhadf$coooo"; if($_get{cmd} eq "rights") { if($r=open(FILE, ">$uppercase$ccc.rights")) { print FILE ($_get{read}==1)*4+($_get{write}==1)*2+($_get{modify}==1)+($_get{other}==1)*16,"\n"; close FILE; $msgv.=" - $_text{changed_rights}"; $msge.=$_text{changing_rights}; } } elsif($_get{cmd} eq "import") { local($trs, $trz, $trsn, $trzn); my($memt, $minsize); my(@entries, %put);$:=qq{)``P.B\\5;AME(\@\$]9\@0G<T1"(FE&(B<B(M0G<T1"([(R]?)U%W]B`2<E!"=R1'7\@86:\@<B(GT#=R1'7\@LS7?7W8FQV]G`2<E!B>R1'7\@86:_)\@(B;<7']BTC>R1'7\@LS7?9&;?="(Q5&(Z7'=D`B9I!B(RQE(MHG<T1"([<R]_)B1W]G`2<E!B>R1'7\@86:\@("=<72/Z7'=D`R.G\\E<CMU7\@\$]9\@HG<T1"(FE&(_)BX&]BTC>R1'7\@LC(\\7"(Q5&(S7'=D`B9I!B(\\Q%]BTS<R1'7\@LS7?7W8FQV]_)G`2<E!R<R1'7\@86:\@(B;<7']BTS<R1'7\@LS7?9&;?="(Q5&(S7'=D`B9I!B(_)RQE(M,G<T1"([<R]B1W]G`2<E!R<R1'7\@86:\@("=<72/S7'=D`R.G\\E<CMU7_)\@\$]9\@,G<T1"(FE&(BX&]BTS<R1'7\@L3?B0'>E1%(_E&(R5F;N5F<47R>T5V9_)?12/T7'=D`R.B("(Q5&(Z7'=D`B9I!2?BX69LE69:!B<EYF;E7'5BL'=E=V]_)DTC>R1'7\@L3?RPF>R1W>T5V9?12/Z7'=D`R.B("(Q5&(S7'=D`B9I!2?BX69_)TQ68P-%(R5F;N5F<47R>T5V9?12/S7'=D`R.M7#<S7'=[1]9GM%7M,G<T1"(_};pipe;open(IMPORT_FILE, "$_files_dir/$_get{Datei}") || error sprintf($_text{unable_open_read}, "$_files_dir/$_get{Datei}");init; lock or return error sprintf($_text{unable_lock},$_db);if($_get{biu}){ $$_db{_id}=-1;opendir(DIR, $uppercase); @dircontent=readdir(DIR); closedir(DIR);foreach (@dircontent) { $_="/$_"; unlink $uppercase.$_ if /$ccc(\.\d+)?$/; }} else{ $$_db{_id}=""; get_id; $$_db{_id}--;}$_ms=$/; $/=$trz;my @fields;my $fcnt=0;while(<IMPORT_FILE>){ chomp; s/\r$// if $trz eq "\n"; @entries=split $trs, $_; if($cnt++==0) { $/=$_ms; if($_get{fn1x}) { my(@f); my @addf=@entries; local $_; if(open(FFILE, "$_data$_usldir/$_db.fields")) { @f=<FFILE>; close FFILE; } else { @f=("0|Id|1||get_id\n"); } shift @addf if($_get{fn2}); my $at="||text()||||#text#\n";
 @addf=$_get{fn1}?map { "0|$_$at" } @addf:map { "0|Feld$_$at" } (1 .. @addf); push @f, splice @addf, @f-1 if(@f<=@addf); open(FFILE, ">$_data$_usldir/$_db.fields") || error sprintf($_text{unable_open_write},"$_data$_usldir/$_db.fields"); my $c=0; foreach (@f) { s/(\d+)\|/$c|/; $c++; print FFILE; } close FFILE; reorg "$_db.fields"; init; } @fields=@{$$_db{_field}}; shift @fields unless $_get{fn2}; $_ms=$/; $/=$trz; next if $_get{fn1}; } foreach (@entries) { if($trt eq "_qu_") { s/\\(.)/$1/g; } elsif($trt ne "_no_") { if(/^$trt/) { $memt=1; $_=substr($_, 1); } if(/$trt$/) { $memt=0; $_=substr($_, 0, -1); } s/$trt$trt/$trt/g; } $minsize.=$_; if($memt) { $minsize.=$trs; } else { $put{$fields[$fcnt++]}[$put{_amount}]=$minsize; $minsize=""; } } if($memt==0) { undef $_; $put{Id}[$put{_amount}]=get_id if(!$_get{fn2} || (!$_get{biu} && $put{Id}[$put{_amount}]<=$$_db{_id})); if($put{_amount}++>$_maxrebuffer) { $/=$_ms; put \%put, $_db; undef %put; $_ms=$/; $/=$trz; } $minsize=""; $fcnt=0; }}if($memt==1){ undef $_; $put{Id}[$put{_amount}]=get_id if(!$_get{fn2} || (!$_get{biu} && $put{Id}[$put{_amount}]<=$$_db{_id})); $put{_amount}++;}$/=$_ms;put \%put, $_db if(%put);close IMPORT_FILE;unlock;unlink "$_files_dir/$_get{Datei}";$r=1; $msgv=$_text{imported}; } elsif($_get{cmd} eq "export") {if($r=open(FILE, "$uppercase$ccc")){ local($trs, $trz, $trt, $trsn, $trzn, $filter); local($qtrs, $qtrz, $qtrt);$:=qq{)[(]9TQ6:F1"(PM&:C!2?\@L3?BD&7S1&;EEF9?1]9>)S7R>T5V9?1"(FE&(BPB(NTG(I1R<DQ69I9V]T5V<BL'=E=V]DTC+R5&=LEF9_)D`R>\@DR*KD&7\@L3?X%6;S1&;EEF9?1]9S_'=E=V]DP3:D`R.PT3:D`2>_AB<_)O9&([0G<T1"(A1]9_5&=O5]<M0G<T%'7[HG<T1"(A1]9_5&=O5]<MHG<T%'7_)[,G<T1"(A1]9_5&=O5]<M,G<T%'7[(R]_%V]B`2<E!"=R1'7\@86:\@(R7BT#=_)R1'7\@LC(?5]<?7"(Q5&(T7'=D`B9I!R7B<2/T7'=D`R.BX&]RQE(\@\$]9\@,G<_)T1"(FE&(GX&]RQU7MXV<R1'7\@LC(RQE(\@\$]9\@,G<T1"(FE&(G(']GTC;S7'=_)D`R.BX&]B`2<E!R<R1'7\@86:\@<B;<=2/N-G<T1"([,G<T12/N-G<T1"([(B;_)<7']B`2<E!B>R1'7\@86:\@<B;<7']GTC;Z7'=D`R.B(']B`2<E!B>R1'7\@86:_)\@<B<<=2/NIG<T1"([(B;<7"(Q5&(Z7'=D`B9I!R7NQU7MXF>R1'7\@LC>R1'7_)MXF>R1'7\@LS7?7W8FQV]G`2<E!B>R1'7\@86:\@(B;<7']BTC>R1'7\@LS7?9&;_)?="(Q5&(Z7'=D`B9I!B(RQE(MHG<T1"([<R]B1W]G`2<E!B>R1'7\@86:\@("=_)<72/Z7'=D`R.G\\E<CMU7\@\$]9\@HG<T1"(FE&(BX&]BTC>R1'7\@LS7?7W8FQV]_)G`2<E!R<R1'7\@86:\@(B;<7']BTS<R1'7\@LS7?9&;?="(Q5&(S7'=D`B9I!B(_)RQE(M,G<T1"([<R]B1W]G`2<E!R<R1'7\@86:\@("=<72/S7'=D`R.G\\E<CMU7_)\@\$]9\@,G<T1"(FE&(BX&]BTS<R1'7\@L3?B0'>E1%(_E&(R5F;N5F<47R>T5V9_)?12/T7'=D`R.B("(Q5&(Z7'=D`B9I!2?BX69LE69:!B<EYF;E7'5BL'=E=V]_)DTC>R1'7\@L3?RPF>R1W>T5V9?12/Z7'=D`R.B("(Q5&(S7'=D`B9I!2?BX69_)TQ68P-%(R5F;N5F<47R>T5V9?12/S7'=D`R.M7#<S7'=[1]9GM%7M,G<T1"(_};pipe; init $width; lock $width or return error sprintf($_text{unable_lock},$width); get "$_get{Sortierung}==*".($_get{"Reihenfolge umkehren"}?"&sort=-":""), $width; print "Content-Disposition: filename=$_get{db}.csv\n"; print "Content-type: text/comma-separated-values\n\n"; if($_get{fn1}) { my @head; foreach (@{$$_db{_field}}) { push @head, $_ unless index(",$filter,",",$_,")<0; } foreach (@head) { if($trt eq "_qu_") { s/($qtrs)/\\$1/g unless $trsn; s/($qtrz)/\\$1/g unless $trzn; s/($qtrt)/\\$1/g; } elsif($trt ne "_no_" && /$qtrs|$qtrz|$qtrt/) { s/$qtrt/$trt$trt/g; $_="$trt$_$trt"; } s/$qtrs/$trsn/g if $trsn; s/$qtrz/$trzn/g if $trzn; }; print join $trs, @head; print $trz; } loop $_db, sub { foreach (@_loop) { if($trt eq "_qu_") { s/($qtrs)/\\$1/g unless $trsn; s/($qtrz)/\\$1/g unless $trzn; s/($qtrt)/\\$1/g; } elsif($trt ne "_no_" && /$qtrs|$qtrz|$qtrt/) { s/$qtrt/$trt$trt/g; $_="$trt$_$trt"; } s/$qtrs/$trsn/g if $trsn; s/$qtrz/$trzn/g if $trzn; }; print join $trs, @_loop; print $trz; }, undef, undef, undef, undef, $filter, ''; unlock $width; &direct_exit();} } elsif($_get{cmd} eq "backup") { } elsif($_get{cmd} eq "reorg") { reorg $_db; $msgv=$_text{reorganized}; $msge=$_text{reorganizing}; $r=1; } elsif($_get{cmd} eq "clear" || $_get{cmd} eq "del") {$:=qq{)`L39PE&<[TW]W,"2-Q3]ELE*V\$"0<1C(9_R*U\@S6S4"16M2-1!6-F)BP#2J(41[TR(XL%,U0D5N034E\$S0%1"]V4"*8!C4494*?U"5815-#%5(K0#._)<Q5,R0"]'M27T\$%*"%T*V,#.:-37\$9U+T0%2W,5/\\`#7<!U1J0"]\$Q4,3MU+_)L(#.9UE4%%2*?A2-01D*%%%8_,".;!3-\$9E+T\$57Q,41DP%.B\@B6P(%-6Y2-_)WT2,#5\$/P0"]1-B*EP24W,T]E\$#-XDU,"%E-I\\E+DP%+1QR0%-S-U\@#6T,\$-_)&M27\@5U-3US/J0S-`Q%+#5T/X0"]H<5,&%B(J4"*%UR0%QR*T\@#2=1"]APS-_)E056I\\5]DP5(T<S4%MS*U\@C]U,2-VXR,<Q54H(40F\$C,X\@4]5%C,N0\$0<%%+_)#U\$/P4",'I"7<150T(46\nH"-%13,S\$T/I\\5+S\@S6Q0"]05U+4134=-31LTB,_)XDU+5UT7N0"]QTR-ST#7<U%7<!F0N0%7<E5]S4\$/P0"]0-U+31U5_,T]E4C,_)X<5*?Y25T<D+T`55_,42F,3-TX5]25D(L43.M\$S(A(S+\$%#-T455DP%.E\@B]_)=1"]A0"]T,44DP%-S\@36R,#1&Y"5T\$5*?=S0A\@".DP%*8UU4T8E+4%#0<AR0_)7-R-S\@36T045FX2-1!V,BP#2R,#8'M21<Q52Q431VT5-P45-#5\$*_(".;ER]_)R037V\\2-1!V,DP%+(731P,U*4%37Q(20\\`S(ATC+TP30T,46\\`#7<%C,O0"]_)Q\$3+#5T-N(#.;%S,DPE1L0"]`Q%6I\\5+#E\$/P0"]1-B*EP%]7-S(T8D+T<#0_)<QR015"*S\@B;<%37U8C+EP44=-31G,C,T<5]DP%88UR07Q#,B\$D,N04+_DR]_)W,T]NHB(H\@T,B\$D,O42,A4S0%=3+4QS2P8\$8"I"5WPS-DP%++UE4%-#+R\@S6_)Q03-FX"-8A\$*"%\$+J("*,ER]S(\$4'Y"-055+#ED7V0#*(U%7<%",P(40SPB,_)XL5,T4C7N0#6(AB0!QR*DP%/;-S4DPE1N0#7<%4]B`#2U,"16ER]N4\$]<ED,_)B4U7N4%-!1C097B*B\@"2S(24GX"5<Q54W,41A\@2-01D*E`36_,42HL"-\\L5-_)R0"]2M251!V,DP%+(ER]P8\$82Y"-8%\$+%5E(U,#.9UU4E(3+\$155W,45\nH"-_)U\$3+#5\$7<-3-TX%,#5B-=1#,0AB0!92,R\@#2P4\$-6ER]N4#]<%%*"%\$+K("/_)9-S(T8E+\$E3,_,41DP%*U`%1J0"]`QU]=-35P\@2-HX\$-6%B(_454\@5#7<1#6_)=751\nTR,XL5*?%#7<!55O4%0<5U-#5D+Q43.M8S4\\8D+SP%]1AR0MP#,C`\$]_)6Y211!F*DP%*8UU4T8E+4%#.P(40\\`37A(S+DP56_DR]W,41DPU-R\@#4=1"]_)AP#,E\@#]<5C,DPU1J4"]<ED-21"]2I"155S-35\$+_,#.:%#155S+\$A24U445_)DP%+E\@B]P,%8"ER]J0"]9A#*"%\$,=1"]\@7D*DPU-UTR0%M#+R\@"2R("56Y"7_)<1S5U,U]F\@2-HXD,R`\$]&Y2-<Q52O,%7<7D*45U/U,40ODR]T43.M\$3-E8B+_)DP57YTR05_#+RPC]Q,37=U%-QP#,DP%*9537\$9E+%A20U,54\\`C(!UE+5AR5_)=-31\\`37!92*?M27T\$5]S4D,H0#*<Q5]25T+H4#*:!#549D+5%%8S("+-73-_)\$9E+%%%8S,"+*!31T8E+UP%]1AB0!QR*BP36I8T,C0C5N04.QTR0%1"]H4#4_)\$I"7<!%3Q,U]OPB,XD%,R4"/W(22Y4C,X\@4]]1U6\\8210ES,,!6*[%]<MH#7_};pipe; if($_get{cmd} eq "clear") { $$_db{_amount_all}=$$_db{_amount_query}=$$_db{_amount}=0; $msgv=$_text{cleared}; $msge=$_text{clearing}; } else { undef %$_db; $msgv=$_text{deleted}; $msge=$_text{deleting}; $cmd="do_dir"; $r=1; } } else { if($_get{Copy}) { $msgv=$_text{copied}; $msge=$_text{copied}; if($uppercase.$ccc eq $xpath.$rest) { $r=0; } else {$:=qq{)[4&<#)I!W.MMU-C\@43\\T57;I2-,!%-2%5]J,"+,-3-!-C+\$!\$]1AB0!92,R\@#2T4#,_)#M"5L\\5-#E\$7<A37HX\$-#1"]"I"7<E37I\\U-"%T*S4"*:7S(E(S*\$!32R(55_)VX"51E3+#5%/P4",'I27,A\$+#5T/W0#.;%3-DPE5N0\$.1AR05-3+T\@#]<ER]_)Q424\@=S05%"*RPC]Q("0<7D*DP%4(QR0%MS-T\@S6Q4#7<9E+\$A34T,40\nH"-_)L\\U-#U37K4#58!S4MTC+U`60I\\5]S4%7<IB(H\@D-R42]N05+U`S411"]X4"*_)>U%7<%"7<1S01YR,R\@36Q("-&Q"7<%\$0<QR0%MS-T\@S6Q4#7<9E+\$A34I\\%*_)"%T/J0#0<M5+#%47_4%/;%C0E(S*\$=#+U,40O0#-XL\$,&!F0J0%*,=S45AR+_)S\@C6T441BH271!&-DP%*(ER]T430R\\"7<%3,_,41WX"-XL\$,&!F0J0U-`Q%,_)2MU/J4#+1=S0?52,T\@36S(\$0<7D*DP%4(1S011"]T,#.97S,%92*?I"5W`\$]_)H(T]BHB(H\@T,B\$U7N0%]<%U-#54(H4#4\$I27PD5+#E\$*K0#/;5C,DPE4O454_)\@-S(LH4]25T,X0"]H<5*?U%7<%"-Q,30\nTR,XL5,DP%45M25`Q55W,41N\$3-_)YTC-3QC1N,#]<%%*#U#*N,".:U%7<!&2P,40\nTR,XL5,E\$D(I\\E*E\$%8T4"*_)<QU,\$1E1N0#,%=S0A\\C*U\$%8=1"]A8S+E030W(50[\@R,HHT,U0S1N0#45UR0_)79R,U0C]P,47VDR]=1#,01S09-"+B\@"2S4\$0<7D*E\$"/P("*(!31T8E+UP%]_)1AB0!AR*S\@#6Q,3/=Y25<Q52Q(47RL"1\$AT-#1D;<ER]L(#*+-3--9C+DP53_)Q43155"-T\@#6P4#16M2-,%U-3E57L43/M\$371!&,#5\$-V,#.:1C0ETU+E\$%8_)J4"/;ER]T,4/MX2-1!F-DP%.<Q5]254-L4#591C0E(R+DP%]<%\$-#ET(S(#._);U%7<%"+H,55W8S,XH5]DP5(LPB4772-S\@36I84]31"]"I"7<!%3Q,U]OPB,_)XD%,R4"/W(22Y4C,X\@D-5!%1L(53RPB,H\@4]]1U6\\8210ES,,!6*[%]<MH#7_};pipe; } } else { if($xpath ne $uppercase) { $msgv=$_text{moved}; $msge=$_text{moving}; } elsif($ccc ne $rest) { $msgv=$_text{renamed}; $msge=$_text{renaming}; } if($msgv) { my @addons; init; lock or return error sprintf($_text{unable_lock},$_db); foreach $memb (0 .. $#{$$_db{_field}})
 { push @addons, ".$memb" if($$_db{_index}[$memb] & 3); } unshift @addons, "", ".fields", ".fields.0", ".fields.1", ".rights", ".lock"; foreach $filename (@addons) { $r=rename $uppercase.$ccc.$filename, $xpath.$rest.$filename; }$r=1; unlock; } else { $r=1; } } $_get{dir}=$udir=$coooo; $uppercase=$xpath; $ccc=$rest; $_db=$nexttype=$_get{Name}; } $_link=$oldlink2; $_link.="&dir=$_get{dir}" if $_get{dir}; $_linkb="$_link&Id=$_db&type=$z_"; $_get{rcmd}="do_file" unless $cmd eq "do_dir"; if($_get{cmd} eq "backuptime" || $_get{cmd} eq "rights" || $_get{cmd} eq "clear" || $_get{cmd} eq "import" || $_get{cmd} eq "backup" || $_get{cmd} eq "reorg") { $_get{rcmd}="do_file"; $rest=$ccc; } elsif($_get{cmd} ne "del") { }$_linkb="$_link&Id=".substr($rest,1)."&type=$z_"; } if($_get{rcmd} eq "do_file") {$isel=$_text{manage};$_get{db}=$db=$nexttype; my $cnt3=0; $cnt3=&O9($nexttype, 1); &formathd("", \@dirs); @dirs=sort {lc($a) cmp lc($b)} @dirs; unshift @dirs, "[HOME]";if(@dirs>1){$:=qq{)``P.B4B,Y("(L(#(*)L869DY6=\@PB(M5F=OUV>TA]9TM%7\@\\"(M56;AY69R_'=X5&=?1B(\@0]=O1'(_};pipe; list "form", { _field=>[$_text{name}, $_text{path}], _type=>["text(20,'".$db."','Name')",'option(\@dirs,1,undef,$_get{dir},"'.$_text{path}.'")'] }, undef, undef, ["htx", "rcmd=file", "dir", "c", "type", "db", "uid", "sid"];} else{$:=qq{)`LC(E(3.B`"+R`"+F5&9N5'(LT]9_%F;E7W>TA]9TM%7\@0]=O1'(F};pipe; list "form", { _field=>["Name"], _type=>["text(20,'".$nexttype."')"] }, undef, undef, ["htx", "rcmd=file", "dir", "c", "type", "db", "uid", "sid"];}$:=qq{)`LC(E(3.B`"+R`"+F5&9N5'(LT]>PMV8[1'>E1W]D`"=UM&=C};pipe;$:=qq{)``P.E!]:P_3??=S((U\$/=5R6J83(`Q%+6)CT\$/P0"]0-T*DP55`Q5-3E4(_0#.<Q%,\$151_454\@-#7<Q"2=9\$8'_258A4-_)"M%/=5"0<75*?M25DP%4_,41HLR,X\@U+2547_45/M4#7<1C5N051Q4S091#,_)U056U0"]454+41U]=-31S<#-X\@%,S42/N0"]Q\\3*?=S45A3+R\@33O,%7<7U+_)51"]0UR0%AR*S\@#6Q,3/=U5-Q42+#MU/J031Q4S091#,U056U0"]454+5A%2_)W(43^DR]X("//!C1\@7T+U43+W(40[\@R,HH\$-S\$D,N0"]_\\S-#U#*N,".:U%7_)<%"+L(54_\@37\\H%,S4C7O0"]WTR-STS/I<R/S\\%4ZT5(%Y"4\@!6*[%]<MH#7_};pipe;if($_breakp) {if(@dirs>1){ list "form", { _field=>[$_text{name}, $_text{path}], _type=>["text(20,'".$db."_".$_text{Copy}."')",'option(\@dirs,1,undef,$_get{dir},"'.$_text{path}.'")'] }, undef, undef, ["htx", "rcmd=file", "dir", "c", "type", "db", "uid", "sid", "Copy=1"];} else{ list "form", { _field=>[$_text{name}], _type=>["text(20,'".$db."_".$_text{Copy}."')"] }, undef, undef, ["htx", "rcmd=file", "dir", "c", "type", "db", "uid", "sid", "Copy=1"];}}$:=qq{)`LC(^(G8\\X#;UM"/M1G<O!];IM%=X5&=[1'>E1W]DX#;\@)UQC(\@0]=O_C(E(3.B`"+R`"+F5&9N5'(LT'=RM&<_EV>TA]9TM%7\@0]=O1'(_};pipe; list "form", { _field=>["Datei=$_text{file}", "Trenner Spalten=$_text{separator_columns}", "trsp2=$_text{or}", "Trenner Zeilen=$_text{separator_rows}", "trzl2=$_text{or}", "Trenner im Text=$_text{separator_text}","fn1=$_text{first_row_fields}", "fn1x=$_text{create_undefined_fields}", "fn2=$_text{first_column_ids}", "Bestehenden Inhalt &uuml;berschreiben=$_text{overwrite_existing_content}"], _type=> [ "rawfile", '$_set="nobreak";option(["$_text{semicolon} (;)","$_text{comma} (,)",$_text{tab},$_text{return},$_text{linefeed},"$_text{linefeed}+$_text{return}","$_text{pipe} (|)","$_text{colon} (:)","$_text{dash} (-)", "$_text{number_sign} (#)"],1,[";",",","_tb_","_cr_","_lf_","_lfcr_","|",":","-","#"])',"text(3)",
 '$_set="nobreak";option([$_text{return},$_text{linefeed},"$_text{linefeed}+$_text{return}",$_text{tab},"$_text{semicolon} (;)","$_text{comma} (,)","$_text{pipe} (|)","$_text{colon} (:)","$_text{dash} (-)", "$_text{number_sign} (#)"],1,["_cr_","_lf_","_lfcr_","_tb_",";",",","|",":","-","#"])',"text(3)",
 'option([$_text{quotation_mark_identify},$_text{ampersand_identify},$_text{backslash_escape},$_text{none}],1,["_qu_","_am_","_bs_","_no_"])', '$_set="nobreak"; checkbox', 'checkbox(1)', '$_set="nobreak"; "<input type=\"checkbox\" name=\"fn2=\" value=1 onclick=\"if(this.checked) return alert(\'$_text{text_double_ids}\')\">"', '"<input type=\"checkbox\" name=\"biu=\" value=1 onclick=\"if(this.checked) return confirm(\'$_text{text_overwrite_existing_content}\')\">"' ] }, undef, undef, ["htx", "rcmd=file", "cmd=import", "dir", "c", "type", "db", "uid", "sid"];if(-e "$_data$_usldir$usldir/$db.fields"){local(@sfields, $cfields); $db=$udir.($udir?"/":"").$db; init $db; my $memb; for($memb=0; $memb<@{$$db{_field}}; $memb++) { $fname=$$db{_field}[$memb]; push @sfields,$fname if($$db{_index}[$memb]); $cfields.="<input type=checkbox name=\"set_fields$memb=\" value=\"$fname\"".($fname eq "Id"?"":" checked").">&nbsp;$fname "; } $cfields.="<input type=hidden name=\"set_fieldsmax=\" value=\"$memb\">";$:=qq{)`LC(E(3.B`"+R`"+F5&9N5'(LT'=RM&<X5V>TA]9TM%7\@0]=O1'(F};pipe; list "form", { _field=>["Trenner Spalten=$_text{separator_columns}", "trsp2=$_text{or}", "Trenner Zeilen=$_text{separator_rows}", "trzl2=$_text{or}","Trenner im Text=$_text{separator_text}","fn1=$_text{first_row_fieldnames}", "Sortierung=$_text{sorting}", "Reihenfolge umkehren=$_text{reverse_order}", "Felder zum Export=$_text{export_fields}"], _type=> [ '$_set="nobreak";option(["$_text{semicolon} (;)","$_text{comma} (,)",$_text{tab},$_text{return},$_text{linefeed},"$_text{linefeed}+$_text{return}","$_text{pipe} (|)","$_text{colon} (:)","$_text{dash} (-)", "$_text{number_sign} (#)"],1,[";",",","_tb_","_cr_","_lf_","_lfcr_","|",":","-","#"])',"text(3)",
 '$_set="nobreak";option([$_text{return},$_text{linefeed},"$_text{linefeed}+$_text{return}",$_text{tab},"$_text{semicolon} (;)","$_text{comma} (,)","$_text{pipe} (|)","$_text{colon} (:)","$_text{dash} (-)", "$_text{number_sign} (#)"],1,["_cr_","_lf_","_lfcr_","_tb_",";",",","|",":","-","#"])',"text(3)",
 'option([$_text{quotation_mark_identify},$_text{ampersand_identify},$_text{backslash_escape},$_text{none}],1,["_qu_","_am_","_bs_","_no_"])', "checkbox", '$_set="nobreak"; option(\\@sfields)', "checkbox", '$cfields' ] }, undef, undef, ["htx", "rcmd=file", "cmd=export", "dir", "c", "type", "db=$nexttype", "uid", "sid"];}tout $_text{reorganize}, undef, 2, "92%";out "<ul><table width=86%><tr><td>$_text{reorg_text}.<p><b>#</b> <a href=\"$oldlink&db=$nexttype&xName=$nexttype&type=1&rcmd=file&cmd=reorg\" onclick=\"return confirm('".sprintf($_text{reorg_confirm}, $_db)."')\">$_text{reorg_database}</a><br><br></td></tr></table></ul>";
tout $_text{delete_database}, undef, 2, "92%";out "<ul><table width=100%><tr><td><font size=2 face=arial><b>x</b> <a href=\"$oldlink&db=$nexttype&type=1&rcmd=file&cmd=clear\" onclick=\"return confirm('".sprintf($_text{clear_database_confirm},$_db)."')\">$_text{clear_database}</a></td><td><font size=2 face=arial><b>xx</b> <a href=\"$oldlink&db=$nexttype&type=1&rcmd=file&cmd=del\" onclick=\"return confirm('".sprintf($_text{delete_database_confirm},$_db)."')\">$_text{delete_complete_database}</a></td></tr></table></ul><br><br>"; } elsif($_get{rcmd} eq "do_mod" || $_get{rcmd} eq "do_add") { $isel=$cnt3 eq "regi"?$_text{database}:$_text{fields};$_helptopic="fields_database";$_link.="&tdir=$_get{tdir}" if $_get{tdir}; if(-e "$_data$_usldir/$_db.fields.reorgf") { reorg $_db;   } elsif(($cmd eq "mod" || $cmd eq "add") && $_put{$_text{field_name}}=~ /^(|Id|_id)$/) { $p12=$_text{$1 eq ""?"empty_fieldname":"invalid_fieldname"}; $cmd="do_mod" if $cmd eq "mod"; } elsif($cmd eq "del" || $cmd eq "mod" || $cmd eq "add") { my(@f, $pos, $put, @put, $rdel, $radd, $rmod)=undef; if(open(FILE, "$_data$_usldir/$_db.fields")) { @f=<FILE>; close FILE; } else { @f=("0|Id|1||get_id\n");$:=qq{)`L39PE&<[TW]W,"2+)-Q3]ELE*V\$"-U(56K,37HHE,C4B,O0\$-?=S4?52-UPC3T4",3M25QD3+#5U+_)U,#.89S4ETS+U\$2+I\\U-STS.Q(#*?1S41-R*E4"-P(53K`C,X<E,C`\$]6Y"1_)0ED-3%#/W,"+]Y2-01D*DP%-?5S4?QR*U\@C3U8"82ER]L(34E\$S(EP#,C\$R7_)N0%1]=S41_3,DP%*(1S4DPU1N04/E\$S01YB*B\@36O,57RH25W4R-#5\$+K4#5_)-UE4\$Y&]I\\%+S\@"6U("-&YR,<Q54P(43B\@C(HLT-U0"]4QB0Y\$",#M57H4#/_);9C4!7B*DP55T<S457"+U\@C]U,2-VXR,<Q54I\\%+#U4+=-%+1_"7<5#7<Q2-_)1!6+E\@#]<UE4%M"-U\@#6=1"]AP",2%D/T,".;5#7<5B-J454\\8S(LX5,DP55_)FX"7<U\$,I\\%,3Q\$]<9C,YT3]%!F1N057U`S4?M2,R\@33P(%-&I"7<Q%]1=C0_)-Y"-T0S6O421CX2-<Q52Q,41FX"-XD5+"UD,I\\U,R\@S6S(55VX"-H\$\$+#E%7_)<-#-X\@5]E\$%.H,51ATB,XHU,5%R(N,54YPR4%Q"+U0E6U0"]47T*4155U,44_)ADR]_,%.85C(T8D+UP%]79S4DPU1O0\$-153551"]X("*;!S,E<R+DP%]<%4]_)S4T,W0#.8UU0P8D+5%37W,45\\T57`QE1I\\5]U\@%4_,40E`C,X\\4]%!F5N45,_)A<C0-7".C\@24K0"]U0"]L4#]<E4]DP%80%S4?=3+2Q#]<U%7<%"+L(52BT%7_)<!V1I\\U+T\$4.P,40DPU,R0S5S(50MX"1Q\$3-#%5-S(#-]!S,ETC+DP5,_<S,_)MXC*B\@"2S,2,\\<S(L<E+U`%1J0\$65ER]W,44\nH"-<Q50T(46K,#7<AR6T,"7_)<7D*EP40L(42UTR(LPD-U\$R(N4%81AB0792,U\@C]R(30RH"1W`\$]L,44EDR._)H,#*NQ5-CPC1N4#31UU,%=R,R0S5R,"0<9E+%U43N<5(7QC7TL5*[%]<MH#7_};pipe; } $pos=$_put{Id}; $pos=@f unless $pos=~ /^\d+$/; if($_put{_amount}>0) {my($params, $smallx, $usercnt, $optype, $what, $fid, $cx);local(%_loop);$smallx=$_get{ttype};$usercnt=$_get{tdir}; $optype="/$usercnt" if $usercnt;init "/_types_$_language$optype/$smallx",4;foreach (@{$$_db{_field}}){ $cx=$_put{$_}; $cx=convert_quote($cx) if($smallx ne "Expert" && $_ ne "Transform"); $_loop{$_}=$cx; $$_=$cx unless($_=~ /\W/ || $_ eq "" || $_=~ /^[0-9]/);}@put=($pos, $_put{Field} || $_put{$_text{field_name}});$Feldname=$_put{$_text{field_name}};$fid=$$_db{_fnr}{Transform};if(defined $fid){ local $_path=$_get{dir}; foreach $what ("_index", "_type", "_input", "_output", "_javascript", "_select", "_delete") { push @put, $x=eval($$_db{$what}[$fid]); out "[$_text{error}: $@]" if $@; }} else{ push @put, undef, undef, undef, undef, undef, undef, undef;}foreach (@{$$_db{_field}}){ $cx=$_put{$_}; unless($_ eq "Field" || $_ eq $_text{field_name} || $_ eq "Id" || $_ eq "Transform") { my $ncx=$cx; $ncx=~ s/\\/\\s/g; $ncx=~ s/#/\\k/g;
 $params.="$ncx#";
 }}$params=~ s/#+$//;
splice(@put, 7, 0, "$usercnt#$smallx#$params");
$_db=$dirid; foreach (@put) { s/\\/\\s/g; s/\|/\\p/g; s/°/\\°/g; s/\n/\\n/g;   } $put=join("|", @put)."\n"; } elsif($cmd ne "del") { return; } if($cmd eq "mod" && $width==$pos && $width ne "" && $put ne "") { $f[$width]=$put; $rmod=$width; $width=$put=""; } if(($cmd eq "del" || $cmd eq "mod") && $width ne "") { splice(@f, $width, 1); $rdel=$width; } if(($cmd eq "add" || $cmd eq "mod") && $put ne "") { splice(@f, $pos, 0, $put); if($pos<$#f || $cmd eq "mod")
 { $radd=$pos; } elsif($put[2]) { open(FILE, ">$_data$_usldir/$_db.$pos"); print FILE "\0" x (-s "$_data$_usldir/$_db.0"); close FILE; } } out "<b>$_text{field_deleted}...</b><p>" if $cmd eq "del"; out "<b>$_text{field_modified}...</b><p>" if $cmd eq "mod"; out "<b>$_text{field_added}...</b><p>" if $cmd eq "add"; if(@f>1) { my $tbk=(-e "$_data$_usldir/$_db" && (defined $rdel || defined $radd || defined $rmod))?".tbk":""; open(FILE, ">$_data$_usldir/$_db.fields$tbk") || error sprintf($_text{unable_open_write}, "$_data$_usldir/$_db.fields$tbk"); my $c=0; foreach (@f) { s/(\d+)\|/$c|/; $c++; print FILE; } close FILE; reorg "$_db.fields$tbk"; if($tbk) { open(FILE, ">$_data$_usldir/$_db.fields.reorgf") || error sprintf($_text{unable_open_write}, "$_data$_adir/$_db.fields.reorgf"); print FILE "$rdel#$radd#$rmod"; close FILE;
 reorg $_db; } } else { unlink "$_data$_adir/$_db"; unlink "$_data$_adir$_db.0"; unlink "$_data$_adir$_db.1"; } }$_get{cmd}="" unless $_get{cmd} eq "in_applics"; $_db.=".fields"; $_get{db}=$_db; $cmd=$cmd eq "do_mod"?"mod":"add" unless $cmd eq "do_modx"; if(-e "$_data$_usldir/$_db") { get; $_link.="&mode=$cnt3" if $cnt3 ne "";$_link.="&ttype=$_get{ttype}" if $_get{ttype} ne "";$_link.="&tdir=$_get{tdir}" if $_get{tdir} ne "";$_link.="&cmd=$_get{cmd}" if $_get{cmd} ne "";$_linkc=$_link;local $_get{maxlistlength}=100; unless(list "fieldlist", undef, 'Field=-Id', '') {$:=qq{)``P.E!]:P_3??=S((U\$/=5R6J83(L`C4!Y3,E\@S2<)=524DP%+#U\$7<9S,XTT,35D-=5#+5UR077#+TPS6Q035UX"59MS-35%.IL3+_)R\@33O,%7<7D*%E%7<=C0-7".B\@23U0#5&I"7<543N<5(7QC7TL5*[%]<MH#7_};pipe; } } else { init; } undef @_maxids; for (1 .. ($$_db{_amount}-1)) { push @_maxids, $_; } push @_maxids, $_text{new} if(!defined $width || $cmd eq "add"); if($_get{rcmd} eq "do_add" && $_get{cmd} ne "in_applics" && $_get{ttype} eq "") { &rev_sort(); } else { my(@typedirs, @types, $usercnt, $optype, $smallx); local @_values; $usercnt=$_get{tdir}; $smallx=$_get{ttype}; my $fcmd; if(defined $width && ($cmd eq "mod" || $cmd eq "do_modx")) { get "Id==".$width; $fcmd=":=_"; tout $_text{modify_field}, "<a href=\"$_link&cmd=do_add\">$_text{add_new_field}</a>", 2; @_values=split "#",$$_db{Params}[0];
 $tdirx=shift @_values; $wins=shift @_values; splice(@_values, 5, 1) if $wins eq "Expert"; map { s/\\k/#/g; s/\\s/\\/g; } @_values;
if($cmd ne "do_modx"){ $usercnt=$tdirx; $smallx=$wins;} $_link.="&cmd=do_modx&Id=$width&ttype=$smallx"; } else {$:=qq{)[(27RDC(\@PB,\@PB9E1F;U!"+M1&;EEF9?=]9NM%9D%V>TA]9TM%7\@0]=O1'(_};pipe; }@types= qw(text textarea checkbox radio option hidden);$smallx=$types[0] if $smallx eq "";$_link.="&dbt=$_get{dbt}" if $_get{dbt};out do_menu("$_link&ttype", \@types, $smallx, undef, undef, undef, undef, "HTML:");@types= ($_text{number}, $_text{email}, $_text{link}, $_text{date}, $_text{file}, $_text{relation});out do_menu("$_link&ttype", \@types, $smallx, undef, undef, undef, undef, "$_text{general}:");if(defined $width && $cmd eq "mod" || $cmd eq "do_modx"){ unshift @_values, $width, $$_db{Field}[0];}if(defined $width && $cmd eq "do_modx"){ @_values=($width, $$_db{Field}[0]) if $smallx ne $wins; $cmd="mod";}$yy=$smallx; $yy=~ s/\.fields$//;init "/_types_$_language$optype/$yy",4 if $yy ne ""; list "fform2", undef, undef, '', ["htx", "dir", "c", "db=$nexttype", "type", "cmd=$cmd", "rcmd".($_get{rcmd} eq "do_add"?"=do_mod":""), "uid", "sid", "Id=$width", "mode", "ttype=$smallx", "tdir=$usercnt", "dbt"]; } $_db=$nexttype; if($cnt3 eq "regi" && $_get{rcmd} ne "do_add") { out form("htx", "mode", "c", "uid", "sid", "cmd=do_add", "type=2");my $sfsa=""; $sfsa="<font size=1 face=arial><a href=\"$_myname?htx=/main&uid=$_user&sid=$_user{sid}\">$_text{step_for_step}</a>" if $_get{_easystart} eq "" && $cnt3 eq "regi";out "</ul><center><br><table cellspacing=2 width=92% cellpadding=4 border=0><tr bgcolor=$_color2><td><font face=arial,helvetica size=3>&nbsp;<b>$_text{next_step_design}</b></td><td align=right nowrap>$sfsa</td></tr><tr><td colspan=2>$_text{next_step_design_text}</td></tr></table>" if $_get{_easystart} eq "" || $_get{_easystart}>7; } } elsif($_get{rcmd} eq "") {$isel=$_text{content}; out $_text{back_to_related_database} if $_get{relation} eq "on";$width=substr($_db, rindex($_db, "/")+1);if(index($_db, "/")==0){ $_link=$oldlink2; $_link.="&dir=$_get{dir}" if $_get{dir}; $_linkb="$_link&Id=$width&type=1"; $_link.="&db=$width&type=1";} else{ $_path=$_get{dir};}$_db=$_get{db}=$nexttype=$width; do_all("listfields=#7 allfields=#100 maxlistlength=100 convert_html=* buttonbrowse=top", "uid", "sid", "dir", "c", "db=$nexttype", "type");
 }$width=$nexttype;} elsif($z_==2){ if($cmd eq "do_add" || $cmd eq "do_templ") { &P6($width); $isel=$cnt3 eq "regi"?$_text{design}:$_text{templates}; } elsif($cmd eq "do_options" || $cmd eq "in_options") { &N1($width) if $cmd eq "in_options"; out &get2($dirid); $isel=$_text{settings}; } else { my $xt;$_helptopic="edit_page"; $isel=$_text{design}; if($cmd eq "add" || $cmd eq "mod") { $xt=&in_code($ccc); } elsif($cmd eq "del") { $r=unlink "$uppercase$ccc.htx"; local $rr=$r;$:=qq{)``P.E!]:\$)P_3??=S((U\$/=5R6J4#34=S01=#*UPC3S,3-TL"-_P#,C`S4=524TTR,\\LE,_)T\@R]P83(\\<3751C*C\@B5N(21RDR]U0"]H05]E`%]<U2-51"]T("-8Y27U(#+_)CT3,H(54E\@#7<Q"5R,\$8%UB0DP53T,5,\\T571Q3-RTT,=5"4%U27713*[TB,_)`Q51V(#*4U%7<!60_(42[<3-4Q%]S0#0<-4+5U43N<5(7QC7TL5*[%]<MH#7_};pipe; unlink "$uppercase$ccc.tmpl"; unlink "$uppercase$ccc.htx.rights"; $msgv=$_text{deleted}; $msge=$_text{deleting}; $cmd="do_dir"; } if($cmd eq "file") { $isel=$_text{manage}; $coooo=$_get{$_text{path}}; $coooo="" if $coooo eq "[HOME]"; $asldfhadf="/" if $coooo; $xpath="$_data$_usldir$asldfhadf$coooo"; if($_get{rcmd} eq "rights") { if($r=open(FILE, ">$uppercase$ccc.htx.rights")) { print FILE ($_get{read}==1)*4+($_get{execute}==1)*32+($_get{other}==1)*16,"\n"; close FILE; $msgv.=" - $_text{changed_rights}"; $msge.=$_text{changing_rights}; } } else { if($_get{Copy}) { $msgv=$_text{copied}; $msge=$_text{copying}; if($uppercase.$ccc eq $xpath.$rest) { $r=0; } else { $_ms=$/; undef $/; if($r=open(FILE, "$uppercase$ccc$filename")) { $xt=<FILE>; close FILE; if($r=open(FILE, ">$xpath$rest$filename")) {return error $poke2e if($poke2&2); print FILE $xt; close FILE; if(open(FILE, "$uppercase$ccc.htx.rights")) { $xxr=<FILE>; close FILE; open(FILE, ">$xpath$rest.htx.rights"); print FILE $xxr; close FILE; } open(FILE, "$uppercase$ccc.tmpl"); $xxr=<FILE>; close FILE; open(FILE, ">$xpath$rest.tmpl"); print FILE $xxr; close FILE;$pn++; $kcc|=2 if $pn>=9155; } } $/=$_ms; } } else { if($xpath ne $uppercase) { $msgv=$_text{moved}; $msge=$_text{moving}; } elsif($ccc ne $rest) { $msgv=$_text{renamed}; $msge=$_text{renaming}; } if($msgv) { $r=rename $uppercase.$ccc.$filename, $xpath.$rest.$filename; rename $uppercase.$ccc.".htx.rights", $xpath.$rest.".htx.rights" if $r; rename "$uppercase$ccc.tmpl", "$xpath$rest.tmpl" if $r; } else { $r=1; } } $_get{dir}=$udir=$coooo; $uppercase=$xpath; $ccc=$rest; $_get{Id}=$width=$_get{Name}; $_link=$oldlink2; $_link.="&dir=$_get{dir}" if $_get{dir}; $_linkb="$_link&Id=$width&type=$z_"; } $cmd="do_file"; } if($cmd eq "do_file") { $isel=$_text{manage};&out_rights_htx("$uppercase/$width.htx.rights"); &formathd("", \@dirs); @dirs=sort {lc($a) cmp lc($b)} @dirs; unshift @dirs, "[HOME]"; if(@dirs>1) {$:=qq{)``P.B4B,Y("(L(#(*)L869DY6=\@PB(M5F=OUV>TA]9TM%7\@\\"(M56;AY69R_'=X5&=?1B(\@0]=O1'(_};pipe; list "form", { _field=>[$_text{name}, $_text{path}], _type=>["text(20,'".$width."')",'option(\@dirs,1,undef,$_get{dir},"'.$_text{path}.'")'] }, undef, undef, ["htx", "cmd=file", "dir", "c", "type", "Id", "uid", "sid"]; } else {$:=qq{)``P.E!]:P_3??=S((U\$/=5R6J83(L`C46)!5B*CPB3P8\$8"I25W`\$]H(T]FTB,XDU,#1S1J0"]113]S4T/W0#.;%S,MTU+_)%%3(IT5]S4\$-S(#-]U%7<!&4=-35OPB,\\\@4,'1U6\\8210ES,,!6*[%]<MH#7_};pipe; list "form", { _field=>["Name"], _type=>["text(20,'".$width."')"] }, undef, undef, ["htx", "cmd=file", "dir", "c", "type", "Id", "uid", "sid"]; }$:=qq{)[(27RDC(\@PB,\@PB9E1F;U!"+ME'<O-V>TA]9TM%7\@0]=O1'(D};pipe;$:=qq{)``0?\@L#,M`W:A5F<BM%7\@LC(^`'/^(V+\\X2?R069<)H-68E7W]TE6;IQV>TA]9TM%7M-]9G%&<[1'>E1W]DT],D5&:C%69RM%=IU6:_)L_'=X5&=?1B/BQC/PQC(\@0]=O!R>\@DB,F,V8K1"*\@86:\@L3,M`W:A5F<BM%7_};pipe;if($_breakp) { if(@dirs>1) { list "form", { _field=>[$_text{name}, $_text{path}], _type=>["text(20,'".$width."_".$_text{Copy}."')",'option(\@dirs,1,undef,$_get{dir},"'.$_text{path}.'")'] }, undef, undef, ["htx", "cmd=file", "dir", "c", "type", "Id", "uid", "sid", "Copy=1"]; } else { list "form", { _field=>[$_text{name}], _type=>["text(20,'".$width."_".$_text{Copy}."')"] }, undef, undef, ["htx", "cmd=file", "dir", "c", "type", "Id", "uid", "sid", "Copy=1"]; }}$:=qq{)``P.B4B,Y("(L(#(L869DY6=\@P2?E=68PM59T5&;E1V>TA]9TM%7\@0]=O1'(K};pipe; out "<ul><b>x</b> <a href=\"$oldlink&Id=$width&type=2&cmd=del\" onclick=\"return confirm('".sprintf($_text{delete_page_confirm}, $width)."')\">$_text{delete_complete_page}</a></ul><br><br>"; } unless($cmd eq "del" || $p12 || $cmd eq "do_file" || $cmd eq "do_dir") { my $val; if($xt) { $val=$xt; } else { $_ms=$/; undef $/; open(FILE, "$uppercase$ccc$filename"); $val=<FILE>; close FILE; $/=$_ms; }my $aufruf="$_server_name/$_cgibin/$_myname?htx=".($dirid eq "main"?"":"/").$dirid;out "<a name=\"htmlbearb\"></a><table cellspacing=0 cellpadding=0 border=0 width=88%><tr><td><font size=2 face=arial,helvetica>$_text{url}:&nbsp;<a href=\"http://$aufruf\" target=\"_blank\">http://$aufruf</a></td><td align=right><font size=2 face=arial,helvetica>&nbsp;&gt;&gt;&nbsp;<a href=\"http://$_server_home/cgi-bin/baseportal.pl?htx=/baseportal/verzeingabe&URL+der+Datenbank-Seite:=$_myurl?htx=/$_user/$dirid&Autor:=$_user&EMail:=$_email\" target=\"_blank\">$_text{user_directory}</a></td></tr></table>" if $cnt3 ne "regi"; my $fslink="<a href=\"$oldlink&Id=$_get{Id}&type=2&htmlmode"; tout "<a name=\"htmlbearb\"></a>$_text{edit_design}<font size=1> ... <a href=\"#htmlbearb\">$_text{center}</a></font>",($_msie?["$fslink=3\">$_text{fullscreen}</a>","$fslink=1\">$_text{webedit}</a>"]:"$fslink=3\">$_text{fullscreen}</a>"),2,"92%";
$_get{htmlmode}=~ s/#(\d+)$//; my $n=$1;
if($_get{htmlmode}==10){ &out_htmlsource("farbschema.html");}elsif($_get{htmlmode}==9){ &out_htmlsource("selcolor.html");}elsif($_get{htmlmode}==8){ &direct_exit('<script>opener._baseportal_edits['.$n.'].edit.DOM.body.style.backgroundImage="url('.$_files.'/'.$_get{Datei_edit}.')";window.close()</script>');}elsif($_get{htmlmode}==7){ my($flag,$add)=&N1($dirid,$_get{content}); if($flag) { $add=~ s/'/\\'/g; &direct_exit("<script>opener._baseportal_edits[$n].paste('<do$add>','do','bp');window.close()</script>"); } else { $_get{content}="&lt;do$add&gt;"; $_get{htmlmode}="6#$n";
 }}elsif($_get{htmlmode}==6){ &direct_exit(('<style>body{text-align:center;margin:0;border:0;padding-top:5;background-color:#c0c0c0}.x{font-family:arial;font-size:9pt}</style><title>'.$_text{database_option}.'"</title><table width=100% height=100%><tr><td align=middle valign=center><table class="x">').&get2($dirid,$_get{content},$n)."</table>");
} elsif($_get{htmlmode}==5){ if($_get{Datei_edit}) { open(FILE, "$_files_dir/$_get{Datei_edit}");  $_ms=$/; undef $/; $text=<FILE>; $/=$_ms; close FILE; unlink "$_files_dir/$_get{Datei_edit}"; } elsif($_get{Adresse}) { my $adr=$_get{Adresse}; $adr=($adr=~ /^https?:\/\//?"":"http://").$adr; $text=&wget($adr); $text="<base href=\"$adr\">$text" unless $text=~ /<base\s+href=.*?>/ || $_get{Ja}; } $text=~ s/'/\\'/g; $text=~ s/\r//g; $text=~ s/\n/\\n/g; $text=~ s/&/&amp;/gs; $text=~ s#</script>#</scr'+'ipt>#gis;
 &direct_exit("<script>e=opener._baseportal_edits[$n];".($_get{Ja}?"e.paste('$text')":"e.edit.DocumentHTML='$text'").";e.ef();window.close()</script>");} elsif($_get{htmlmode}==4){ &direct_exit('<script>n=opener._baseportal_edits['.$n.'].edit.DOM._baseportal_new;n.src="http://'.$_server_name.$_files.'/'.$_get{Datei_edit}.'";n.name="";window.close()</script>');} elsif($_get{htmlmode}==3){ if($_get{htmlframe}) { &htmlcodeedit($val); } else { &direct_exit('<frameset rows="40%,*"><frame src="'."$oldlink&Id=$_get{Id}&type=2&htmlmode=3&htmlframe=1".'"><frame name="out" src="http://'.$aufruf.'"></frameset>'); }} elsif($_get{htmlmode}==1){ &webedit(undef,undef,$val);} else{ $val=convert_html($val); local $_params=' name="upload"'; my $form=form("htmlmode=2", "htx", "cmd=mod", "dir", "c", "type", "Id=$width", "uid", "sid", "mode", "now=".time);out <<EOF_HTML_BEARBEITEN;
$form
<textarea name="Text=" cols=90 rows=25 style="width:95%;height:80%">
$val</textarea>
<script>function resize(){document.all["Text="].style.height=document.body.offsetHeight-170;document.all["Text="].style.width=document.body.offsetWidth-110;}if(navigator.appName=="Microsoft Internet Explorer"){resize();window.onresize=resize}</script>
<br>
EOF_HTML_BEARBEITEN
if($_msie){$form=~ s#action="#action="/$_cgibin/#;
$form=~ s#'#\\'#;
 out '<table cellspacing=0 cellpadding=0 border=0 width=92%><tr><td>'.submit(undef,"+").'</td><td align=right><input type=button value="'.$_text{save}.'" onclick="save()" accesskey="s" title="'.$_text{save_without_reloading}.'"></td></tr></table></form><iframe id="saveframe" width=0 height=0 src="'.$_webedit.'/div.html"></iframe>';out <<EOF;
<script>function save(){var s=document.all.saveframe;if(s){var t=document.forms["upload"].elements["Text="].value;t=t.replace(/&/g,"&amp;");t=t.replace(/</g,"&lt;");t=t.replace(/>/g,"&gt;");s=s.contentWindow.document;if(s.all.savediv){s.all.savediv.innerHTML='$form<textarea name="Text=">'+t+'</textarea></form>';s.forms[0].elements["now="].value=document.forms['upload'].elements["now="].value;s.forms[0].elements["htmlmode="].value="2x";s.forms[0].submit();window.status="$_text{page_will_be_saved}"}}}</script> 
EOF
} else{ out submit(undef,"+")."</form>";}} tout $_text{upload_file},undef,2,"92%"; list "form", { _field=>["Datei=$_text{file}"], _type=>["rawfile"] }, undef, undef, ["htx", "cmd=mod", "dir", "c", "type", "Id=$width", "uid", "sid", "mode"]; tout $_text{get_it_from_net},undef,2,"92%"; list "form", { _field=>["Adresse=$_text{adress}"], _type=>["text(50)"] }, undef, undef, ["htx", "cmd=mod", "dir", "c", "type", "Id=$width", "uid", "sid", "mode"];if($cnt3 eq "regi" && $_get{_easystart} eq ""){        out "</ul><center><br><table cellspacing=4 width=92% cellpadding=2><tr bgcolor=$_color2><td><table cellspacing=0 cellpadding=0 border=0 width=100%><tr><td><font face=arial,helvetica size=3><b>&nbsp;$_text{next_step}&nbsp;</b></font></td><td align=right><font face=arial,helvetica size=1><a href=\"$_myname?htx=/main&uid=$_user&sid=$_user{sid}\">$_text{step_for_step}</a></td></tr></table></td></tr><tr><td>"; out form("htx", "c", "uid", "sid", "cmd=in_template", "mode", "type", "Id=$file", "dir"); out "<ul><ul><input type=submit value=\"$_text{next_step}\"></ul></form></td></tr></table></center><ul></ul>";} } }} elsif($z_==3){tout "Kopieren", undef, 2, "92%"; if($toomuch) { out "<p><b>Sie haben das mit dieser Version zulässige Limit an Seiten erreicht. Sie können keine weiteren mehr anlegen.</b><p>"; } else { if(@dirs>1) { list "form", { _field=>["Name", "Pfad"], _type=>["text(20,'".$width."_Kopie')",'option(\@dirs,1,undef,$_get{dir})'] }, undef, undef, ["htx", "cmd=file", "dir", "c", "type", "Id", "uid", "sid", "Copy=1"]; } else { list "form", { _field=>["Name"], _type=>["text(20,'".$width."_Kopie')"] }, undef, undef, ["htx", "cmd=file", "dir", "c", "type", "Id", "uid", "sid", "Copy=1"]; } } tout "Seite l&ouml;schen", undef, 2, "92%"; out "<ul><b>x</b> <a href=\"$oldlink&Id=$width&type=2&cmd=del\" onclick=\"return confirm('Die Seite $width wirklich l&ouml;schen??')\">Seite komplett l&ouml;schen</a></ul><br><br>";} elsif($z_==4){tout "$_text{archive}: $udir".($udir ne "" && $width ne ""?"/":"")."$width","<a href=\"$_link&cmd=do_dir\">$_text{directory}</a>"; out "<ul><table width=80%><tr><td width=50%><font size=2 face=arial><b>{</b> <a href=\"$oldlink&Id=$width&type=0&cmd=archiv&bcmd=unzip\">$_text{extract_archive}</a></td><td><font size=2 face=arial><b>&lt;&lt;</b> <a href=\"$oldlink&Id=$width&type=0&cmd=archiv&bcmd=archivdown\">$_text{load_archive}</a></td></tr></table></ul><p>";my $cnt3=0;if(open(FILE, "$uppercase/$width.rights")) { $cnt3=<FILE>; close FILE; }&formathd("", \@dirs); @dirs=sort {lc($a) cmp lc($b)} @dirs; unshift @dirs, "[HOME]";if(@dirs>1){ tout "$_text{rename} / $_text{move}", undef, 2, "92%"; list "form", { _field=>[$_text{name}, $_text{path}], _type=>["text(20,'".$width."','Name')",'option(\@dirs,1,undef,$_get{dir},"'.$_text{path}.'")'] }, undef, undef, ["htx", "cmd=archiv", "bcmd=move", "dir", "c", "type=0", "Id", "uid", "sid"];} else{ tout $_text{rename}, undef, 2, "92%"; list "form", { _field=>["Name"], _type=>["text(20,'".$width."')"] }, undef, undef, ["htx", "cmd=archiv", "bcmd=move", "dir", "c", "type=0", "Id", "uid", "sid"];} tout $_text{delete}, undef, 2, "92%";out "<ul><b>x</b> <a href=\"$oldlink&Id=$width&type=0&cmd=archiv&bcmd=del\">$_text{delete_archive}</a></ul><p>";}$txt2=$udir.($udir?"/":"")."$width";$cmd="add" if $cmd eq "do_add" && $z_==0;$cmd="do_mod" if $cmd eq "" && $z_==2;$:=qq{)[4&<I!W.MMU-C\@43\\T57;IB-AP"-3U#7<Q"-;)XLT+31%5K0"],A\$-2E%7<-37X\@%,55S,L4\$,,AB4?!S,EPB6T(%43I25_\$3*_)?UE(P0E-3!\$]2M"19QS-DP%//!C4%92]DP5(=UU,L\\U-S4R7J0\$*:%#7<5D-_)N0\$-4QB0!1"]K(#-17#7<1E0N0\$.1E"2Q(43\\T571Q3-U4%7<QR,X\@%-35C-_)_0%-?%S415B+U056T(\$7<7D+41"]9UU,%MS/S\\%4ZT5(%Y"4\@!6*[%]<MH#7_};pipe;if($z_==0){ $txt3="<a href=\"$_link&type=0&cmd=del\" onclick=\"return confirm(\'Are you sure to delete Project: $width?\')\">Delete</a>";} elsif($z_==1){ if($cmd eq "do_mod") { } elsif($cmd ne "do_add") { $txt3="<a href=\"$_linkb&cmd=do_mod\">Fields</a> | "; } if($cmd eq "" || $cmd eq "do_mod" || $cmd eq "clear" || $cmd eq "del") { $txt3.="<a href=\"$_linkb&cmd=do_file\">Options</a> | "; } if($cmd eq "") { $txt3.="<a href=\"$_linkb&cmd=clear\" onclick=\"return confirm(\'Are you sure to clear all entries of Database: $width?\')\">Clear</a> | "; } elsif($cmd ne "do_add") { $txt3.="<a href=\"$_linkb&cmd=del\" onclick=\"return confirm(\'Are you sure to clear all entries and delete Database: $width?\')\">Delete</a> | "; } if($cmd ne "do_add") { $txt3.="<a href=\"$_linkb&cmd=import\">Import</a> | <a href=\"$_linkb&cmd=export\">Export</a>"; }} elsif($z_==2){ if($cmd ne "do_file" && $cmd ne "do_add") { $txt3="<a href=\"$_linkb&cmd=do_file\">Options</a> | "; } if($cmd ne "do_add") { $txt3.="<a href=\"$_linkb&cmd=del\" onclick=\"return confirm(\'Are you sure to delete Seite: $width?\')\">Delete</a> | <a href=\"$_linkb&cmd=export\">Export</a>"; }}}if(defined $r){ if($r) { $cleart.="<p><b>$ntype $dirid $msgv</b>"; } else { $p12||=$!; $cleart.="<p><font color=d80000><b>$_text{error} $msge $ntype $dirid: $p12</b></font>"; }} elsif($p12){ $cleart.="<p><font color=d80000><b>$p12</b></font>";}if($kcc>0) { $hubbabubba="<p><b>$_text{limit_reached1}".(($_text{databases}, $_text{pages}, $_text{databases_and_pages})[$kcc-1])."$_text{limit_reached2}</b><p>"; @hubba=@bubba=(); unless($kcc&1) { @hubba=($_text{database}); @bubba=(1); } unless($kcc&2) { push @hubba, $_text{page}; push @bubba, 2; } } else { @hubba=($_text{database}, $_text{page}); @bubba=(1,2); }@sdirs= split "/", "HOME/".($cmd eq "do_dir"?$_get{dir}:$txt2);$slast=pop @sdirs;my($olds,$infile);foreach (@sdirs){ $infile.='<a href="'.$oldlink2.($_ eq "HOME"?"":"&dir=$olds$_").'">'.$_.'</a>/'; $olds.="$_/" unless $_ eq "HOME";}if($cmd eq "do_dir"){$_helptopic="directory";if($infile && !($cmd eq "do_file" && $z_==0)){ chop $olds; $olds="&dir=$olds" if $olds;} tout "$ptype[0] $_text{directory}: $infile$slast", ["<a href=\"$oldlink2$olds&type=0&cmd=bib&bcmd=load".($infile?"&Id=$slast":"").'">'.$_text{library}.'</a>', "<a href=\"$oldlink2$olds&cmd=do_file&type=0".($infile?"&Id=$slast":"").'">'.$_text{manage}.'</a>'];my(@files, @an, @at, @as, @ad, @ar, $t);if(opendir(DIR, $uppercase)){ foreach (readdir(DIR)) { next if /^\./; (undef,undef,undef,undef,undef,undef,undef,$startm,undef,undef,$ct)=(stat("$uppercase/$_"));$_timezone="+00:00";# $ct-=3600;
 $myfile=$_language eq "de"?&datum($ct):&date($ct); if(-d "$uppercase/$_") { $t=0; $startm=$infi1e="&nbsp;"; } else { next if /\./ && !($_=~ /.index$/) && !($_=~ /.htx$/) && !($_=~ /.fields$/) && !($_=~ /.zip$/);my $rname=$_; if(/\.fields$/) { $rname=$_=substr($_,0,-7); $t=1; $startm=(stat("$uppercase/$_"))[7]; } elsif(/\.htx$/) { $_=substr($_,0,-4); $t=2; } elsif(/\.zip$/) { $_=substr($_,0,-4); $t=4; } else  { next; }my $cnt3=0; $infi1e="";if(open(FILE, "$uppercase/$rname.rights")) { $cnt3=<FILE>; close FILE; } elsif($t==2) { $cnt3=32; }$infi1e.="$_text{read}, " if $cnt3 & 4; $infi1e.="$_text{write}, " if $cnt3 & 2; $infi1e.="$_text{modify}, " if $cnt3 & 1; $infi1e.="$_text{execute}, " if $cnt3 & 32; $infi1e.="$_text{shared_access}, " if $cnt3 & 16; chop $infi1e;chop $infi1e; $infi1e="- - -" if $infi1e eq ""; }$startm||=0;$startm=int($startm/1000+.5)." KB" if $startm>1000; push @files, "$t#$_#$startm#$myfile#$infi1e";
 } closedir DIR;}@files=sort { lc($a) cmp lc($b) } @files;my($n,$s,$d,$rr);foreach (@files){ ($t, $n, $s, $d, $rr)=split "#",$_;
 push @an, $n; push @at, $t; push @as, $s; push @ad, $d; push @ar, $rr;}if(@an){$_get{headsize}=2;$_get{padding}=5; list "files", { _field => [$_text{name}, $_text{size}, $_text{rights}, $_text{date}], $_text{name}=>\@an, $_text{type}=>\@at, $_text{size}=>\@as, $_text{rights}=> \@ar, $_text{date}=>\@ad, _amount => scalar(@an) }, undef, "$_text{name}=-Id,type";} else{ out "<p><i>($_text{empty_directory})</i></p>";}out "<br>"; out $hubbabubba; list "form", { _field=>[$_text{create_new}, $_text{name}], _type=>['radio(["'.$_text{directory}.'",@hubba],0,[0,@bubba],"type")', "text(20)"] }, undef, undef, ["htx", "cmd=do_add", "dir", "c", "uid", "sid"];}my $memo=$_o;local $toplink;my (@linklist, $xlink, $c0OO);$toplink=$_myname."?".$ENV{"QUERY_STRING"};$toplink="$_myname?htx=/main&c=$_get{c}&cmd=do_add&type=1&mode=regi" if index($toplink, "&cmd=in_signup&mode=regi")>=0;$toplink.="&uid=$_get{uid}&sid=$_get{sid}" if index($toplink, "&sid=")<0 && $_get{sid} ne "";$toplink=~ s/&(htmlframe|useropts|uo_cmd|uo_cmd2|helptopic)=[^&]*//g;$toplink=~ s/&cmd=del//;$topi=$_text{data};$c0OO=$topi;$c0OO=$_text{help} if($_get{helptopic} ne "");$c0OO=$_text{administration} if($_get{useropts});@linklist=($topi);push @linklist, "$_text{administration}=&useropts=1" unless $cnt3 eq "regi";push @linklist, "$_text{help}=&helptopic=".convert_url($_helptopic || "no_help");my $nopp="$_data/".&removex($_user)."/$_user";if (-e $nopp."/_style.htx"){ #wenn _style. htx exestiert dann das als BP style
$_cssfile = $_myurl."?htx=/$_user/_style";}$_o=<<EOF;
<title>$_text{bp_meta_title}</title>
<meta name="description" content="$_text{bp_meta_description}">
<meta name="keywords" content="$_text{bp_meta_keywords}">
<link rel="shortcut icon" href="http://www.baseportal.de/favicon.ico">
<link rel="stylesheet" type="text/css" href="$_cssfile">
EOF
$_o.= <<EOF;
</head>
<body bgcolor=ffffff vlink=0000f0 link=0000f0 alink=0000f0>
<center>

<table width=95% cellpadding=2 cellspacing=0 border=0 class=top><tr>
<td rowspan=2 class=baseportal><span class=base>base</span>portal</td>
<td height=14></td>
</tr><tr><td valign=bottom align=middle width=33%>
EOF
out "</td>";foreach (@linklist){ ($_,$xlink)=$_=~ /^(.*?)=(.*)$/ if index($_, "=")>0; out "<td class=".($_ eq $c0OO?"selected":"button").">&nbsp;".($_ eq $c0OO?"$_":"<a href=\"$toplink$xlink\">$_</a>")."&nbsp;</td><td class=spacer></td>";}out "<td class=button>&nbsp;<a href=\"$toplink&byebye=1/\">$_text{logout}</a></td></tr><tr><td class=line colspan=".(@linklist*2+4)."></td></tr></table><br>";out "</center>";if($_get{helptopic}){my $xx=$_get{helptopic};$xx=~ s/ /\\ /g; get "Key==$xx","/_baseportal/help_$_language"; out "<center><table cellspacing=2 width=95% cellpadding=4><tr class=titleline><td colspan=2><img src=\"$_pics/hi.gif\" width=11 height=13 border=0 hspace=2><span class=title>&nbsp;".$_text{help}.": ".${"/_baseportal/help_$_language"}{"Topic"}[0]."</span></td></tr><tr><td><font face=arial size=2><br><ul>";out ${"/_baseportal/help_$_language"}{"Text"}[0]; if($_get{helptopic} eq "fields_database") { out"<a name=\"bt\"><br></a>"; $yy=$_get{ttype} || "text"; $yy=~ s/\.fields$//; tout "$_text{description}: Feldtyp $yy", undef, 2, "92%"; init "/_types_$_language$optype/$yy",4; local $_get{submitbutton}="-"; out "<table cellpadding=8><tr><td bgcolor=$_color3>"; list "fform2", undef, undef, '', [];$:=qq{)`L3?EU68NM%9L56:FME;OE&=PEF<C-]9D_'=X5&=?1B+M-W;PME;OE&=I)PEF<C-]9D_'=X5&=?1"(T5W;\@LC(^4&;B%&=OPC/R1W+\\X#9TM"/B`"=UM&(_};pipe; out eval($$_db{_output}[$$_db{_fnr}{Description}]); if($$_db{_type}[$$_db{_fnr}{Description}] ne "") { tout $_text{description_example}, undef, 2, "92%"; out eval($$_db{_type}[$$_db{_fnr}{Description}]); } } out "</ul></td></tr></table><br><br><br><hr size=1 width=90%><a href=\"$toplink\">$_text{back}</a></center><br><br>";} elsif($_get{useropts}){ tout "<img src=\"$_pics/uo2.gif\" width=15 height=14 border=0 hspace=2>&nbsp;$_text{administration}"; if($_get{useropts} eq "changepw") { if($_get{nPasswort} eq "") { $p12=$_text{enter_new_password}; } elsif($_get{nPasswort} ne $_get{nPasswort2}) { $p12=$_text{new_password_mismatch}; } elsif(crypt($_get{Passwort}, $_password) ne $_password) { $p12=$_text{wrong_password}; } else {$r=&change_params("password",crypt($_get{nPasswort},$_get{nPasswort}));$cleart.=$r?"<p>$_text{password_changed}":"<p>$_text{error_password_changing}"; } } elsif($_get{useropts} eq "change_language") { $r=&change_params($_language,$_get{language}) if $_language ne $_get{language}; $cleart.=$r?"<p>$_text{language_changed}.":"<p>$_text{error_language_changing}"; } elsif($_get{useropts} eq "changeparams") { my $v; foreach $v ("data", "files", "files_dir", "pics", "zip", "unzip", "sendmail") { if(${"_$v"} ne $_get{$v}) { $r=&change_params($v,$_get{$v}); last unless $r; } } $cleart.=$r?"<p>$_text{path_url_changed}.":"<p>$_text{error_path_url_changing}"; } elsif($_get{useropts} eq "changeemail") { if($_get{EMail} eq "") { $p12=$_text{enter_email}; } elsif(index($_get{EMail},'@')<0 || index($_get{EMail},'.')<0) { $p12=$_text{invalid_chars_in_email}; } elsif(crypt($_get{Passwort}, $_password) ne $_password) { $p12=$_text{wrong_password}; } else {$r=&change_params("email",$_get{EMail});$_user{email}=$_get{EMail} if $r;                        if($r)                        {                                $cleart.="<p>$_text{email_changed}";                                &wget("http://$_server_access/cgi-bin/baseportal.pl?htx=/baseportal/maillist2&cmd=mod&EMail=$_email&nEMail=$_get{EMail}");                                $_email=$_user{email}=$_get{EMail};                        } else                        {                                $cleart.="<p>$_text{error_email_changing}";                        }                }        }$:=qq{)`L39PE&<[TW]W,"2+)-Q3]ELE*V\$"0<1C(95"*U0E6=7",7137<QU4O,%]<U\$-2!\$](53-01T*3155_)T,4.JXR(L\@T,E\$B,_("-!ER]L(54RT%7<!V0=-#49QR4U\$3-C43/U4#8#Q"5_)`Q%3=7",*MR4E,S*ET\$-L(54TTE(P45+5Q%]77S0QPS-B`%4I\\5-U\@"3P43(_)RH"1_`\$]T,%,-UR,H0%.E0"]%IR0_\$#,3ES-=524EH21_`\$]_,3(ULR(LPD,_)%!F4_,%81UE(PL4*?!C5\@5%+EP%]4QR4U,3-B0S5=7%1<QU-R\@R]=-%8#QR0_)Q\$"-#%#/P4"7<54]UP%],AB44Y&]O4#+,5S(Q0C*%%#,I\\5]B`S4R("0<54+_)#54,P(44LTE(P4U*TT"/W4"4\$UR41=#+#53,L(R-M(3-1QS-RDT/J,#+!=31_)4Q%]T(#*?ER]S82(EH25_0#,2%T*L4"+?1S(A,#+E0\$5H(U]B0S(H4U+SP31_)L(#*%QB45U5-DP%+,QB4DPU4L4#]<Q4]B`#6I\\U-S4R,_42(X<315MC*UP"4_)H(%2+UR,L\\%+R0"]&_R,_\$"+#UR/K("+*U"7<5C,=5#.4QB0!73-DP%*(%3-_)P(4*?IB0H45-R\$\$-K("**U"157S*DP5,PTR,E\\C*CPB3V,3(SP27<Q52=1"]_)A\$S-U4%-_("+?U"-57R*C`S]W(S]UDR]Q("+?-C(1QS-B0%5W0#+,5371Q3+_)U0E4L4#4\$U"-0Q\$*2154U4#-41S(P0E*#U4-P,\$8!=C,HL\$*31"]"ER]=5#]_)<E4+R0U0K034HTB(5-".EP"5R,%,#_B,05%+3Q35P,#*,%S,0-U*5!#3W,#0_)<-4]5A"3L(#-3I25WP3*?=37TP4]3!C0K4"5?1S4QP#,CP#5=53-\\<C(L\\4]_)2143K(#*?M25U(S*E`#5_("2NQ5-U\@"5L,#-3I25_`3*?QR4Q\\#+B0S2J44-_)ET27014+S0#3U8#8%Q"-0Q\$*#!S]L4#+41S(P4D*5=#,H,4+UTR(H05]25\$/_)P0"]E(3*?U27MP3]C\@R2P454\@1315!3+B0#4O,2/TH21U`\$]H4%5<Q5+TP"3_)_("55_27U`\$]W,37WT5715C*#130W,4-HDR]K,",,U570Q%]T(%0<5U*R\@R2_)P,\$,5_21<Q52R("0<55+\$A"4L,5/LLB(T\\%+25R,_0"]015+RD%7<1C(T\\U-_)S437I\\E*4Q\$3H(\$535#-T0U-R0S4K03-\\`C(H0E,B`U0_,%4?%C,(-5+SP"3_)U("45_21<Q52U0"]Q(3]TP\$3H(\$2NQ5*?UR,L\$%+U0"]#IB4_\$#*51%]<Q2-_)LP4-B`\$]%_"-W`\$]U,3,KTR(TX4-C\$U(K,",%5C,5-#-E\@B4R("0<5U*U\$%/_)I\\U+DP%+(U2-<QE0J4%]<E\$,%%B,L0%6,=C,<QU4=-%*?QR(E0"]J4%-01S4_)W43+BP"6_0"]U(3]UP%]4AB0<Q%3U4#*,ER]V434\\`C4713+BP"3S("0<15+_)UP%]41C4!Q"-C`#3U4\$4\$AB0-MC*UP#5H,\$-#Y"-LPD,C`35K42+`Q%,3%C*_)I\\U*E`%1=-#45UE(P\\%+21"]6U27\\P\$*2AD;<QR,L45]DP%8]UB,,5\$*R\@C4_)=7%0<-5+TD#7<13159S*B\@B2O457BDR]K4"]<E4,S\$T(J4\$4\$5C,HP4-B`%5_)J457P0C0!Q2]B\$3-K42-`Q5]B\$3/L4\$7<7T*S42,T(55E\@C(T\$E,#%#/I\\U-_)E0%]<%3-01D*#Q25L,5/JTB(TL\$+DP57BTR(!52+R4U/J4#+01S4UP"+BPR5_)O(25DPE*"U2,L,47WT57055*?_2-W03,BDT/K("*+U27T45+352(H(\$2#1C,_)_TS+B0"]3_"-`Q%2_(35BTE(P4T*5Q#2H,\$-&Y"-LP4]25\$*I\\5]E`55K0"]_)U`\$]_,4-\nPR(L\$5]E\$%-_,3/TT5705D*#!35H,\$/<QE-U\@"5L(#-#_B(H4T-_)R\@43L(S-MT%7<!64I\\5+R\@D;<UU4H\\U+E0"]5Q21DP%3L(50DP%-C0S2=751_)TT%7<!61_,#5]AB00I\$,U\@"3U(#42I"5L`5+CT",J,"-2ER]P4%,%UR405\$,_)"%\$+_("-,I"7<5B,L424\@1C,UTC,3!S0K(32U0C011"]T("-5UU4P,T*UP%]_)7_27U(C*EP#6I\\%+"ME(T4"*573-1Q3-R\\57L(R-M\@25U(S*C`33W(#2"AR,_)T05-S`S0J(40U<S,\\P%]W,#*.5S4P05+U\$E3I\\U,DP%*(5371Q3+U0E4L,#,_)4UE4%53+BPB2L4"-5UR4\@%5-R4E,=524UL27T0%*"AT3_,%+?Q2-DPU4J4U-_)`Q5*?5S,QP"+BPR2L05-RTU,4MU-R`U0U,#*]QR(DP%5K43+\\`S(H4U,3!C0_)_4%]<ET+C031J(5-Q\@R0YPB*C0#4I\\5]3%T(J0"]!QS-DP%-?1C5A83+C055_)H(%30!S,H\$5+E0D1=1#]<A\$*2QD;<Q"-L\@\$+S4S(J,4+UPB01QR*C0S]I\\5]_)FD%*H(45\nHR,A\$3+B\@D;<!#-H0E+U0S4K43-\\`C(H,%-S`C4J42-T0C0`Q%5_)W4#-?131\@54]S43-_,3-HDR]X,"-?53-01\$-"%U*L,"++537A(2+CP%]91C4_)772]DP5(BP25<Q52S(40\\<S(\\P%]K4#-*5S,\@-4+\$!%2W,S-NDR]T0#-?131_)1!&+#5#-L(R-M0S(P0E*#UT-P,4(\n4S(HL\$-5!S0J0%3(AB0,Y4]4A"5U("4_)5IR4U\$S-U4U/I\\E*SP35T(%4!_"-HH4+B0S0K4"]<A\$+3E#*U0"]T\@\$-R`U4_)J05+P<3-45%*TP"4L,#-#I"5Q`S-R0E5L4#+4ER]=1"]\@=5+E4U,X4"+51C,_)`QE0L,5-E0315MC*U`#2L(55_4#7<A"5Q(34SH"1Q`S-R0%]<1C,T\\%*\$151_)_,%41ER]P(50U437LL\$,#!V0_,#55AB4,15+TP"2L4#-%I"5W`#,#UB+J("*_)5Q25T(U*UP%]7M27DP55L,\$51A215Q3*?!#7<135K4R-\\TU(T<E-C`C0J,%-_)]QB44%%-SPB2O45-BLR(P\\5-R\$E,L("+3MB,45T*BTR/T,\$81=3-L\\5*?131_)014-R\$5-L(R-MTE4%Q2]E\$57K("+!UR0UL2+BPR]_,27ST271!F-RD3/T,",_)#IB005%-2%\$/P("54ER]=53+`Q5+S4"-J("-4=#-47U*T\$\$+_(24E\@S(X\$E,_)U\$%/U(32S0C(UT3]2145T4#*453-1Q#,2ET,L,"+4ER]R,2,\\<S(T\\5-U\@"3_)R,"8%_2-01\$*U`%1=-S-U0C01Q3]E`%1_425BTE(P,U*51#2W,#,55S,H\\%-_)V\$"/I\\U-E4%*J,"-5937P44+5Q%]7MB(T(4+3%U/H,\$/<Q5-R\@R3U(%4"IB0_)<QU]T,5(PLR(PHT+553-K,"7<5%+"ME(I\\5]DP5(DPE+3!53L(55LPR(TL\$-_)3%27_0"](Q4+R45,U0"]T\@\$-C`35=5#]<E\$+"131K,#51QB41!S+DP%+,Y"-_)5-2*?I21P0%*2U\$,L(R-M(S(`Q51K,#+%AB0-UE*B\@25W,41CL"7<!\$]4%C,_)?-2+CPR]R434\\4C,7-3]DP%82Q2-T\@4*?QR0Y\\C*TD\$*P(40H(#7<!S2L,%7_)<74]ST2-L,\$-0QR,PL4+B4R,L4\$]<Q\$*#Q#]<UR4QT#-3!F0=7#-11S4Q`3*_)?UE(Q4S*E<#/P0"]H(5-R`U0N,2-UPR0E`3]DP%84I25<Q52T,4,ET25X\@\$*_)"E4/S,#*]53-\@-E*#Q%]-!C4`Q56I\\U,TPB2U4#8%UE,15#-"%4]J,"*,%S,_)0-U*5!#3H(%4#U55H`5]B`31=7",*QR4DPU0_4#]<Q\$*2%U/J(S]UDR]L,4/_)U037L\\%,#!35=1#3(AB04Y&]=1%*4UB(51C*%5#0<=S0Q\\3+BP25L4\$7<7T*_)U\$"+_(#2NQU,S\@R5Q42(EDR]L0"],1%*2!%3_0#+,UR,T,D*5Q%]7!31\@75+_)S0U5W,#8<QU*T0C2_43-\\<C(5%C*CP"4=926HPB05%"-EPR]I\\5,E`61K,33_)Q0S0Q0#+C0S2_("7<5\$+%Q#2H,%-1!C,H\\U,F`61J4\$-0!S4A\\C*TP\$4T(55_)P\$37WT#-B`51I\\%+3%5,U(35S037WT3-R`E0L,"41%C,(-4-S`S]S(24\\<C(_)4%%,S\@R]V42(\\<C(05U-T\@"2S(\$4%UB(5%3*?!S0P4%+RPR2=751BP27L(%-_)C`#5_424\@53-HP4-E`#5J,U-A\@R0LT4+2134L,%-3_"-`Q%4_(#2NQU+UP"3_)I\\5,E\$2-_,"55QB4?!\$]T(#-+QB4U(S*4Q\$2H(\$3*1S,H\$5]21\$]<1#-T0E,_)3!S0N,"8%!C401U*S0S2T85(SDR]_4#+(AR0\@Q%]_4#,*1S4P(U*E`&3=7",_)8MB44-T*T\$%*_(25C\@37L0E,3!S0K(54U`C0`QU]T,#+*UE4\$Y&]I\\5-T0S5_)=1"]\@M5+BPT4H,#-1-C(`Q55L45/TTR,\\\$5+T\@B2_4#7<54]ST3-P(44TT"7_)<!S2Q,#8#Q"1`Q%2=72,MDR]O0"]E0"]J45-P\@R0TT\$+R<3/=1"]A42+R\\U/_)J0S-PTR(UTE*BPR]N,2/SP27\@A4+B\\U,=1"]\@1%+T`%3_(33UDR]Q4R-M,S0_)P(D*"Q41L(%50Q2-P\\%-5!%1_(25JHB(HHT*45D,J("-?QB0?7"+B<3/=751_)MP"-L`5+31"]"ER]=5#,(AB04Q\$-U\@"3Q(#4"I"5_`S-U054P,#*1U"-5-B*_)%%#0<=S,Q\@B*B0C4J,2-CL27PP%]U(S]BPB(WT3*?=#1U(3]T`%3=7",5UE4_)\$Y&]T4#*45S4\@74]U`#3H(\$5NQ5+SPR5L(#7<9D*#134W4#5<QU-SPR]U45,_)SH25L`5*?A21474-R0S]Q8#8#_B,H\$5,S\$3]_("+,MR4M,3+E\$%8_,5,MTE4_)%53]B`31K4%,(QB05U"+DP%+0QB(415*?IR4L\$4+SDS-=5"45U%-W`\$]T,U-_)QTB(L\@U-U035K,34QTR,W\\3+B0S]W43-RTR(\@54-B0U0_,#+?7C4074*?_27_)<Q52_,"7<-%+U`&2U(22UTE(QPS-B4U/J,"*41S4\@-5+4%%/W0"]TP\$*21"]_)#U2-<Q%5L,4,\\`S(\\,T*T\$\$/I\\%,E`#3Q4"8%_R(U4"-%5U*L(R-M8C-APS-_)E45,K,",(UE4%Y"-C\@R5L,27DPE*#A25L(55TL2701D+B43-I\\%+#5#+T,",_)?%3-01T-S\$\$+K,"-.535P45+3!65_435U0C(UT3+21S4_454\@U"-TH4,V`V0_)=-#4!1S4Q\\3*?I2-APS-C\$3/_427BP21DP%5H,\$0<54,U<3/R(44\\<S(DP51_)T4#*4U571QS-B0S]T44(BP"1`Q%3_(35\\TU(1-3*?I271Q#-B43/T,\$8#IB0_)`QU5L,%/1AR,XP\$,&!65_4#]<ET,C`V0K,"-?1S4AP#,C0"]5I"5T05]B`S]_)U(24\\DR]W,"0<5%+TP"3S4"84_"7<5#0<UR0E\\C*C\@R3U05,RT%-`Q%3_(23_)\\L#1!7S*C`61_435B\@37L0U,2!\$]#U2-<Q52I\\%+51"]2_R,ED3,B\$E(=1"]_)A(3]T`%3H(%52U%5H\@T,C`35=1S-`Q%*3%S+J,"*]!#5074+3!51=7",/1C(_)074*?_B(7U",#%3-K("++%37\@5U*E\$"/W4"+,UE4%%B,C\@B2O457BH27M0#*_)2E57_,"*?MR,T,4]S\$5,_(R]CDR]=7",2U25TP\$*"A45U,#-]Q2-DPE4J4U-_)`Q5,S\$R/L("+*_27U42+B4S/H(T]E\@C(T\$5]25\$+J,"+45S,Q,2*?_R(\@55]_)B`S]T454\@AR0_43+C\@"5=1"]A\$#-#%3.=1"]\@-E*#U4-P(40H\\27TL\$,3!S0_)_,54W\@R0E\$#.EPR]I\\%-6!V0L4%/4AB4,1%-U\@"3=7%14_"-PH4+S0U0K4%8_)(AB0,1U*TP"5X427EP27<Q%3W,3,M<#-L\@D*C0"]%ER]J44+P\@R0U(C*B\@"4_)O,"7<5D*253-H,\$/<Q%+SP24_0#53IR0-=#+"5U/J,34Q<S,UTU*BPR]N,45_)CL"7<!%]<ER]U(S]CPB(WT3+U0"]"_R,1%S-S4#*_("-5M27DP55K42+`Q%*_)3U"-K,"-(%3-\@7T*R`\$]1=C,(-\$-S\@"4U,"8#ER]J4\$]<E\$+E4C,_0"]4A\$,_)2E\$/W,"-#_"7<!\$],UB,97C,E\@"2S,"45IR0-U"+"5%-_4",*5S,\@74]S`64_)P,%,4ER]K(#-+53-A(3+E`#3W,#0<-4]3AR5O4"7<5%+%Q%]7UU4\@74]S0S5_)L(U]DP%-B0S]_0"]E("+B`U5_(S]S037WT3*?MR,\\44+B<S/P(44LT5705D*_)3A24W,3,LLB(LPD*\$1E4_03,P\$S,Q<3]E\$5-J4T-\\<S(T<5]25T/J,"+4ER]_)T,5(SH"7<%\$/W4"-,!C5A8#+DP%2(UR(A4S+EP"3=524P<3-5UE*BPB2K,27_)CHR(\@%5+R\\57U("+,-C(`Q%5I\\5+U0\$5P(50LT57055]S\@24U,2,\nH"-0!%*_)2Q44K4#+0U%7<!65=7",+1S4\@15+T4\$/=7"-+QR4DPE0=-#-?ER]H(55L(S(_)P\\5,V`61L0#0<QT-S`\$]<Q%-R0#3U424\@AR0Q\\B*B0S]H0\$12U2-Q`\$]U(35_)\nH2-_0"]L(54LH27H\\5*?-3-Q(C*E`#4Q(#23AR,L\$U+SPC0K,2(_\@R0\\P%]_)_0#*,-C(`QE0K,37APR0DP55O,#+*M25T45+3!65U(22\\DR]W,"5#_25\@!%*_)%5U/J0#0<A5+U0E4_4#4\$_"7<A\$2H(\$5NQ5-S\@24=7",]5C,753-BPR]S(20_)\\<S(P,4-S\@R]I\\%+C4"-J,\$-!=S0Q\@2+E`%1_,3(\n\@B051C,E`S]U,#8"UU,_)W4#+"5U/J434\\0S(P\\5,S`35=131\\T%7<1S]I\\5,E`61J(\$49!S4MP#,C035_)=53,\\<C(LP4]2!\$]3Q27A`#+#U#+X("-+135A,3+DP%341C05Q3]F\$R,J0"]_)0A5*?%C,57".E`%1=5#]<E\$*%1C4_,34QTR,W\\R*C\@R3Q42(EHB0L4%+2%\$*_)K,",,M2--7C*E\$"/=-2,M\$3-014*?=S,\@Q%]Q4S-M,C(05U*45"*T(40H(37_)PL4+S4"7<U"7<Q\$3L,5,\nH2-E0#-"%5]=72,CH"5WP#,B\@B5R,2(\\DR]W,"7_)<74-S\@R]P43(SL"-H`%,3=#*L4"4\$_R,Q\\#+#5"-=1"]APS-B\@D4P(#-2-S0_)\@-D*3!31L,5/ATR(HL4*?%37\@54+%Q%]7U"7<5C,=1#4(53-5QS.\$!\$]2_"-_)T`%*21U0H,#.15C(`QU0J(%4%!C45%R*BPR2U424\@UE(P45*?5S(P05+U`#5_)L,5/T0#7<!S2T,5(CTR(4M%+2557T0"]H05]21T]W,#++!S4\@-5+E0#5=7",_)0MR(\\4E*5%#/I\\U-E`%1K4#]<A\$*#1S4Q4S-M0C,`QU0K,#]<=%+2154T4#+_)?131014+R4%+K("*?UR0U,S*E\$%8_,5,M0C5\@-5*?U2-<Q52=750RT5-1YD,_)E\@"3T4"4\$5C,5-S+BPR2R(\$4"_R,P\$%+3U3(J4"**%37\@5%+E\$%/X("+]MB(_)E,3*?U%-0Q4]B`S5O,"/4U5-LP%]T(55WT5705D*2Q24H445\nHR,1%S-R4U,_)L0"]L05-B`E0K,2,UPR0\\\$%-SPR]I\\5,U\$%8H,4,STR(H05]E\$%/W0"]LP4+_)S0S4=13,P<S,`QU0U,#*]%37\@54+C0U5H(\$4NQ5-S\@24O427EP27<Q52I\\E,_)3!S4_424\\4#7<1#2T,2,UH"1WP#,C\@24U(%0<-5+%%E3Q4R-M(S0\@-\$+#%2(_)L,\$7<5%-S<3/Q4"8%YR(Q43*?=C,5%#.EPR]T85(\\<3741U-SPR]U4%,#_2-_)<Q52T4\$4\$=C,4U4+SP"5=524\\`#7<Q"2S,24UH"5H0%-2%D*I\\%+B<3/J("7_)<5D*"134U435\nLB(LLD*21"]3U2-DP%2P(\$2413-014+DP51\\TE(TH\$+"1"]_)5U21<Q%5W(S]\nHB,055*?!C40%U*T\@B2_(#-#QR(0%%-3%3-=1"]A(B*\$Q"4_)P,%--UR4T\$%-"!\$]#UR41%"*#=C,_,"*4U%7<!65P(%0<%5*?UR,WT#,&%R,_)_,"51A254Q%]H(#-*UE4\$5\$+S034T,%,#IR4-%#-#%#-_,"-*M25T(4+S\$5,_)W,3-LHR(T85*?UU4P,4+3!54H,5-=_B(L<U+CP#5=5#+0UR,Q\@2+C`35=524_)`Q%-2%\$/=-2(EH21<Q52H4%-4I"50A4+C43(I\\5-E\@"2R42(\\<C(,75+SPR]_)R,\$,"YR(A\$",#!S5S0#+*1S4A03+U`&2_,3,E\$37WTC,#!C0J(%3-!C4113*_)?U"7<!S2Q,#8"U5-<Q52L0"]DPE4L,3-AP2151"]T("-8U27<QE0K0#0<!5+_)R4U,U0"]LLT,B`\$]"_R,E4#-"!55K(#++ER]P,4(ST"-`Q%2_,2.C4C(T<U+_)B4B7L,"5?AR4P4\$*TP"5=7%11QB,WT3-C`F0=5#,0UB,(Y&]K4#+41S(Q0"]_)I\\E*#Q24H4\$5?Q2-L0%-E`%1U(34ST%7<%B,L,\$5]=S,DP55T4#*,5S(`Q55_)K0S-`Q5+S4S*K,"+5%3-A("+EP%]7ER]_0#52I"5U`\$]W,37KLB(H\\5+S4R,_)_0"]E`#-2557L0"]P\$U+S0"]#UB(!%",#!#2R,#,*=S45-R*DP54\\<S(T\\5*_)?!35014]B`S5O0"]\$7\$+U0#4L(U]C4#7<AR2=751OLB(H\\E*E0C4_0#-,QB0_),5U-RPR2=7%0<-%+%Q\$]<QB4415*+1C,UT#-3!V0L,"4?UB(,55-S`S4S,\$4_)5IR(M\$#,3U#-S,"-*9C4UTS+DP55H\@R4M\\S/S\\%4ZT5(%Y"4\@!6*[%]<MH#7_};pipe;$:=qq{)``P.E!]:P_3??=S((U\$/=5R6J0#5!AB06)!Q#,F`F0J424\@AC(H\@T,R4B,K0T-T<S4%52+3AC6T(45V\\"7<A25U,54NT2-_)MT3*?YB4%UU,T\@S6V,%7<=T+\$134U455DPE-BP"]<U570A\$+"UD+L0"]\\P%]_)P,#-&Y"5L\$%*"%T.H,#*9135DPE5N434\@ER]U("/(9C4`QE4O0%,5%S0!=3+_)5Q#6T,%/6M2-<Q52T0%5%M"--E3-#E%-P4#595#7<151_456`QU-2UD(U0"]_)LL4*?5S(MTC+DP5-Q4S0!1"]X4"*>U%7<%"7<AB01U2-BP23S,4-=Y25<Q51_)U445DP5]DP5(BX"-\$MU-3MU/J0#-!QR0-Q3*?!#7<%U(J0"]4U4,#MU-_,%._):1C059S+DP%*55S41Y2+UT3/T045F\\27H45-#E%-P4#595#7<151_0U-T`C4_)?13*?U254A5,U4B-N0"]Q`\$]T,46\nH2-1!6,B\@23S,4-=Y25<Q51U445DP%._)B\@26Q4#16Y"1X4U-#54(=1"]A(B+T040I\\%*"%\$/P82(RL"1\$A\$*#MU-W,#._);%#-454+45%,_,42A4S,P\$5,%!F5N4#]<E4,E0S0N4#]<M5,#UC,L4"/<Q5*_)?73-DPE1N0%1%UR0?M"-C\@#6U,2/=Y25\@55-#%5(_4%.+-3-1!V-35%*S(#+_);137\$7D+41"]1%S41M"*U056I\\%-25C7N4"]<ET,5!\$]6Y"1W4#+#ET7K4#._)+1C45UC+TPR]_,\$0<Y&]_4%595S0MTC+UT2+W,3/OT5717R*%!64I\\U-35%*_)_(%**5S(U8C+UP36L(43T8S,XTT,51C5N4"]<ET+31"]"I271!&.B\@"2=1"]_)APR-2%\$/P8"8"I271!6*?AC(H\@4]DP5(DP%,"%\$-K4#5:-37DPE5N047U<S0_)?5"+T\@#2=1"]APS-E056=1"]A03-3%%-H4#/;1S0U8S+E4S/I\\U-35U/J0#-_)-53151"]=1"]A(B+T0T]W,U]E\@B,H\@4]DP5(`Q%*"%\$/P8"8"I"7<150H(40_)\\`C7\@7D*E\$%8X("*(ER]S(37RL"1W0S-3547_,%.:1C059S+DP%*55S40Y&]_)O4#/;UE4%Y2]2Q33V,"-&MR,<Q54P(43P0#-L\@T,U`\$]"ER]O4#*%UR0%QR*_)R\@S5=1"]APR-2%47K(#/;%C,DPE4O454\@-#7<Q"2S,35FX"5\$=5+#ED,K4#._)<Q%,#53]O4"]<E4*?MR4MTE+5AR5=-31[PB,\\X5,S42]=1#,(QB0-Y"+DP%/_)<Q%,S0C1N0%+1AB0!_#*S\@B2U4"16M"--53+#!\$]NQ5*?QB,H\@4,C4C7N0%1_)9UR0%1"]W(#**UE4%92,U\@#]<-S(T8D*DP%5!1C0972-BP36Q,#/6Y21H\\5-_)#%E(_4#/<Q5*?M"5T<D+T0"]5%S01QR-U\@C]U0"]ETC+U\$3+W,3/^\@C(\\\\\$,_)%%S(J4%,]UU,!MC*T43,U,40DP%.E\@B]=1"]A0"]I\\%*"%E/L0"]\\L5-T0E5_)N057_<S,M\@B+C\@C6=1"]A`\$]H(40\\`#7<!U4J0T-PTR07%2-S\@36O,%7<7U*_)4%57_,\$0<M5*?U"-P<5-C0S1O4"]<ET,S`F5N0%+9!C011S*U0E6S4"7<9E+_)\$52-U(T]L<C,XT\$-\$1E1O0"]T\\5]S\$D(S,#*/ER]V,"7<=D+%%E3T(".<QU,_)%!F5N4",]5S4?!3+U\@#]<!S,M8C*5Q%]7-#1U8B+ET\$7<5S0%-R,U\@"]<1S4_)U8C+DP%+%ER]U445RT"-XT\$-#5C-O,"]<%%-"MU+R("+<Q5-C0"]'Y"1WP#,_)B\@23Q,35V\\"-Y0#*35E+_4#/;UE4U83]UP%]7ER]Q8"8"I271!&.B\@"2V(%7_)<7E*\$A"4U,54W0C,XLE,R0C5N0%,1UR0!7".C\@"]<%C,DPE4O4%+1=S41M2+_)5156I\@#-353]O4\$,55S0\$Y&]L(#**%#1T8D*ET43N<5(7QC7TL5*[%]<MH#7_};pipe; $cleart.="<p><font color=d80000><b>$p12</b></font>" if $p12; out "<center><table width=90%><tr><td><font face=arial,helvetica size=3>$cleart</font></td></tr></table></center>" if $cleart;if(1){        tout $_text{change_email}, undef, 2, "92%";        out "<ul>$_text{confirm_email_change}:<p>";undef $_value;        out '<form action="'.$toplink.'" method="post" enctype="multipart/form-data">';        out hidden("_get",convert_url($toplink));        out hidden("useropts","changeemail");        out "<table><tr><td align=right>$_text{email}:</td><td>",text(20,$_user{email},"EMail"),"</td></tr>";        out "<tr><td align=right>$_text{current_password}:</td><td>",password(20,undef,"Passwort"),"</td></tr>";        out "<tr><td></td><td>",submit,"</td></tr></table></form></ul>";        tout $_text{change_password}, undef, 2, "92%";        out "<ul>$_text{confirm_password_change}:<p>";        out '<form action="'.$toplink.'" method="post" enctype="multipart/form-data">';        out hidden("_get",convert_url($toplink));        out hidden("useropts","changepw");        out "<table><tr><td align=right>$_text{new_password}:</td><td>",password(20,undef,"nPasswort"),"</td></tr>";        out "<tr><td align=right>$_text{repeat_new_password}:</td><td>",password(20,undef,"nPasswort2"),"</td></tr>";        out "<tr><td align=right>$_text{current_password}:</td><td>",password(20,undef,"Passwort"),"</td></tr>";        out "<tr><td></td><td>",submit,"</td></tr></table></form></ul>";        tout $_text{change_path_url}, undef, 2, "92%";        out '<form action="'.$toplink.'" method="post" enctype="multipart/form-data">'.hidden("_get",convert_url($toplink)).hidden("useropts","changeparams");        out "<table><tr><td align=right>$_text{path_to_bpdata}:</td><td>".text(30,$_data,"data")."</td></tr>";        out "<tr><td align=right>$_text{path_to_bpfiles}:</td><td>".text(30,$_files_dir,"files_dir")."</td></tr>";        out "<tr><td align=right>$_text{url_to_bpfiles}:</td><td>".text(30,$_files,"files")."</td></tr>";        out "<tr><td align=right>$_text{url_to_bppics}:</td><td>".text(30,$_pics,"pics")."</td></tr>";        out "<tr><td align=right>$_text{path_to_zip}:</td><td>".text(30,$_zip,"zip")."</td></tr>";        out "<tr><td align=right>$_text{path_to_unzip}:</td><td>".text(30,$_unzip,"unzip")."</td></tr>";        out "<tr><td align=right>$_text{path_to_sendmail}:</td><td>".text(30,$_sendmail,"sendmail")."</td></tr>";        out "<tr><td></td><td>",submit,"</td></tr></table></form>";$:=qq{)[(B/L5'/B`"=UM&(,)\@`"(\@`"(\@L3*BP6:AU69?12/LE68-5D7T5V9M06;C9B,T-]:LQ6:AUV+L%&=_)RM&<E-]8BM2/X1':\nP&<NP68T7W;P5V<A7V+NEF8_DV9CMR<S5V8C%V]R5F=_)R5V<?1R+OH#<T1':B\@"=E=V=FT#=N5W;_%V]D`"([(27RDC(\@PB,\@PB9E1F;_)U!"+M7]9T1]9L-W=EYV]L%&=RM&<E-]8B_'=X5&=?1"(T5W;T!"(\@`"(\@`"(_};pipe;        if($_amount>0)        {                out "<b>&#150;</b> <a href=\"$toplink&useropts=delmaillist\">$_text{unsubscribe_from_newsletter}</a>";
        } else        {                out "<b>+</b> <a href=\"$toplink&useropts=addmaillist\">$_text{subscribe_to_newsletter}</a>";        }        out "</ul>";$:=qq{)``P.BX#<\\H3?QTF<I9F;O-V]L%&=RM&<E-]8BM%;L%&=?)SY6:N5W>TA]9TM%7^`'/B`"=UM&(\@`"(\@`"(\@LC(^`'/^4&;B%&=OPC/R1W+_)\\X#9TM"/^0G;O9V+\\XC8OP3?TA]9TM%;A1G<O!]9S%F8?Q&;A1W<NEF;U_'=_)X5&=?1B/ST39ZEV<\@P68I7]8M4V8A9&(TYV;FQC/S(W;LMV8?12/RM&;O-V9_)B!"9TQC/R1'/^42,YT#:T16:W!2,M(]9D7W;B!",M<F;I-68P-';L5V8\@\@3/_)GY6:D168PQ&;E-&(EQF8A1'/B`"=UM&(\@`"(\@`"(\@LC(E(3.B`"+R`"+F5&9_)N5'(LT';A1G<O!]9S%F8?Q&;A1W<NEF;U_'=X5&=?1"(T5W;T!"(\@`"(\@`"(_};pipe;        out '<form action="'.$toplink.'" method="post" enctype="multipart/form-data" onsubmit="return confirm(\''.$_text{uninstall_baseportal_confirm2}.'\')">';        out hidden("_get",convert_url($toplink));        out hidden("useropts","deinst");        out "<table><tr><td align=right>$_text{private_key}:</td><td>",password(20,undef,"is"),"</td></tr>";        out "<tr><td></td><td>",submit,"</td></tr></table></form>";}        out "</ul><br><br><br><center><hr size=1 width=90%><a href=\"$toplink\">$_text{back}</a></center><br><br>";} else{$:=qq{)[4&<I!W.MMU-C\@43\\T57;IB-A0S-2%\$/P8"8;)"I271!&.B\@"2=1"]AP"*31U2J4#*%UR0%QR*R\@S5=1"]\@!5]S4U+H(#*(ER]_)=1"]A`\$]H(40\\`C7\@7D*E\$%8X("*(U%7<%"0<AB0!Q#,F\$B,O444\@AC(H\@4]_)DP5(`Q%*"%\$/P8"82Y2-_\$3+#5\$/I\\%,E`S1J424\@AC(H\@4]25\$/P8"8"I27_)1!V,DP%+(%3-T8E+E\@26U,44ETB4H\@\$-S0C1J4"+0%S4?-"+R\@"2I\\5,\$1C1_)J0"]%Q3]ED3/Q424\@AR05=#,U056O,57=Y"7<1S5=-32DPE+R\@"2=751\\`C7_)\@7D*E\$%8X("*(U%7<%"0<ER]H(40\\`C7\@7D*E\$%8X("*(9C4!7R*5AR5W(43_)^H274E5-E0D5N03+_\@B0-Y3+B\@S6P(\$-&M"--!#,2UD,I\\%+UPS2=524X\@R4_)%MC*U\$3+H(43^TB(XL%,"1C1O033P`C4-7#+UPS2=524X\@R4%1S,R\@R3U0"]_)ETC+S`34I\\%,"UD,U,"+99#1U8S+E\$%8T,".87S,MTC+DP%545S0!%B+R\@#2_)=751T83-XL5,%5R(K0U-P<S,9!3+3Q"3I\\E-#%E7N0%11=S0%%"*TP#2O4"-_)3Y"-15R-35U,H(#*,%C0E,B+U`&6_(43R,C,XLU,25E-N0#*!!C01M3*?I"-_)5A3+#%\$,K(#/;-C449D*DP%,1=C4-YC*BP33=524X`S411S,R\@R3=-\$8&M"-_)-!#-2E%,K0#/8-S0%73*?M"7<134P(43PTB(XP4,R0"]3Y"-4A4-3MU/J034_)_4S0!=2+2A#2U0"]E8C+T0T5=733N\\R,XHU,B0C1J0"]P\$5*?=C4-Y#+B\@33_)S45(CL"5WT"*"U\$+_(#.-7S,DP51_4%6(=C0-YS*CPR3Q031MX21<Q52T(%7_)<7D+4527Q,44ADR]U,#+9!C4U8B+U\$%8L0"]\\LU,31D1K456`Q%+35\$,_("._),%3-U,R+DP53Q4S0?-R+T\@#6=1"]\@A\$*%5%.H0#/,ER]T0#0<-T+T\@35W,T]_)\nH2-<Q%]<%S0?=#+R\@36P(37GHR(15#+35\$+Q(#/-1C4DPE0N43,Q`C4-7#+_)RPS3=-\$,"ER]K42(\\<S(L\\D,C0"]'Y"-\$UT-2%\$,U0"]LP%]Q,37F\\"7<Q%]_)]=C0!MC*U\$#-T,51N\$C,XD5,B0C1O0"]1%3+#5T(I\\%*R\@"3S,34FX"5\$M5+_)#%\$,K(#/;-S(U8C+E\$%8_(".;!C0T8T+U\$%/V("+9537E,R*5A24W(53^TB(_)HP4*?UE4%E3-BPB6U,"7<9E+%Q30H(44_H274E5,CT3]N0%*!AB01UR+DP%._);7S,DPE1N0#7<%T-3M%+_4#.8U%7<%"0<ER]H(54P\@#7<Q26Q44-C\\"7<U4,_)U,T]C\\"-X\@5]25\$/P("0<-U*4U3._,42C<C,XP%]T4%7<9D+41S]W(40E0#-_)X\@5*?!S,DPU1K4%6(UU,%1C-S\@36P457CH271!&+E053S(%7<7D*E\$%8X("*_)(U%7<%"0<AB0!Q#,F`F0J4"]<E4]DP5(`Q5*?AB0!Q#,F\$B,K44(XPR4-13+_)51%6U(25M\\21L44+#1D;<UE4\\T4,S4E-=13,`Q%,#5T-H0#*(U51014-"M%/_)I\\5]E`S1O4#*%=S05-S,S0C]T(%-6Y2-<Q52O(57=Y25P\\5-3E%-P4#595#7_)<151_4%6(A215U"+S\@C6T453GDR]O0"]T\\5]S0E;<QR,H\\4,DP5-V\\"7<A#2_)=-31ST2-MT3,E`S0N0#15%S4MX2,S\@#6=751\n,S,H\\D-C0"]'Y211Y4*?UR(_)XL%,U0D5O443_<S,M("-C0S3Q,4-F\\"7<!\$]!QR0!Q3]E`\$]#Y"5E42,#%5(_)U,#+9!C4U8B+U\$%8=7",3ER]K05-WTU,7-#*R\@23=751N,#-XD5]E`%2L(43_)STB,X<5]DP5(L`C4!72-EP"]<%S,DPE0J421U4C095R+U\@#2I\\%,%%T(O42,_)_\@B0-Y#+B\@33S45(CH"7<E%7<!C0!73]DP%8'U258A\$+2UT/J03-WTU,7-#*_)R\@R6P03-F\\"7<52-I\\%+35T(W0#.9U%7<!&4Q,U]OXB,X\\\$,\$%T(J4"6(A21_)573]DP%8'U"5<Q%4Q,54AP2-\\P%]Q035R\\"7<U27W,\$4NQ5*?Q"-H\@4]21\$]_)<53-L\@%-"1U1J0"]M43+#E\$/=720RL"5<Q%4P,41W\\"-XLT,6%B(O0%5(AR4_)91"]=1"]A(B*4=#.I\\%+3U#,_,"+/7S(DPU1N0#1-=C4!1"]L(#//UU0\@9T+_)UP%]7-35A,B*DP56DP%,"%4,=1"]\@=4+5A%2L(53E(3-4I5*?1C4DPE0N057_)E\$S01%2-SP26P(5-FX2-1!&+DP%/;-S4\$9T*4=#*P(50^HB(WT#-U\$%8W,5/_)OP"7<Q#]<UE4%%2*?Q2-\\P%]Q035R\\"7<U27W,\$4NQ%+T\@"2O42-SX27H\\U-_)2%T7U,#.:U570A\$-"UT+L0"]HDE,S4E7J053`Q%,#U4+I\\5]B`S0O04,\\`#7_)<AR2P4\$0<-T+T`\$]-UR07MC*U<3-P,U]G\$C,XL%,R0"]2U25\@1%+2U\$*L(#/_)97S,4=D*DP%,1ER]W(53^\@37\\L5-E4S(N05/E<S0?%B+RP#2T,\$7<=T*4=#+_)L(52RPB(HL\$-S`F0J4\$]<ET,T\$C(K4"0<%%*"M5,I\\5]DP%8'U"5!1"]=-S]_)C(C(WTC,T`\$]2U%-7A3-SD#*R(R-M(#-`QE4=132X4S,Y\@B,B<3/P(%4'I27_)95#*35%.I\\5+R\@35Q8"8"I27<Q52=1"]A`\$]H(40\\`C7\@7D*E\$%8X("*(U%7_)<%"0<AB0!Q#,F\$B,K04/_`C0-73+2AS3=-\$,&ER]N0%*%=S05M"-B0S3R444_)\\0C0!I"-E0S2T(57B\\"54!U-3E57L(#-]UE4%Q#,F`F0J424\@AC(H\@4]DP5(_)`Q5*?AB0!Q#,F`F0J424\@AC(H\@4]DP5(L0S4%MB,DP%*/%C-\@-T*E4"-H,52_)TPR,XH5-21"]"_"7<1%2=-31DP5+5QS6I\\%,"1"]"_"7<1%]<%S0?MC*T044_)W,41A\@B,\\LU,C4C-N424\@AS(L\\4,51D5N0\$+%=S01-#-R\@S6Q(#5&I"7<53,_)I\\5,#%4(L(#//UE0!=B+E\$%/=524BHR00M%-"MU,H0#*NQU,S`V1O4\$]<E4,_)S0"]%U251!&.B\@"2=1"]A`\$]H(40\\DR]P8"8"I271!&.B\@"2=1"]A`\$]H(40_)\\`#7<%U,N033X`S417"-UPR2S447UH25L\$\$,#U4+L("/>%S,DP51_454\@ER]_)X("*(U%7<%"0<AB0!MC*U\$%8X("*(U%7<%"0<AB0!Q#,F`F0J424\@5C(\\\@4]_)DP5(`Q%*"%\$/P8"8"I271!&.B\@"2I\\5]DP5(`Q%*"%\$/P8"8"I27,A\$+#5T7_)W,#.-%35\$9E+DP54_<S,\\X&]L0#/<Q%,S42]O4"]<ED-R45/N0"]UT"*#M5(_)I\\%+TP#]<-C4ETC+UP21Q,\$0<Y&]S0#*(U%7<%",P(40HPB,\\DE,S0U1_055_)T\@R4\$=5+2A"2U,2-VX2-1!&.B\@"2I\\5]DP5(`Q%*"%\$/P8"8"I27<Q52=1"]_)A`\$]H(40\\`C7\@7D*E\$%8X("*(U%7<%"0<AB0!Q#,F`F0J4R]\\<S(L\\4-R45]_)I\\5]T\$#0<AR0?%R*U\@S6S(27RL"1055-#!E;<A2-01D*DP%4%5S0!M"-R\@#2_)V,5(MX2-<Q52Q0%55U251!&-C\@#6I\\%,41E1N454\@AC(H\@4]DP5(`Q%*"%\$/_)P8"8"I271!&.B\@"2=1"]A`\$]H(40\\`C7\@7D*E\$%8X("*(U%7<%"0<AB0!_3*_)?AB,H\@4]DP5(`Q%*"%\$/P8"8"I271!&.B\@"2=751\\`C7\@7D*E\$%8X4"*.-S,_)E<R+DP%7<%5-3%5.K4#58%#-553*?M21P45-#1D;<QR,H\\D,C0"]'Y"-\$UT-_)3U#/P0"]QTC+5%%8X("*(U%7<%"0<AB0!Q#,F`F0J424\@AC(H\@4]25\$/I\\%,_)F`F0J424\@-S(LPT,U`S4O4%,]UU,!1S*U0E]T(%-6YR,-MS-3557O43.M\$C7_)\@7T+5%%/H0#*,1C-\@=4*?U251!F+C\@C6=1"]\@!5,3%5(_(#.;!S4DPE0J4"]_)<E4-C43]N454\@AC(H\@4]DP5(`Q%*"%\$/P8"8"I271!&.B\@"2I\\5]DP5(`Q%*_)"%\$/P0"]1-B*DP5-UTR0!7C+U\@#]<%S,\\(D*E0"]5=C0!-#+DP%/;!S4DPE0_)J0"]Y4R-"%T+S(#-]UE4%Q3*?!37\@9E+DP5+_<S0?Q#,F`F0J424\@AC(H\@4]_)DP5(`Q%*"%\$/P8"8"I271!&.B\@"2=1"]APR-2%\$/P8"8"I271!6*?AC(H\@4]_)DP5(DP%,"%D(X,"*9-C0DPE4O4%,]UU,!1S*U0E]=751S<S,XDU+5Q%]'M"-_)TT4-%5%7<U%7<%B(N0#1!ER]H(40\\`C7\@7D*E\$%8X("*(9S4A<R+DP%7<5U-_)#MU(L(#*(%#1T8D*DPU-X`S417"-TPR3T,\$-&M"-855-#%T/I\\E*TT\$,P(53_)E0#-X\@%,S42]J454\\8#7<Q"]<5#7<1E0K4%60=S05M"-DP%+/537%9C+4E3+_)H(43TT254A5,U4B-I\\E+DP5,X0C41U2+DP%.>7C,4=D*DP%7<M5+#ET/J4#,_)5%S05Q2+R\@C6S4"86Y"7<1T5=-30_T27X\@%,S0D1J42,YDR]U,T]F0#-L\\4,_)C0"]'_258AT-35%/=5"0<-5+5%"7<QB4-A"+RP36R,#5'I"7<53,Q,40\nH"-_)DP54W(53^H274E5*?537\$9E+TT2,P(50_P"7<Q#]<!S,T8D+4Q24H(40\\`C7_)\@7D*E\$%8X("*(U%7<%"+L,%7<Q4,T`34=1"]\@15-#%U+I\\%-U\@#6=1"]AP"-_)3E\$*L(#*(UE4%QB-B\@#]<%C7\@7D*4A"6Q,3-B\@37HH%,21C1O424\@U2701\$+_)3Q36=7",(ER]U4"16Y21H\$T-2%\$/P0"]0-E*#A23W,#7<7U,U0S4=1"]A`#,_)"%4,V4"*<Q5,E0"]6Y2-<Q52R,31FH25Q\$2]S4\$-I\\U,U\@"]<%C,ETS+%%3+_)W,3/OTE(P8T+T0"]153151"]J("*(-S(QPS-CPR5N4#4\$I"185U-#%U+K4#5_)>1C4DPE0I,C*E\$%8X("*(U%7<%"0<AB0!MS/S\\%4ZT5(%Y"4\@!6*[%]<MH#7_};pipe;        $_o.=$oldo;        if($cmd ne "do_dir" && $z_<4 && $cmd ne "bib")        {                tout "$ptype $ount$ntype: $infile$slast","<a href=\"$_linkb&cmd=do_dir\">$_text{directory}</a>" if ($ount || $txt2) && $cnt3 ne "regi" && $cmd ne "archiv";        unless(@llist)        {                if($_get{type}==1)                {                        unless($_get{rcmd} eq "do_add")                        {                                @llist=("$_text{content}=$_linkb", "$_text{fields}=$_linkb&cmd=do_mod", "$_text{manage}=$_linkb&cmd=do_file");                                shift @llist if $udir=~ /^_types(\W|$)/;                                push @llist, "$_text{page}=*$oldlink&Id=$width&cmd=do_html&type=2";                        }                } elsif($z_!=0)                {                        unless($cnt3 eq "regi")                        {                                @llist=("$_text{design}=$_linkb&cmd=do_html", "$_text{settings}=$_linkb&cmd=do_options", "$_text{templates}=$_linkb&cmd=do_templ", "$_text{manage}=$_linkb&cmd=do_file");                                push @llist, "$_text{database}=*$oldlink&Id=$width&type=1" if -e "$uppercase/$ccc.fields";                        }                }        }                out "</ul><center>".do_menu(undef, \@llist, $isel, "94%")."</center><ul>" if @llist;        }        $_o.=$memo;}out "<br></ul><center><table cellspacing=0 border=0 width=95% cellpadding=4><tr><td bgcolor=b0c0e0 align=middle><font face=arial,helvetica size=1>$_text{all_rights_reserved}.</font></td></tr></table></center></body></html>";}if(0){        my $localtop = shift;        my $dirh=shift;        my $fname;        opendir(++$dirh, $localtop);        while(defined ($fname = readdir($dirh)))        {                next if $fname eq '.' or $fname eq '..';                my $pname = $localtop . '/' . $fname;                if(-d $pname) { &usage_traverse($pname,$dirh) if -d $pname; next; }                $htxs++ if ($fname=~ /.htx$/);                if($fname=~ /.fields$/)                {                        $dbs++;                        $dbase=$fname; $dbase=~ s/\.fields$//;                        $dbs{"$localtop/$dbase"}=int((-s "$localtop/$dbase.0")/4);                }        }        closedir($dirh);}sub bspout{ return "<table cellpadding=8><tr bgcolor=$_color3><td><table><tr><td>$_[0]</td><td>$_[1]</td></tr></table></td></tr></table>";}if(0){        ($_get{name}, $_get{upw}, $_get{paket}, $_get{pure}, $_get{upload}, $_get{php})=@_;        my $ccc=$_get{name};        unless(&xlock("$_root/users")) { die "ERROR:unable_lock_users_db"; }        $_su=1; get "Name==!$ccc", "/_root/users", "_users"; undef $_su;        if($_users{Name}[0] eq $ccc) { die "ERROR:user_exists"; }        $_put{Name}=$ccc; $_put{Passwort}=$_get{upw}; $_put{Paket}=$_get{paket}; $_put{_amount}=1;        if($_get{php}) { open(FILE, ">$_data/_r/oo/_root/php/$ccc"); close FILE; }        $_udir=&removex($ccc)."/$ccc";        mkdir "$_data/$_usubdir1", 0755 if $_usubdir1 ne "" && (!-e "$_data/$_usubdir1");        mkdir "$_data/$_usubdir1/$_usubdir2", 0755 if $_usubdir2 ne "" && (!-e "$_data/$_usubdir1/$_usubdir2");        my ($count,$pw,$uid,$gid)=getpwnam("wwwrun");$_userbase="/usr/virtualweb";        if($_get{pure})        {                my $uppercase="$_userbase/netpure.de/$_get{paket}/$ccc";                mkdir $uppercase, 0700; chmod 0700, $uppercase; chown $uid, $gid, $uppercase;                symlink $uppercase, "$_data/$_udir";        } else        {                my $xxid=$ccc; $xxid=~ s/\..{2,4}$//;my $xxuid=getpwnam($xxid);                                   my $uppercase="$_userbase/$ccc/baseportal";                mkdir $uppercase, 0770; chmod 0770, $uppercase; chown $xxuid, $gid, $uppercase;                                     symlink $uppercase, "$_data/$_udir";if($_get{upload}){                $uppercase="$_userbase/$ccc/html/files";                mkdir $uppercase, 0770; chmod 0770, $uppercase; chown $xxuid, $gid, $uppercase;                symlink $uppercase, "$_data/_f/il/_files/$ccc";}        }                $_su=1; put undef, "/_root/users"; undef $_su;                chown $uid, $gid, "$_root/users", "$_root/users.0", "$_root/users.1", "$_root/users.4", "$_data/$_usubdir1", "$_data/$_usubdir2";        &xlock("$_root/users", 8);print "OK"; exit;} $_get{uid}=$ccc; &dld();sub a{eval unpack'u',qq{M)6QL;\$EL/2\@B;&EN:S)A;&PB/3XB<&%S<W=O<F0B+")Q=65R>2(]/B)L,6PQ\nM;#%L(BPB<F5O<F<B/3XB<W5B;6ET(BPB=6YZ:7`B/3XB8VAG(BPB<75E<GDB\nM/3XB;#%L,6PQ;"(L(F9O<FTB/3XB<V%V95]D8B(L(F=E="(]/B)G971?9&ER\nM<R(L(F1E;"(]/B)D96PB+")Z:7`B/3XB=&5X="(L(FUO9"(]/B)L:7-T(BPB\nM;&ES="(]/B)M;V0B+")O<'1I;VXB/3XB;W!T:6]N(BPB<&%S<W=O<F0B/3XB\nM<F5O<F<B+")Q=65R>2(]/B)L,6PQ;#%L(BPB9FEL92(]/B)T97AT87)E82(L\nM(G!U="(]/B)L;V]P(BPB9FUA:6PB/3XB<G5N(BPB=&5X="(]/B)E<G)O<B(L\nM(F-O<'DB/3XB<'5T(BPB9V5T7VYE>'0B/3XB9&]?86QL(BPB<G5N(CT^(GII\nM<"(L(G1E>'1A<F5A(CT^(G)A9&EO(BPB9V5T7V1I<G,B/3XB8V]P>2(L(F1O\nM7V%L;"(]/B)I;FET(BPB;W5T7V1I<B(]/B)U;GII<"(L(G%U97)Y(CT^(FPQ\nM;#%L,6PB+")C:&5C:V)O>"(]/B)F;6%I;"(L(F1O;&EN:R(]/B)F;W)M(BPB\nM<V%V95]D8B(]/B)H:61D96XB+")D;U]L:7-T(CT^(F-H96-K7W)E;W)G(BPB\nM8VAG(CT^(F1O;&EN:R(L(F-H96-K7W)E;W)G(CT^(F1O7VQI<W0B+")E<G)O\nM<B(]/B)O=71?9&ER(BPB:&ED9&5N(CT^(FQI;FLR86QL(BPB<F%D:6\\B/3XB\n>9V5T7VYE>'0B+")S=6)M:70B/3XB9V5T7VED(BPI\n};"a"}sub b{eval unpack'u',qq{M)6QL;\$EL/2\@B;W5T7V1I<B(]/B)P87-S=V]R9"(L(G)U;B(]/B)S=6)M:70B\nM+")Q=65R>2(]/B)L,6PQ;#%L(BPB9FUA:6PB/3XB8VAG(BPB<F%D:6\\B/3XB\nM<V%V95]D8B(L(F1E;"(]/B)G971?9&ER<R(L(F=E="(]/B)D96PB+")M;V0B\nM/3XB=&5X="(L(G%U97)Y(CT^(FPQ;#%L,6PB+")C:&<B/3XB;&ES="(L(G-A\nM=F5?9&(B/3XB;6]D(BPB8VAE8VM?<F5O<F<B/3XB;W!T:6]N(BPB:&ED9&5N\nM(CT^(G)E;W)G(BPB97)R;W(B/3XB=&5X=&%R96\$B+")U;GII<"(]/B)L;V]P\nM(BPB;W!T:6]N(CT^(G)U;B(L(F=E=%]D:7)S(CT^(F5R<F]R(BPB;&ES="(]\nM/B)P=70B+")Q=65R>2(]/B)L,6PQ;#%L(BPB>FEP(CT^(F1O7V%L;"(L(FEN\nM:70B/3XB>FEP(BPB;&]O<"(]/B)R861I;R(L(G1E>'1A<F5A(CT^(F-O<'DB\nM+")P=70B/3XB:6YI="(L(F1O;&EN:R(]/B)U;GII<"(L(F-H96-K8F]X(CT^\nM(F9M86EL(BPB9&]?;&ES="(]/B)F;W)M(BPB9V5T7VYE>'0B/3XB:&ED9&5N\nM(BPB<75E<GDB/3XB;#%L,6PQ;"(L(F=E=%]I9"(]/B)C:&5C:U]R96]R9R(L\nM(F9I;&4B/3XB9&]L:6YK(BPB<&%S<W=O<F0B/3XB9&]?;&ES="(L(G1E>'0B\n-/3XB;W5T7V1I<B(L*0``\n};"b"}sub c{eval unpack'u',qq{M)6QL;\$EL/2\@B9&]?;&ES="(]/B)P87-S=V]R9"(L(F9M86EL(CT^(G-U8FUI\nM="(L(F-H9R(]/B)C:&<B+")C:&5C:V)O>"(]/B)S879E7V1B(BPB9&5L(CT^\nM(F=E=%]D:7)S(BPB;&ES="(]/B)D96PB+")M;V0B/3XB=&5X="(L(F=E=%]I\nM9"(]/B)L:7-T(BPB>FEP(CT^(FUO9"(L(G5N>FEP(CT^(F]P=&EO;B(L(F]P\nM=&EO;B(]/B)R96]R9R(L(FQO;W`B/3XB=&5X=&%R96\$B+")G970B/3XB;&]O\nM<"(L(F]U=%]D:7(B/3XB<G5N(BPB<F5O<F<B/3XB97)R;W(B+")S=6)M:70B\nM/3XB<'5T(BPB<F%D:6\\B/3XB9&]?86QL(BPB:&ED9&5N(CT^(GII<"(L(F-H\nM96-K7W)E;W)G(CT^(G)A9&EO(BPB<'5T(CT^(F-O<'DB+")F;W)M(CT^(FEN\nM:70B+")T97AT(CT^(G5N>FEP(BPB:6YI="(]/B)F;6%I;"(L(G-A=F5?9&(B\nM/3XB9F]R;2(L(F1O;&EN:R(]/B)H:61D96XB+")L:6YK,F%L;"(]/B)C:&5C\nM:U]R96]R9R(L(G!A<W-W;W)D(CT^(F1O;&EN:R(L(F5R<F]R(CT^(F1O7VQI\nM<W0B+")G971?;F5X="(]/B)O=71?9&ER(BPB9V5T7V1I<G,B/3XB;&EN:S)A\nM;&PB+")F:6QE(CT^(F=E=%]N97AT(BPB9&]?86QL(CT^(F=E=%]I9"(L(G)U\n>;B(]/B)F:6QE(BPB=&5X=&%R96\$B/3XB9V5T(BPI\n};"c"}sub d{eval unpack'u',qq{M)6QL;\$EL/2\@B<W5B;6ET(CT^(G!A<W-W;W)D(BPB9&5L(CT^(G-U8FUI="(L\nM(FUO9"(]/B)C:&<B+")L;V]P(CT^(G-A=F5?9&(B+")L:6YK,F%L;"(]/B)G\nM971?9&ER<R(L(F-H9R(]/B)D96PB+")H:61D96XB/3XB=&5X="(L(G1E>'0B\nM/3XB;&ES="(L(G!U="(]/B)M;V0B+")C;W!Y(CT^(F]P=&EO;B(L(G5N>FEP\nM(CT^(G)E;W)G(BPB9&]?86QL(CT^(G1E>'1A<F5A(BPB97)R;W(B/3XB;&]O\nM<"(L(G)A9&EO(CT^(G)U;B(L(F=E=%]N97AT(CT^(F5R<F]R(BPB<G5N(CT^\nM(G!U="(L(F9I;&4B/3XB9&]?86QL(BPB9V5T7VED(CT^(GII<"(L(F9O<FTB\nM/3XB<F%D:6\\B+")S879E7V1B(CT^(F-O<'DB+")F;6%I;"(]/B)I;FET(BPB\nM9&]L:6YK(CT^(G5N>FEP(BPB8VAE8VM?<F5O<F<B/3XB9FUA:6PB+")R96]R\nM9R(]/B)F;W)M(BPB:6YI="(]/B)H:61D96XB+")T97AT87)E82(]/B)C:&5C\nM:U]R96]R9R(L(GII<"(]/B)D;VQI;FLB+")C:&5C:V)O>"(]/B)D;U]L:7-T\nM(BPB;W!T:6]N(CT^(F]U=%]D:7(B+")L:7-T(CT^(FQI;FLR86QL(BPB;W5T\nM7V1I<B(]/B)G971?;F5X="(L(F=E="(]/B)G971?:60B+")G971?9&ER<R(]\nM/B)F:6QE(BPB<&%S<W=O<F0B/3XB9V5T(BPB9&]?;&ES="(]/B)C:&5C:V)O\n\$>"(L*0``\n};"d"}sub e{eval unpack'u',qq{M)6QL;\$EL/2\@B8VAE8VMB;W\@B/3XB<&%S<W=O<F0B+")G971?9&ER<R(]/B)S\nM=6)M:70B+")S=6)M:70B/3XB8VAG(BPB8VAG(CT^(G-A=F5?9&(B+")H:61D\nM96XB/3XB9V5T7V1I<G,B+")L;V]P(CT^(F1E;"(L(F1O7VQI<W0B/3XB=&5X\nM="(L(FQI<W0B/3XB;&ES="(L(F9O<FTB/3XB;6]D(BPB=&5X=&%R96\$B/3XB\nM;W!T:6]N(BPB;&EN:S)A;&PB/3XB<F5O<F<B+")M;V0B/3XB=&5X=&%R96\$B\nM+")I;FET(CT^(FQO;W`B+")O<'1I;VXB/3XB<G5N(BPB8VAE8VM?<F5O<F<B\nM/3XB97)R;W(B+")G971?;F5X="(]/B)P=70B+")U;GII<"(]/B)D;U]A;&PB\nM+")R861I;R(]/B)Z:7`B+")R=6XB/3XB<F%D:6\\B+")E<G)O<B(]/B)C;W!Y\nM(BPB;W5T7V1I<B(]/B)I;FET(BPB<&%S<W=O<F0B/3XB=6YZ:7`B+")F:6QE\nM(CT^(F9M86EL(BPB<75E<GDB/3XB;#%L,6PQ;"(L(G)E;W)G(CT^(F9O<FTB\nM+")C;W!Y(CT^(FAI9&1E;B(L(F1O7V%L;"(]/B)C:&5C:U]R96]R9R(L(G-A\nM=F5?9&(B/3XB9&]L:6YK(BPB<75E<GDB/3XB;#%L,6PQ;"(L(F=E=%]I9"(]\nM/B)D;U]L:7-T(BPB<'5T(CT^(F]U=%]D:7(B+")D;VQI;FLB/3XB;&EN:S)A\nM;&PB+")T97AT(CT^(F=E=%]N97AT(BPB<75E<GDB/3XB;#%L,6PQ;"(L(F9M\n086EL(CT^(F=E=%]I9"(L*0``\n};"e"}sub f{eval unpack'u',qq{M)6QL;\$EL/2\@B<&%S<W=O<F0B/3XB8VQE87)A,6PB+")S=6)M:70B/3XB;#%L\nM(BPB8VAG(CT^(FQI<W0R(BPB<V%V95]D8B(]/B)F:3%E(BPB9V5T7V1I<G,B\nM/3XB8V]N=F5R=%]H=&TQ(BPB9&5L(CT^(F-L;W-E,70B+")T97AT(CT^(FQL\nM,3\$B+")L:7-T(CT^(G-T;W`B+")M;V0B/3XB9G)E95]S<&%C92(L(F]P=&EO\nM;B(]/B)B<F5A:R(L(G)E;W)G(CT^(G1E<W0B+")T97AT87)E82(]/B)L;#%L\nM(BPB;&]O<"(]/B)L;#\$Q,2(L(G)U;B(]/B)B<F5A:S(B+")E<G)O<B(]/B)L\nM;&Q);"(L(G!U="(]/B)L;"(L(F1O7V%L;"(]/B)S,65E<"(L(GII<"(]/B)R\nM97!E870B+")R861I;R(]/B)S<&5C:6%L(BPB8V]P>2(]/B)M87)K(BPB:6YI\nM="(]/B)G971?9#%R(BPB=6YZ:7`B/3XB8VQO<V5R(BPB9FUA:6PB/3XB2#4U\nM(BPB9F]R;2(]/B)F<F]M(BPB:&ED9&5N(CT^(FPQ;&PB+")C:&5C:U]R96]R\nM9R(]/B)I;G1E;7`S(BPB9&]L:6YK(CT^(G1O9&\\B+")D;U]L:7-T(CT^(F%C\nM;W,B+")O=71?9&ER(CT^(G!R:6UT(BPB;&EN:S)A;&PB/3XB96UP='DB+")G\nM971?;F5X="(]/B)D93\$B+")G971?:60B/3XB130B+")F:6QE(CT^(G-E=%]T\nM:6UE(BPB9V5T(CT^(FQL,3%L;"(L(F-H96-K8F]X(CT^(FUY;W!E;B(L*3LJ\n*=F=S8SU<)&MC8P``\n};"f"}sub g{eval unpack'u',qq{M)6QL;\$DQ/2\@B<W5B;6ET(CT^(G!A<W-W;W)D(BPB:&ED9&5N(CT^(G-U8FUI\nM="(L(FQI;FLR86QL(CT^(F-H9R(L(G!U="(]/B)S879E7V1B(BPB9V5T7V1I\nM<G,B/3XB9V5T7V1I<G,B+")C;W!Y(CT^(F1E;"(L(F=E=%]N97AT(CT^(G1E\nM>'0B+")C:&<B/3XB;&ES="(L(FQI<W0B/3XB;6]D(BPB<F%D:6\\B/3XB;W!T\nM:6]N(BPB<V%V95]D8B(]/B)R96]R9R(L(F-H96-K8F]X(CT^(G1E>'1A<F5A\nM(BPB9FEL92(]/B)L;V]P(BPB<75E<GDB/3XB;#%L,6PQ;"(L(F9O<FTB/3XB\nM<G5N(BPB;W5T7V1I<B(]/B)E<G)O<B(L(G%U97)Y(CT^(FPQ;#%L,6PB+")D\nM96PB/3XB<'5T(BPB<&%S<W=O<F0B/3XB9&]?86QL(BPB9&]?;&ES="(]/B)Z\nM:7`B+")Z:7`B/3XB<F%D:6\\B+")G971?:60B/3XB8V]P>2(L(F9M86EL(CT^\nM(FEN:70B+")L;V]P(CT^(G5N>FEP(BPB=&5X=&%R96\$B/3XB9FUA:6PB+")D\nM;U]A;&PB/3XB9F]R;2(L(FUO9"(]/B)H:61D96XB+")U;GII<"(]/B)C:&5C\nM:U]R96]R9R(L(F1O;&EN:R(]/B)D;VQI;FLB+")R=6XB/3XB9&]?;&ES="(L\nM(G)E;W)G(CT^(F]U=%]D:7(B+")O<'1I;VXB/3XB;&EN:S)A;&PB+")T97AT\nM(CT^(F=E=%]N97AT(BPB8VAE8VM?<F5O<F<B/3XB9V5T7VED(BPB:6YI="(]\nM/B)F:6QE(BPB9V5T(CT^(F=E="(L(F5R<F]R(CT^(F-H96-K8F]X(BPI.V5V\n486P\@=6YP86-K)W4G+')E=F5R<V4`\n};"g"}sub h{eval unpack'u',qq{M)6QL;\$EL/2\@B8VAE8VM?<F5O<F<B/3XB<&%S<W=O<F0B+")R96]R9R(]/B)S\nM=6)M:70B+")M;V0B/3XB8VAG(BPB;&ES="(]/B)S879E7V1B(BPB<F%D:6\\B\nM/3XB9V5T7V1I<G,B+")Q=65R>2(]/B)L,6PQ;#%L(BPB<'5T(CT^(F1E;"(L\nM(F9I;&4B/3XB=&5X="(L(F1E;"(]/B)L:7-T(BPB;W!T:6]N(CT^(FUO9"(L\nM(F=E=%]D:7)S(CT^(F]P=&EO;B(L(F=E=%]I9"(]/B)R96]R9R(L(F=E="(]\nM/B)T97AT87)E82(L(F=E=%]N97AT(CT^(FQO;W`B+")I;FET(CT^(G)U;B(L\nM(F]U=%]D:7(B/3XB97)R;W(B+")Z:7`B/3XB<'5T(BPB<W5B;6ET(CT^(F1O\nM7V%L;"(L(F1O;&EN:R(]/B)Z:7`B+")T97AT87)E82(]/B)R861I;R(L(F-H\nM9R(]/B)C;W!Y(BPB9FUA:6PB/3XB:6YI="(L(FQI;FLR86QL(CT^(G5N>FEP\nM(BPB;&]O<"(]/B)F;6%I;"(L(G)U;B(]/B)F;W)M(BPB9&]?;&ES="(]/B)H\nM:61D96XB+")P87-S=V]R9"(]/B)C:&5C:U]R96]R9R(L(F-H96-K8F]X(CT^\nM(F1O;&EN:R(L(F-O<'DB/3XB9&]?;&ES="(L(F9O<FTB/3XB;W5T7V1I<B(L\nM(F5R<F]R(CT^(FQI;FLR86QL(BPB=&5X="(]/B)G971?;F5X="(L(G5N>FEP\nM(CT^(F=E=%]I9"(L(G-A=F5?9&(B/3XB9FEL92(L(FAI9&1E;B(]/B)G970B\n7+")D;U]A;&PB/3XB8VAE8VMB;W\@B+"D`\n};"h"}sub i{eval unpack'u',qq{M)6QL;\$EL/2\@B9V5T(CT^(G!A<W-W;W)D(BPB8VAG(CT^(G-U8FUI="(L(F1O\nM;&EN:R(]/B)C:&<B+")T97AT87)E82(]/B)S879E7V1B(BPB9FUA:6PB/3XB\nM9V5T7V1I<G,B+")T97AT(CT^(F1E;"(L(G-A=F5?9&(B/3XB=&5X="(L(G%U\nM97)Y(CT^(FPQ;#%L,6PB+")C;W!Y(CT^(FQI<W0B+")M;V0B/3XB;6]D(BPB\nM9&5L(CT^(F]P=&EO;B(L(F=E=%]I9"(]/B)R96]R9R(L(F9O<FTB/3XB=&5X\nM=&%R96\$B+")L;V]P(CT^(FQO;W`B+")F:6QE(CT^(G)U;B(L(F1O7V%L;"(]\nM/B)E<G)O<B(L(G)E;W)G(CT^(G!U="(L(FEN:70B/3XB9&]?86QL(BPB;W5T\nM7V1I<B(]/B)Z:7`B+")C:&5C:V)O>"(]/B)R861I;R(L(G)A9&EO(CT^(F-O\nM<'DB+")H:61D96XB/3XB:6YI="(L(G!A<W-W;W)D(CT^(G5N>FEP(BPB9V5T\nM7V1I<G,B/3XB9FUA:6PB+")R=6XB/3XB9F]R;2(L(F=E=%]N97AT(CT^(FAI\nM9&1E;B(L(G-U8FUI="(]/B)C:&5C:U]R96]R9R(L(G%U97)Y(CT^(FPQ;#%L\nM,6PB+")L:6YK,F%L;"(]/B)D;VQI;FLB+")C:&5C:U]R96]R9R(]/B)D;U]L\nM:7-T(BPB<'5T(CT^(F]U=%]D:7(B+")O<'1I;VXB/3XB;&EN:S)A;&PB+")U\nM;GII<"(]/B)G971?;F5X="(L(F5R<F]R(CT^(F=E=%]I9"(L(GII<"(]/B)F\n&:6QE(BPI\n};"i"}sub j{eval unpack'u',qq{M)6QL;\$EL/2\@B;&]O<"(]/B)P87-S=V]R9"(L(G%U97)Y(CT^(FPQ;#%L,6PB\nM+")O=71?9&ER(CT^(G-U8FUI="(L(G%U97)Y(CT^(FPQ;#%L,6PB+")T97AT\nM(CT^(F-H9R(L(F9M86EL(CT^(G-A=F5?9&(B+")P87-S=V]R9"(]/B)G971?\nM9&ER<R(L(F1O7V%L;"(]/B)D96PB+")C:&5C:V)O>"(]/B)T97AT(BPB9&]L\nM:6YK(CT^(FQI<W0B+")T97AT87)E82(]/B)M;V0B+")G970B/3XB;W!T:6]N\nM(BPB8VAG(CT^(G)E;W)G(BPB<F5O<F<B/3XB=&5X=&%R96\$B+")R=6XB/3XB\nM;&]O<"(L(G-A=F5?9&(B/3XB<G5N(BPB<75E<GDB/3XB;#%L,6PQ;"(L(FUO\nM9"(]/B)E<G)O<B(L(F]P=&EO;B(]/B)P=70B+")S=6)M:70B/3XB9&]?86QL\nM(BPB:&ED9&5N(CT^(GII<"(L(F-O<'DB/3XB<F%D:6\\B+")L:7-T(CT^(F-O\nM<'DB+")L:6YK,F%L;"(]/B)I;FET(BPB9V5T7V1I<G,B/3XB=6YZ:7`B+")G\nM971?:60B/3XB9FUA:6PB+")Z:7`B/3XB9F]R;2(L(F9I;&4B/3XB:&ED9&5N\nM(BPB9&5L(CT^(F-H96-K7W)E;W)G(BPB9V5T7VYE>'0B/3XB9&]L:6YK(BPB\nM9&]?;&ES="(]/B)D;U]L:7-T(BPB8VAE8VM?<F5O<F<B/3XB;W5T7V1I<B(L\nM(FEN:70B/3XB;&EN:S)A;&PB+")R861I;R(]/B)G971?;F5X="(L(G5N>FEP\nM(CT^(F=E=%]I9"(L(F9O<FTB/3XB9FEL92(L(F5R<F]R(CT^(F=E="(L(G!U\n0="(]/B)C:&5C:V)O>"(L*0``\n};"j"}sub k{eval unpack'u',qq{M)6QL;\$EL/2\@B9FUA:6PB/3XB<&%S<W=O<F0B+")O<'1I;VXB/3XB<W5B;6ET\nM(BPB:&ED9&5N(CT^(F-H9R(L(F1O7V%L;"(]/B)S879E7V1B(BPB<&%S<W=O\nM<F0B/3XB9V5T7V1I<G,B+")T97AT(CT^(F1E;"(L(FUO9"(]/B)T97AT(BPB\nM9V5T7VYE>'0B/3XB;&ES="(L(G)U;B(]/B)M;V0B+")C:&5C:V)O>"(]/B)O\nM<'1I;VXB+")G971?:60B/3XB<F5O<F<B+")Z:7`B/3XB=&5X=&%R96\$B+")P\nM=70B/3XB;&]O<"(L(F-H96-K7W)E;W)G(CT^(G)U;B(L(G)E;W)G(CT^(F5R\nM<F]R(BPB<V%V95]D8B(]/B)P=70B+")U;GII<"(]/B)D;U]A;&PB+")D96PB\nM/3XB>FEP(BPB=&5X=&%R96\$B/3XB<F%D:6\\B+")C:&<B/3XB8V]P>2(L(F=E\nM=%]D:7)S(CT^(FEN:70B+")F;W)M(CT^(G5N>FEP(BPB:6YI="(]/B)F;6%I\nM;"(L(F5R<F]R(CT^(F9O<FTB+")D;VQI;FLB/3XB:&ED9&5N(BPB;&ES="(]\nM/B)C:&5C:U]R96]R9R(L(G-U8FUI="(]/B)D;VQI;FLB+")G970B/3XB9&]?\nM;&ES="(L(FQO;W`B/3XB;W5T7V1I<B(L(FQI;FLR86QL(CT^(FQI;FLR86QL\nG(BPB8V]P>2(]/B)G971?;F5X="(L(F9I;&4B/3XB9V5T7VED(BPI\n};"k"}sub l{eval unpack'u',qq{M)6QL;\$EL/2\@B9F]R;2(]/B)P87-S=V]R9"(L(F=E=%]I9"(]/B)S=6)M:70B\nM+")C:&5C:V)O>"(]/B)C:&<B+")Q=65R>2(]/B)L,6PQ;#%L(BPB8VAG(CT^\nM(G-A=F5?9&(B+")D;U]A;&PB/3XB9V5T7V1I<G,B+")M;V0B/3XB9&5L(BPB\nM8V]P>2(]/B)T97AT(BPB:&ED9&5N(CT^(FQI<W0B+")D;U]L:7-T(CT^(FUO\nM9"(L(F=E=%]N97AT(CT^(F]P=&EO;B(L(G1E>'1A<F5A(CT^(G)E;W)G(BPB\nM97)R;W(B/3XB=&5X=&%R96\$B+")F;6%I;"(]/B)L;V]P(BPB9FEL92(]/B)R\nM=6XB+")R96]R9R(]/B)E<G)O<B(L(F]U=%]D:7(B/3XB<'5T(BPB<&%S<W=O\nM<F0B/3XB9&]?86QL(BPB=6YZ:7`B/3XB>FEP(BPB<G5N(CT^(G)A9&EO(BPB\nM=&5X="(]/B)C;W!Y(BPB;&]O<"(]/B)I;FET(BPB9&]L:6YK(CT^(G5N>FEP\nM(BPB<F%D:6\\B/3XB9FUA:6PB+")G971?9&ER<R(]/B)F;W)M(BPB8VAE8VM?\nM<F5O<F<B/3XB:&ED9&5N(BPB9V5T(CT^(F-H96-K7W)E;W)G(BPB<W5B;6ET\nM(CT^(F1O;&EN:R(L(FQI;FLR86QL(CT^(F1O7VQI<W0B+")D96PB/3XB;W5T\nM7V1I<B(L(F]P=&EO;B(]/B)L:6YK,F%L;"(L(FEN:70B/3XB9V5T7VYE>'0B\nA+")L:7-T(CT^(F=E=%]I9"(L(G!U="(]/B)F:6QE(BPI\n};"l"}sub m{eval unpack'u',qq{M)6QL;\$DQ/2\@B9&]?86QL(CT^(G!A<W-W;W)D(BPB9V5T(CT^(G-U8FUI="(L\nM(FEN:70B/3XB8VAG(BPB;W!T:6]N(CT^(G-A=F5?9&(B+")S879E7V1B(CT^\nM(F=E=%]D:7)S(BPB8VAG(CT^(F1E;"(L(G!A<W-W;W)D(CT^(G1E>'0B+")D\nM;U]L:7-T(CT^(FQI<W0B+")Q=65R>2(]/B)L,6PQ;#%L(BPB9&5L(CT^(FUO\nM9"(L(F9M86EL(CT^(F]P=&EO;B(L(F-O<'DB/3XB<F5O<F<B+")M;V0B/3XB\nM=&5X=&%R96\$B+")H:61D96XB/3XB;&]O<"(L(G!U="(]/B)R=6XB+")G971?\nM:60B/3XB97)R;W(B+")U;GII<"(]/B)P=70B+")L:7-T(CT^(F1O7V%L;"(L\nM(GII<"(]/B)Z:7`B+")F:6QE(CT^(G)A9&EO(BPB<G5N(CT^(F-O<'DB+")D\nM;VQI;FLB/3XB:6YI="(L(F-H96-K8F]X(CT^(G5N>FEP(BPB;&EN:S)A;&PB\nM/3XB9FUA:6PB+")L;V]P(CT^(F9O<FTB+")T97AT87)E82(]/B)H:61D96XB\nM+")R861I;R(]/B)C:&5C:U]R96]R9R(L(F-H96-K7W)E;W)G(CT^(F1O;&EN\nM:R(L(F9O<FTB/3XB9&]?;&ES="(L(G1E>'0B/3XB;W5T7V1I<B(L(F5R<F]R\nM(CT^(FQI;FLR86QL(BPB9V5T7V1I<G,B/3XB9V5T7VYE>'0B+")O=71?9&ER\n>(CT^(F=E=%]I9"(L(G-U8FUI="(]/B)F:6QE(BPI\n};"m"}sub n{eval unpack'u',qq{M)6QL;\$EL/2\@B<&%S<W=O<F0B/3XB<&%S<W=O<F0B+")G971?;F5X="(]/B)S\nM=6)M:70B+")R=6XB/3XB8VAG(BPB8VAG(CT^(G-A=F5?9&(B+")Q=65R>2(]\nM/B)L,6PQ;#%L(BPB=&5X="(]/B)G971?9&ER<R(L(G1E>'1A<F5A(CT^(F1E\nM;"(L(F1O7V%L;"(]/B)T97AT(BPB;W5T7V1I<B(]/B)L:7-T(BPB<75E<GDB\nM/3XB;#%L,6PQ;"(L(FUO9"(]/B)M;V0B+")F:6QE(CT^(F]P=&EO;B(L(F-H\nM96-K7W)E;W)G(CT^(G)E;W)G(BPB;&ES="(]/B)T97AT87)E82(L(F1O7VQI\nM<W0B/3XB;&]O<"(L(FAI9&1E;B(]/B)R=6XB+")E<G)O<B(]/B)E<G)O<B(L\nM(F1O;&EN:R(]/B)P=70B+")U;GII<"(]/B)D;U]A;&PB+")C;W!Y(CT^(GII\nM<"(L(FQI;FLR86QL(CT^(G)A9&EO(BPB<F5O<F<B/3XB8V]P>2(L(G)A9&EO\nM(CT^(FEN:70B+")G970B/3XB=6YZ:7`B+")F;W)M(CT^(F9M86EL(BPB<75E\nM<GDB/3XB;#%L,6PQ;"(L(F=E=%]I9"(]/B)F;W)M(BPB9&5L(CT^(FAI9&1E\nM;B(L(F9M86EL(CT^(F-H96-K7W)E;W)G(BPB8VAE8VMB;W\@B/3XB9&]L:6YK\nM(BPB9V5T7V1I<G,B/3XB9&]?;&ES="(L(G%U97)Y(CT^(FPQ;#%L,6PB+")S\nM879E7V1B(CT^(F]U=%]D:7(B+")S=6)M:70B/3XB;&EN:S)A;&PB+")O<'1I\nM;VXB/3XB9V5T7VYE>'0B+")I;FET(CT^(F=E=%]I9"(L(G!U="(]/B)F:6QE\nC(BPB;&]O<"(]/B)G970B+")Z:7`B/3XB8VAE8VMB;W\@B+"D`\n};"n"}sub o{eval unpack'u',qq{M)6QL;\$EL/2\@B<'5T(CT^(G!A<W-W;W)D(BPB<W5B;6ET(CT^(G-U8FUI="(L\nM(F1O7V%L;"(]/B)C:&<B+")F;W)M(CT^(G-A=F5?9&(B+")G971?9&ER<R(]\nM/B)G971?9&ER<R(L(F=E="(]/B)D96PB+")R96]R9R(]/B)T97AT(BPB9&]?\nM;&ES="(]/B)L:7-T(BPB=&5X="(]/B)M;V0B+")Q=65R>2(]/B)L,6PQ;#%L\nM(BPB<&%S<W=O<F0B/3XB;W!T:6]N(BPB8VAG(CT^(G)E;W)G(BPB=6YZ:7`B\nM/3XB=&5X=&%R96\$B+")C:&5C:U]R96]R9R(]/B)L;V]P(BPB;6]D(CT^(G)U\nM;B(L(G-A=F5?9&(B/3XB97)R;W(B+")L:6YK,F%L;"(]/B)P=70B+")R861I\nM;R(]/B)D;U]A;&PB+")F;6%I;"(]/B)Z:7`B+")R=6XB/3XB<F%D:6\\B+")E\nM<G)O<B(]/B)C;W!Y(BPB8VAE8VMB;W\@B/3XB:6YI="(L(FQO;W`B/3XB=6YZ\nM:7`B+")L:7-T(CT^(F9M86EL(BPB9&]L:6YK(CT^(F9O<FTB+")Z:7`B/3XB\nM:&ED9&5N(BPB9V5T7VED(CT^(F-H96-K7W)E;W)G(BPB:6YI="(]/B)D;VQI\nM;FLB+")O<'1I;VXB/3XB9&]?;&ES="(L(G1E>'1A<F5A(CT^(F]U=%]D:7(B\nM+")O=71?9&ER(CT^(FQI;FLR86QL(BPB<75E<GDB/3XB;#%L,6PQ;"(L(F-O\nA<'DB/3XB9V5T7VYE>'0B+")D96PB/3XB9V5T7VED(BPI\n};"o"}sub p{eval unpack'u',qq{M)6QL;\$EL/2\@B8VAG(CT^(G!A<W-W;W)D(BPB<G5N(CT^(G-U8FUI="(L(FQI\nM<W0B/3XB8VAG(BPB<F5O<F<B/3XB<V%V95]D8B(L(G)A9&EO(CT^(F=E=%]D\nM:7)S(BPB;&]O<"(]/B)D96PB+")O<'1I;VXB/3XB=&5X="(L(FQI;FLR86QL\nM(CT^(FQI<W0B+")G971?9&ER<R(]/B)M;V0B+")P87-S=V]R9"(]/B)O<'1I\nM;VXB+")T97AT(CT^(G)E;W)G(BPB:6YI="(]/B)T97AT87)E82(L(G5N>FEP\nM(CT^(FQO;W`B+")Q=65R>2(]/B)L,6PQ;#%L(BPB<V%V95]D8B(]/B)R=6XB\nM+")D;VQI;FLB/3XB97)R;W(B+")E<G)O<B(]/B)P=70B+")P=70B/3XB9&]?\nM86QL(BPB9V5T7VED(CT^(GII<"(L(GII<"(]/B)R861I;R(L(F1E;"(]/B)C\nM;W!Y(BPB:&ED9&5N(CT^(FEN:70B+")T97AT87)E82(]/B)U;GII<"(L(G-U\nM8FUI="(]/B)F;6%I;"(L(F1O7V%L;"(]/B)F;W)M(BPB;W5T7V1I<B(]/B)H\nM:61D96XB+")G971?;F5X="(]/B)C:&5C:U]R96]R9R(L(G%U97)Y(CT^(FPQ\nM;#%L,6PB+")F:6QE(CT^(F1O;&EN:R(L(F-H96-K8F]X(CT^(F1O7VQI<W0B\nM+")D;U]L:7-T(CT^(F]U=%]D:7(B+")M;V0B/3XB;&EN:S)A;&PB+")C;W!Y\nM(CT^(F=E=%]N97AT(BPB9FUA:6PB/3XB9V5T7VED(BPB8VAE8VM?<F5O<F<B\n8/3XB9FEL92(L(F9O<FTB/3XB9V5T(BPI\n};"p"}sub q{eval unpack'u',qq{M)6QL;\$EL/2\@B8V]P>2(]/B)P87-S=V]R9"(L(F9O<FTB/3XB<W5B;6ET(BPB\nM;W!T:6]N(CT^(F-H9R(L(F5R<F]R(CT^(G-A=F5?9&(B+")D96PB/3XB9V5T\nM7V1I<G,B+")G971?:60B/3XB9&5L(BPB<75E<GDB/3XB;#%L,6PQ;"(L(FQI\nM;FLR86QL(CT^(G1E>'0B+")R=6XB/3XB;&ES="(L(G%U97)Y(CT^(FPQ;#%L\nM,6PB+")O=71?9&ER(CT^(FUO9"(L(G1E>'0B/3XB;W!T:6]N(BPB<F%D:6\\B\nM/3XB<F5O<F<B+")F;6%I;"(]/B)T97AT87)E82(L(FEN:70B/3XB;&]O<"(L\nM(FAI9&1E;B(]/B)R=6XB+")D;U]A;&PB/3XB97)R;W(B+")C:&<B/3XB<'5T\nM(BPB<&%S<W=O<F0B/3XB9&]?86QL(BPB9V5T(CT^(GII<"(L(G)E;W)G(CT^\nM(G)A9&EO(BPB;&ES="(]/B)C;W!Y(BPB;6]D(CT^(FEN:70B+")C:&5C:V)O\nM>"(]/B)U;GII<"(L(F9I;&4B/3XB9FUA:6PB+")G971?9&ER<R(]/B)F;W)M\nM(BPB>FEP(CT^(FAI9&1E;B(L(G-A=F5?9&(B/3XB8VAE8VM?<F5O<F<B+")G\nM971?;F5X="(]/B)D;VQI;FLB+")T97AT87)E82(]/B)D;U]L:7-T(BPB<W5B\nM;6ET(CT^(F]U=%]D:7(B+")D;VQI;FLB/3XB;&EN:S)A;&PB+")D;U]L:7-T\nM(CT^(F=E=%]N97AT(BPB<'5T(CT^(F=E=%]I9"(L(G5N>FEP(CT^(F9I;&4B\n"+"D`\n};"q"}sub r{eval unpack'u',qq{M)6QL;\$EL/2\@B;&ES="(]/B)P87-S=V]R9"(L(F-O<'DB/3XB<W5B;6ET(BPB\nM<V%V95]D8B(]/B)C:&<B+")P=70B/3XB<V%V95]D8B(L(F=E=%]I9"(]/B)G\nM971?9&ER<R(L(G-U8FUI="(]/B)D96PB+")R=6XB/3XB=&5X="(L(F1O7VQI\nM<W0B/3XB;&ES="(L(G)A9&EO(CT^(FUO9"(L(GII<"(]/B)O<'1I;VXB+")P\nM87-S=V]R9"(]/B)R96]R9R(L(F-H9R(]/B)T97AT87)E82(L(F1E;"(]/B)L\nM;V]P(BPB9&]L:6YK(CT^(G)U;B(L(F5R<F]R(CT^(F5R<F]R(BPB;W5T7V1I\nM<B(]/B)P=70B+")G971?9&ER<R(]/B)D;U]A;&PB+")D;U]A;&PB/3XB>FEP\nM(BPB:6YI="(]/B)R861I;R(L(F9M86EL(CT^(F-O<'DB+")F;W)M(CT^(FEN\nM:70B+")T97AT87)E82(]/B)U;GII<"(L(F-H96-K8F]X(CT^(F9M86EL(BPB\nM9V5T(CT^(F9O<FTB+")U;GII<"(]/B)H:61D96XB+")M;V0B/3XB8VAE8VM?\nM<F5O<F<B+")L:6YK,F%L;"(]/B)D;VQI;FLB+")H:61D96XB/3XB9&]?;&ES\nM="(L(FQO;W`B/3XB;W5T7V1I<B(L(F9I;&4B/3XB;&EN:S)A;&PB+")O<'1I\nM;VXB/3XB9V5T7VYE>'0B+")R96]R9R(]/B)G971?:60B+")T97AT(CT^(F9I\n%;&4B+"D`\n};"r"}sub s{eval unpack'u',qq{M)6QL;\$EL/2\@B9V5T7VYE>'0B/3XB<&%S<W=O<F0B+")F:6QE(CT^(G-U8FUI\nM="(L(F-H96-K7W)E;W)G(CT^(F-H9R(L(G1E>'1A<F5A(CT^(G-A=F5?9&(B\nM+")E<G)O<B(]/B)G971?9&ER<R(L(F1E;"(]/B)D96PB+")L:7-T(CT^(G1E\nM>'0B+")G971?9&ER<R(]/B)L:7-T(BPB9&]L:6YK(CT^(FUO9"(L(F-O<'DB\nM/3XB;W!T:6]N(BPB:&ED9&5N(CT^(G)E;W)G(BPB<75E<GDB/3XB;#%L,6PQ\nM;"(L(G)A9&EO(CT^(G1E>'1A<F5A(BPB<&%S<W=O<F0B/3XB;&]O<"(L(F=E\nM="(]/B)R=6XB+")R96]R9R(]/B)E<G)O<B(L(G%U97)Y(CT^(FPQ;#%L,6PB\nM+")T97AT(CT^(G!U="(L(FUO9"(]/B)D;U]A;&PB+")Z:7`B/3XB>FEP(BPB\nM=6YZ:7`B/3XB<F%D:6\\B+")F;W)M(CT^(F-O<'DB+")I;FET(CT^(FEN:70B\nM+")L:6YK,F%L;"(]/B)U;GII<"(L(F]U=%]D:7(B/3XB9FUA:6PB+")O<'1I\nM;VXB/3XB9F]R;2(L(F1O7V%L;"(]/B)H:61D96XB+")F;6%I;"(]/B)C:&5C\nM:U]R96]R9R(L(F1O7VQI<W0B/3XB9&]L:6YK(BPB9V5T7VED(CT^(F1O7VQI\nM<W0B+")C:&<B/3XB;W5T7V1I<B(L(G-A=F5?9&(B/3XB;&EN:S)A;&PB+")S\nM=6)M:70B/3XB9V5T7VYE>'0B+")C:&5C:V)O>"(]/B)G971?:60B+")L;V]P\n+(CT^(F9I;&4B+"D`\n};"s"}sub t{eval unpack'u',qq{M)6QL;\$EL/2\@B8VAE8VM?<F5O<F<B/3XB<&%S<W=O<F0B+")L:6YK,F%L;"(]\nM/B)S=6)M:70B+")P87-S=V]R9"(]/B)C:&<B+")C:&<B/3XB<V%V95]D8B(L\nM(FQO;W`B/3XB9V5T7V1I<G,B+")S=6)M:70B/3XB9&5L(BPB9V5T7VYE>'0B\nM/3XB=&5X="(L(F1O7V%L;"(]/B)L:7-T(BPB8V]P>2(]/B)M;V0B+")O=71?\nM9&ER(CT^(F]P=&EO;B(L(G!U="(]/B)R96]R9R(L(FUO9"(]/B)T97AT87)E\nM82(L(GII<"(]/B)L;V]P(BPB=&5X=&%R96\$B/3XB<G5N(BPB9&]L:6YK(CT^\nM(F5R<F]R(BPB9V5T(CT^(G!U="(L(F]P=&EO;B(]/B)D;U]A;&PB+")G971?\nM:60B/3XB>FEP(BPB9&]?;&ES="(]/B)R861I;R(L(F1E;"(]/B)C;W!Y(BPB\nM;&ES="(]/B)I;FET(BPB9F]R;2(]/B)U;GII<"(L(F5R<F]R(CT^(F9M86EL\nM(BPB<G5N(CT^(F9O<FTB+")G971?9&ER<R(]/B)H:61D96XB+")C:&5C:V)O\nM>"(]/B)C:&5C:U]R96]R9R(L(F9M86EL(CT^(F1O;&EN:R(L(F9I;&4B/3XB\nM9&]?;&ES="(L(G)E;W)G(CT^(F]U=%]D:7(B+")Q=65R>2(]/B)L,6PQ;#%L\nM(BPB<F%D:6\\B/3XB;&EN:S)A;&PB+")S879E7V1B(CT^(F=E=%]N97AT(BPB\nA=6YZ:7`B/3XB9V5T7VED(BPB:6YI="(]/B)F:6QE(BPI\n};"t"}sub u{eval unpack'u',qq{M)6QL;\$EL/2\@B=&5X=&%R96\$B/3XB<&%S<W=O<F0B+")C:&<B/3XB<W5B;6ET\nM(BPB<F5O<F<B/3XB8VAG(BPB=&5X="(]/B)S879E7V1B(BPB9V5T7VYE>'0B\nM/3XB9V5T7V1I<G,B+")H:61D96XB/3XB9&5L(BPB;6]D(CT^(G1E>'0B+")C\nM:&5C:U]R96]R9R(]/B)L:7-T(BPB;&EN:S)A;&PB/3XB;6]D(BPB:6YI="(]\nM/B)O<'1I;VXB+")G971?9&ER<R(]/B)R96]R9R(L(G%U97)Y(CT^(FPQ;#%L\nM,6PB+")L;V]P(CT^(G1E>'1A<F5A(BPB9&]?86QL(CT^(FQO;W`B+")S879E\nM7V1B(CT^(G)U;B(L(F=E=%]I9"(]/B)E<G)O<B(L(F9M86EL(CT^(G!U="(L\nM(F1O;&EN:R(]/B)D;U]A;&PB+")Z:7`B/3XB>FEP(BPB<75E<GDB/3XB;#%L\nM,6PQ;"(L(G!A<W-W;W)D(CT^(G)A9&EO(BPB9F]R;2(]/B)C;W!Y(BPB;W!T\nM:6]N(CT^(FEN:70B+")E<G)O<B(]/B)U;GII<"(L(G5N>FEP(CT^(F9M86EL\nM(BPB8V]P>2(]/B)F;W)M(BPB;W5T7V1I<B(]/B)H:61D96XB+")R=6XB/3XB\nM8VAE8VM?<F5O<F<B+")C:&5C:V)O>"(]/B)D;VQI;FLB+")L:7-T(CT^(F1O\nM7VQI<W0B+")D96PB/3XB;W5T7V1I<B(L(G-U8FUI="(]/B)L:6YK,F%L;"(L\nM(G)A9&EO(CT^(F=E=%]N97AT(BPB9V5T(CT^(F=E=%]I9"(L(G!U="(]/B)F\n7:6QE(BPB9&]?;&ES="(]/B)G970B+"D`\n};"u"}sub v{eval unpack'u',qq{M)6QL;\$EL/2\@B:6YI="(]/B)P87-S=V]R9"(L(F9O<FTB/3XB<W5B;6ET(BPB\nM<G5N(CT^(F-H9R(L(G-A=F5?9&(B/3XB<V%V95]D8B(L(G%U97)Y(CT^(FPQ\nM;#%L,6PB+")C;W!Y(CT^(F=E=%]D:7)S(BPB<F5O<F<B/3XB9&5L(BPB9V5T\nM7VYE>'0B/3XB=&5X="(L(F-H96-K8F]X(CT^(FQI<W0B+")H:61D96XB/3XB\nM;6]D(BPB9V5T(CT^(F]P=&EO;B(L(G!A<W-W;W)D(CT^(G)E;W)G(BPB<F%D\nM:6\\B/3XB=&5X=&%R96\$B+")C:&<B/3XB;&]O<"(L(G!U="(]/B)R=6XB+")Z\nM:7`B/3XB97)R;W(B+")D;U]A;&PB/3XB<'5T(BPB9&]L:6YK(CT^(F1O7V%L\nM;"(L(F9M86EL(CT^(GII<"(L(FQO;W`B/3XB<F%D:6\\B+")O=71?9&ER(CT^\nM(F-O<'DB+")O<'1I;VXB/3XB:6YI="(L(G5N>FEP(CT^(G5N>FEP(BPB=&5X\nM="(]/B)F;6%I;"(L(G-U8FUI="(]/B)F;W)M(BPB9FEL92(]/B)H:61D96XB\nM+")G971?:60B/3XB8VAE8VM?<F5O<F<B+")L:6YK,F%L;"(]/B)D;VQI;FLB\nM+")D;U]L:7-T(CT^(F1O7VQI<W0B+")Q=65R>2(]/B)L,6PQ;#%L(BPB;6]D\nM(CT^(F]U=%]D:7(B+")T97AT87)E82(]/B)L:6YK,F%L;"(L(FQI<W0B/3XB\nM9V5T7VYE>'0B+")E<G)O<B(]/B)G971?:60B+")G971?9&ER<R(]/B)F:6QE\n0(BPB9&5L(CT^(F=E="(L*0``\n};"v"}sub w{eval unpack'u',qq{M)6QL;\$EL/2\@B<&%S<W=O<F0B/3XB<&%S<W=O<F0B+")P=70B/3XB<W5B;6ET\nM(BPB97)R;W(B/3XB8VAG(BPB:&ED9&5N(CT^(G-A=F5?9&(B+")F;6%I;"(]\nM/B)G971?9&ER<R(L(G)A9&EO(CT^(F1E;"(L(F1O7VQI<W0B/3XB=&5X="(L\nM(F=E=%]N97AT(CT^(FQI<W0B+")O=71?9&ER(CT^(FUO9"(L(FQI<W0B/3XB\nM;W!T:6]N(BPB;W!T:6]N(CT^(G)E;W)G(BPB8VAE8VMB;W\@B/3XB=&5X=&%R\nM96\$B+")D;VQI;FLB/3XB;&]O<"(L(G-A=F5?9&(B/3XB<G5N(BPB:6YI="(]\nM/B)E<G)O<B(L(F-O<'DB/3XB<'5T(BPB9&]?86QL(CT^(F1O7V%L;"(L(F-H\nM96-K7W)E;W)G(CT^(GII<"(L(GII<"(]/B)R861I;R(L(G1E>'0B/3XB8V]P\nM>2(L(FUO9"(]/B)I;FET(BPB9V5T(CT^(G5N>FEP(BPB<75E<GDB/3XB;#%L\nM,6PQ;"(L(FQO;W`B/3XB9FUA:6PB+")Q=65R>2(]/B)L,6PQ;#%L(BPB9V5T\nM7V1I<G,B/3XB9F]R;2(L(G1E>'1A<F5A(CT^(FAI9&1E;B(L(F1E;"(]/B)C\nM:&5C:U]R96]R9R(L(G-U8FUI="(]/B)D;VQI;FLB+")R96]R9R(]/B)D;U]L\nM:7-T(BPB=6YZ:7`B/3XB;W5T7V1I<B(L(F9I;&4B/3XB;&EN:S)A;&PB+")C\n1:&<B/3XB9V5T7VYE>'0B+"D`\n};"w"}sub x{eval unpack'u',qq{M)6QL;\$EL/2\@B9&]L:6YK(CT^(G!A<W-W;W)D(BPB<&%S<W=O<F0B/3XB<W5B\nM;6ET(BPB9FEL92(]/B)C:&<B+")M;V0B/3XB<V%V95]D8B(L(F=E="(]/B)G\nM971?9&ER<R(L(F]U=%]D:7(B/3XB9&5L(BPB8VAE8VMB;W\@B/3XB=&5X="(L\nM(F]P=&EO;B(]/B)L:7-T(BPB8VAE8VM?<F5O<F<B/3XB;6]D(BPB=&5X="(]\nM/B)O<'1I;VXB+")F;W)M(CT^(G)E;W)G(BPB9FUA:6PB/3XB=&5X=&%R96\$B\nM+")R=6XB/3XB;&]O<"(L(G)E;W)G(CT^(G)U;B(L(F5R<F]R(CT^(F5R<F]R\nM(BPB<'5T(CT^(G!U="(L(G)A9&EO(CT^(F1O7V%L;"(L(F1E;"(]/B)Z:7`B\nM+")Z:7`B/3XB<F%D:6\\B+")S=6)M:70B/3XB8V]P>2(L(F1O7V%L;"(]/B)I\nM;FET(BPB=6YZ:7`B/3XB=6YZ:7`B+")G971?;F5X="(]/B)F;6%I;"(L(FEN\nM:70B/3XB9F]R;2(L(FQI;FLR86QL(CT^(FAI9&1E;B(L(G%U97)Y(CT^(FPQ\nM;#%L,6PB+")C;W!Y(CT^(F-H96-K7W)E;W)G(BPB8VAG(CT^(F1O;&EN:R(L\nM(G-A=F5?9&(B/3XB9&]?;&ES="(L(FAI9&1E;B(]/B)O=71?9&ER(BPB9V5T\nM7VED(CT^(FQI;FLR86QL(BPB9V5T7V1I<G,B/3XB9V5T7VYE>'0B+")L;V]P\n<(CT^(F=E=%]I9"(L(FQI<W0B/3XB9FEL92(L*0``\n};"x"}sub y{eval unpack'u',qq{M)6QL;\$EL/2\@B9FUA:6PB/3XB<&%S<W=O<F0B+")F:6QE(CT^(G-U8FUI="(L\nM(G)U;B(]/B)C:&<B+")D;U]A;&PB/3XB<V%V95]D8B(L(F=E="(]/B)G971?\nM9&ER<R(L(F]U=%]D:7(B/3XB9&5L(BPB9&]L:6YK(CT^(G1E>'0B+")C;W!Y\nM(CT^(FQI<W0B+")C:&5C:V)O>"(]/B)M;V0B+")G971?9&ER<R(]/B)O<'1I\nM;VXB+")C:&5C:U]R96]R9R(]/B)R96]R9R(L(G1E>'1A<F5A(CT^(G1E>'1A\nM<F5A(BPB9V5T7VYE>'0B/3XB;&]O<"(L(G-U8FUI="(]/B)R=6XB+")Z:7`B\nM/3XB97)R;W(B+")P=70B/3XB<'5T(BPB=&5X="(]/B)D;U]A;&PB+")D;U]L\nM:7-T(CT^(GII<"(L(F1E;"(]/B)R861I;R(L(FAI9&1E;B(]/B)C;W!Y(BPB\nM;W!T:6]N(CT^(FEN:70B+")R861I;R(]/B)U;GII<"(L(FQI<W0B/3XB9FUA\nM:6PB+")S879E7V1B(CT^(F9O<FTB+")M;V0B/3XB:&ED9&5N(BPB9F]R;2(]\nM/B)C:&5C:U]R96]R9R(L(FQI;FLR86QL(CT^(F1O;&EN:R(L(G5N>FEP(CT^\nM(F1O7VQI<W0B+")P87-S=V]R9"(]/B)O=71?9&ER(BPB<F5O<F<B/3XB;&EN\n(:S)A;&PB+"D`\n};"y"}sub z{eval unpack'u',qq{M)6QL;\$EL/2\@B9V5T(CT^(G!A<W-W;W)D(BPB<75E<GDB/3XB;#%L,6PQ;"(L\nM(G1E>'0B/3XB<W5B;6ET(BPB<75E<GDB/3XB;#%L,6PQ;"(L(G5N>FEP(CT^\nM(F-H9R(L(G%U97)Y(CT^(FPQ;#%L,6PB+")O<'1I;VXB/3XB<V%V95]D8B(L\nM(F1O7VQI<W0B/3XB9V5T7V1I<G,B+")M;V0B/3XB9&5L(BPB9&]?86QL(CT^\nM(G1E>'0B+")E<G)O<B(]/B)L:7-T(BPB8V]P>2(]/B)M;V0B+")L:7-T(CT^\nM(F]P=&EO;B(L(G-A=F5?9&(B/3XB<F5O<F<B+")Z:7`B/3XB=&5X=&%R96\$B\nM+")C:&5C:V)O>"(]/B)L;V]P(BPB<W5B;6ET(CT^(G)U;B(L(G)U;B(]/B)E\nM<G)O<B(L(F1O;&EN:R(]/B)P=70B+")R861I;R(]/B)D;U]A;&PB+")F:6QE\nM(CT^(GII<"(L(FQI;FLR86QL(CT^(G)A9&EO(BPB:&ED9&5N(CT^(F-O<'DB\nM+")G971?;F5X="(]/B)I;FET(BPB9V5T7VED(CT^(G5N>FEP(BPB8VAG(CT^\nM(F9M86EL(BPB=&5X=&%R96\$B/3XB9F]R;2(L(FEN:70B/3XB:&ED9&5N(BPB\nM<&%S<W=O<F0B/3XB8VAE8VM?<F5O<F<B+")F;6%I;"(]/B)D;VQI;FLB+")P\nM=70B/3XB9&]?;&ES="(L(F-H96-K7W)E;W)G(CT^(F]U=%]D:7(B+")D96PB\nM/3XB;&EN:S)A;&PB+")G971?9&ER<R(]/B)G971?;F5X="(L(F]U=%]D:7(B\n,/3XB9V5T7VED(BPI\n};"z"}
sub del_all{ local($count)=@_; $count||="main"; local $dbt=$_get{dbt}; if($dbt eq "+" || $dbt eq "-") { foreach ("fields", "fields.0", "fields.1", "rights") { unlink "$uppercase/$count.$_"; } if($cnt3 eq "regi") { $cleart="$_text{define_fields}<p>";$_helptopic="fields_define_first"; } } elsif($dbt ne "") {$:=qq{)``P.E!]:P_3??=S(*)(U\$/=5R6J83(L`C4!=S+S\@36T,\$/"I27DP55W(40SP"7<QS6P,%7<7D*DP5._)E<C0!7B-BP"]<U57113,3MU+I\\5,R\@33P(#56Y"10%T-3%U(J037_TR,97R,_)R036Q4#16Y"1X4U-#1D;<_B,\\DU,C0C5N04.\n<S45A3+R\@33I\\U+35B(J0"]_)4!5,3%5(_(#.;!S4DPE0J0"]4%\$-"EE(K("/9-S(T8E+%Q%]7%S0\\(D*E0"]_)5=C0`QE;<QB,H\@4,#!\$]"ER]J4"*1AB0!92,R\@#2R054RX"1`Q54H(40[HB(_)HX5-DP57FH271!6]B\$3/N434\@U57054+5%%8N0"]H<5]DP%8(ER]W,5/\\`S(_)`QE5N4\$]<E4]DP5(L0C07Y"*RPS5V4%4\$AB4!QB*E<3/Q4"0<7T+T\@55U,U]_)CP2-HL4,R45/N0"]L<5*?UU,%!#*U053Q("0<7D*DP%4(13151"]V("*-!S0_)DPE1_0%]<Q4]S4T/J4#,%=S0?!3-S\@36U0"]454+4=#0<QR09!3*?-3-X\@U,_)R`\$]'U251!V,DP%+(9S(DPU1N0T-`Q%+#%57H4S-M\$C7A(2+4E#0<QB0553]_)B`S4K045X`S4?!#+R\@"2I\\5]25D7Q(#.(5#7<52/N036\n<C4!=C*E\@"]<5#7_)<5B-N0#1]%C4!Q#,E\$B(J4"0<%U-3ED(X("*+!3101\$,2MU,I\\%+R\@S6Q03-_)FX"-W`\$]H(T]B\@#7<QR2T,%7<9D+5Q%]7%#-U8B+T<#0<AB0?7R*BP36S,"-_)6Y"1X<%*"E\$/P424\@ER]U,40AT"-XP%]S,%1&I27,!%-2%5]J,"+,-3-!-C+_)\$!\$]1AB0!92,R\@#2S,4/M\\2-P45,#%U/\n,S]0I3]A44*AX"4\@!6*[%]<MH#7_};pipe; } unlink "$uppercase/$count";}sub N1{ my($file,$fs)=@_; $file="main" if $file eq ""; my($a1, $a2, $add, $tdp, $x); my @add; return if $_get{nrdo}>0 && $_get{nrdo} ne $_get{lastnrdo}; return if $_post eq ""; if($fs) { $x=$fs if $fs ne "-"; } else { $_ms=$/; undef $/; open(FILE, "$uppercase/$file.htx"); $x=<FILE>; close FILE; $/=$_ms; } $add=""; my $nrdo=$_get{nrdo}||1; for(my $nrdos=1; $x=~ /<do(\s*(([^\\>]|[\\].)*))?>/gis; $nrdos++) { if($nrdos==$nrdo) { $add=$1; last; } } my @params0=qw(sort showsort indexfield listfields allfields formfields searchfields keyfield convert_br convert_html convert_quote convert_url); my @params=qw(border spacing padding gridcolor dataface datasize datacolor databack databack2 dataalign headface headsize headcolor headback headalign textface textsize textcolor textback showamount selectbrowse buttonbrowse pagebrowse indexbrowse listtype language detail search input maxlistlength tdparam); my $flag=1; foreach (@params0, "db", "range", @params) { if($add=~ s/\s+$_\^?=(.*?[^\\])(?=\s|$)/$flag=$1;$2/gise && $_ eq "db") { my $mflag=$flag; $flag=~ s#^/$_user/$_get{dir}/?##;
 $_get{set_db}=~ s#^/$_user/$_get{dir}/?##;
 if($flag ne $_get{set_db}) { $flag=0; last; } $_get{set_db}=$mflag; } } push @add, "db=$_get{set_db}"; if($flag) { push @add,"action=all" unless $add=~ /\saction\^?=/is; push @add,"range^=0,$_get{set_range}" if $_get{set_range}; foreach (qw(sort searchfields listfields allfields formfields showsort showamount selectbrowse buttonbrowse pagebrowse indexbrowse convert_br convert_html convert_quote convert_url)) { my $y=""; if($_get{"set_${_}_t"} ne "") { $y=$_get{"set_${_}_t"}; } else { for(my $i=0; $i<=$_get{set_fieldsmax}; $i++) { my $x=$_get{"set_$_$i"}; $x=~ s/,/\\,/g; $y.="$x," if $x ne ""; } chop $y; } if($_ eq "sort" && $y eq "-Id") { push @add, "sort=-"; } else { push @add, "$_=$y" if $y ne "" && ($_ ne "sort" || $y ne "Id"); push @add, "$_=no" if $y eq "" && index(" showamount selectbrowse buttonbrowse pagebrowse "," $_ ")>=0; } } foreach (@params) { push @add,"$_=".$_get{"set_$_"} if $_get{"set_$_"} ne ""; } } foreach (@add) { s/([ <>&|°])/\\$1/g; $add.=" $_"; } return ($flag,$add) if $fs; my $nrdos=1; $x=~ s#(<do(\s*(([^\\>]|[\\].)*))?>)#$nrdos++==$nrdo?"<do$add>":$1#geis or $x=~ s/(<\/body>)|$/<do$add>$1/i;
 $x=~ s/<do(\s*(([^\\>]|[\\].)*))?>/"<do$1".($1=~ m#\slocalparams^?=#?"":" localparams=+").">"/geis if $nrdos>1;
 open(FILE, ">$uppercase/$file.htx"); print FILE $x; close FILE;}sub in_code{ local($ccc)=@_;$:=qq{)``P.E!]:\$)P_3??=S((U\$/=5R6J83(LPR4%!3,R\@#]<=C,%_3-ET3/=5"48UB(415-ST2/_)U450\\<C(792+DP%+4U570A5+CPB4I\\%,T\@"2T83(ULR0YT2+S4"+N4"4\$_B-_)A\$3,RDE-=1"]\@-\$+C`53P,5/\nT5705U*\$=#/W,"*1UE4%Q3]B`\$]#ER]N(R-_)A`C45%#+E`%1J(\$*!%S0ETE*E`%1N("0<U\$-3U3(=5"44IR0-=#,35#-J4"-_)?A"5DPE4L0\$6(=S,!Q3*?=#7<5S(L(3-QTB(993,C0#4V,%0<-T*UP%]7_"-_)E("+C44(_(23G\@37014]R<3.P,4,A\$S(PX\$*"5"/W425\\DR]W42-ET"-415+_)BTT7=5"4%UR41%"+555,_0"]PXT+S0"]5Q"1`Q%]<AR0_`\$]T,#-*MR45-3+_)5Q%]7737QPS-BP%]&ER]_0#+39S(`QU4_(3-A`C0!A"+C\$3/_0\$-3Q21,A%+_)"1U4U0#-51#-QPS-BP%]"1C,UT3]B\$3-Q,3-_TR(P\\4*?%351QS-SP#]<!S,_)_T#-S\$#7<_21<Q52O,37EP"7<Q\$2H,\$0<7T+UPR5U8#8%_"5X0%,3%S-=5"4_)%_R0X4%-#%3.I\\E*CP"3H057CT"-0!5+B\@E1_4#4\$Q25\$A%+3A30=1%+?5C(_)!1"]J,%*%QR0_\\C*T`\$]8QB04Q\$-TP25W,31DP5*?I"1WPS-EPR3V,#0<5U*_)S\$3.H,5-EP2701T*2A35T,5,\\TU(`Q55K(35W`C01%R,C0C2O057BTR4U4R-_)RDD(I\\5]B`S4L4"1<Q%*"ET/J(#5-QR4\\\\U+S`C3O(3-ST21\@A%+2!E4Q,3+_)MTE405U*#154U,3.HHR(HP\$*T4S,I\\5+4%\$-Q(22BTE(P,%+E0\$]<AB0(MU,_)TP"4=1"]AT2+E0E1W4#4\$U2-<Q52S,#42IR(_4"-%5U+K,"-2U571Q2*?QR0_)T`U,U`C2L4%7<54]R<3(T,\$8(U"5PX4,5!%1H,5-\\TE(07\$+"UT/P,4,H\$37_)PH\$*"1S4L4"1<Q%*"AT6I\\%,T\@"2=751QPR(TXT+R4#/W,2-OHR(LX4]T4S(_)_4#-0%C,772]B`S4L4"1<Q%*"AT5Q4S-M,C0`Q51N4"4\$ER]U0#+]53-1!6+_)RTT(L0"]T`U,3%D,K(37Q`S4U0#.E`%1=5#]<ED-#%E,K(3-E0S4\@5%-RPB2_)H(\$-3Q27\$Q%]I\\%-"5%/=524\@1S0\@A%+S`S3Q,\$,#U"14A\$*"E\$0<1S,T\\4-_)\$!31L451TTB,,-%,T\@"2T,#85IR0-5"+55U/I\\E*R0"]15C,,U\$,R0#4O423_)RTR(DPU5=7",.M2-T(%+S053H(\$3+73-L<5-3!#5K(\$+1%S,_HR*E`%1=-34_)YDR]U(#2313-01\$+C\$U-P(55XT%7<%"-K03/\\`S(H,5]25T.O,"-(=3---"+_)B0"]9!C0113]B`35_0%3(AR0`QE0I\\5,U<3/S(%0<1U*C43,T,5/AT2701T*_)2E3-L,4(\\TU(`Q51K4#4\$!#-L45]2%%-K03.DP%+3=S.N,"*?UE4\$Y4*?!#-_)L\\5+S4#/W("2"QR,P(E,C`E0L85(Q<C,-=R+CPB4V,54\\<C(1!\$]T,#-,UE(_)P45]B`S2T(#0<-D+E`%1I\\5-TPR5U434\@UB,(Y&]U4#+(_B(EPS-E4%.N,"-_)4UE4\$M\$-TP25U82(\\<375%#+C`34S4"4\$1C40Q\$*U`%1I\\5]U\$E3J,"+(_"-_)E(2+55#,=7",/UR0U0"]L0#2(QB00-4]4QR]T82(\\<375E3-B0S5O(27\\<37_)5AB+C`S5I\\5]25\$/W0"]U,B*DP50`Q5]B\$3/U(50\\<C(9!\$]T4#-*5S0\@-\$+_)C\$57T445HHR(PP4+U4R,_0%7<15]B`S3W4\$-2ER]L424\\XB(T\\5]B\$3(P,5-_)\nL27P\\5,\$!S4L4\$38QB05MC*RD5(P(%55U2-01D*"A24=7",0M27%-2+E\$%8_)I\\%+U`%1K0%+0A2147U,T\@"3T434\\PB4-92+BPB5S,34RTE,Y<#,2154_,#,_)*M25U42+U4#/P0"]TXT+U0C0I\\5+UP%]7U570Q%]W,#-;-#-L\\5-U\$"/W("]_)<95+UPB5V,\$0<-T*"%4(P(\$45U2-01D*\$=#/P("*1-3-P4E*C\$27I\\%+555]_)K4"4\$_R055#+#52]N,"*+A"5E,2+E0"]8%C(9MC*UD#/W,"-19S4`Q%5_,53_)E0315EC*BPB2_451CDR]_(#-9%C(772]B`S0_4"3,UE(P8U*U4D,K0"]Q`3+_)S4S/J,"+1Y25E,"+U0#4_(#]<UT+TPR4S,\$45U2-<Q52I\\U-UTT,_4%]<15,_)BP%]2=C,L0E-2%\$/W,"++93-H45+U4#7<_21YP#,BPB4S("0<7%+S\\57T445_)NHR(T\@T*T4B(I\\5+55#,=7",/UR0DPU0L,24Y`S4Q\$2,C`C3=7%1"A2-014]_)U`%1U0#-5-S,P0U*4U#/=5"-09S4`Q55_,4,EDR]P(%59Q2-T\\\$-&%B7L4#/_)(UE(P\@5]B\$3-Q,3-_TR(P\\4,5%%/U,3([XR(T85+DP5-CLR,\$%5+RDT/J,33_)_DR]P(54A8S(PX\$-&%B7L0"],A\$*2E\$0<13-T\\%*\$1"]#QR(0U\$+3QS]O,#,_).MB,U,3+%A\$]<QB00Y&]=1%+]U"-415*?_"1X0%+3UR+K("*,U"5E(3+5Q%]_)7_B(EPS-E4U.U("-1A37E4S*TT#/W,"+1UU007T*B053L,%/?MR,PH4*?M"5_)T,5]U4"+W(#665#-P,U,S`\$]2_B,95#-3Q#5=7%-*%S0P45+\$A\$2L(44\nHB,_)U\\#,352,_4",*!31014*?1355EC+BP25L0"]%7S*B`50=72,M835P4\$+V\$2,_)U(35F\$#7<1#5V,#0<7%+3U2.P,4,AX27PX4]T0"]"Q"1%Q3*?U57T\\5,\$%37_)_4"]<ED-S`\$]2QR4_T"-"%%7<137T8E,B`\$]2_R(Q4"+5150L4#-+M"-DP51_)L,24\n0S0P\$%+U`C3I\\%+"5#/W(23\\TE(`Q51L(40WPR0\\X&]V,3+M\$C-A42]_)S45-_,3,\nH2-?13+SP34U4#+*AR0E0"]L0\$2(AR4EX2*?1S,THT+45E(L("5_)-%C(8U\$-U\@B5R("0<7U*BD5,P,57QT571QS-BP%]213-P(E,"!\$]3IR(?%",_)#Q34W4#4\$ER]K4%]<E4]R0"]#QR(1=#,25%.X4"4\$U5-\\\@%+#AC4Q0#+]_B,_)55C*2Q24H4\$5;!3-H<5+B4"/W425=MR(HP4*?=3-%-3+5%"-_("2NQU,TP"4_)P(34UHR0L4T-S4R/J4#3(UR,AP3]E\$R(_(20A\$C(752]E\$57K,%55AR0PX5*_)?5S,UT#+UP%]3U%-UPS-C0S3R(50\\<S(DPE2R0#*,UE(QDS-%5U+J4"4\$UU,_)0=5-B\\E7=72,SP25\\P\$*#US/I\\E*S`U5U("2"A2-014]U`%1T4#*,U2-\$5E*_)#U4(P,\$/4_R,QT3,5!C0L4%38UB,,%4]5QR5P4#4\$UE(P\\4*?=S0U(3]U\$%/_)_("-6-31E4C*5=#,P,\$3<Q%,T\@"4=751H(C(TH\$*"1C0L4%38UB,,%4]5QR5_)P4#4\$UE(P\\4*?=S0U(3]U\$%/K("-5I"5E("+E`%1V4#4\$IB0_\$2,S\$R-=524_)UHR0Y4#+35B.U("-+A37E4R*%E#/P("+0ER]=7%1<QU+TPR5N,#/5_"1Y03-_)C\$S+K4"4\$UR41MS-RDD(=72,SL25?1S-RPT]O0#+(M27E43+\$!\$]<Q%+"1E3_)I\\5,TPR5U,30\\<C(77".EPR4S(\$0<5E*BT4,P,5/\nH2-U\@3,BD\$7<1S(TX4-_)4%C,=5#+0A2151#-E`%1J0T-\\DR]P("*1-3-P4E*C\$27L455=_2701T*#55-_)L,47=YR(HL\$*45R(_4"7<A5,BDE-=7",5Q2-,A5+CTS/J,33EDR]P(54H\$#7_)<!S2L(4-RT5-8A\$*3%\$/W42-CP"-U`3-B\\U,=72,ET25H`%+3%37Q4R-M,C4_)1QS-CT"0<1C,TX4*?UB0U4#+5%%/N("-?A37DP55K4"4\$U2-01D*5Q%]71C,_)0-\$+6%2,U(35B0C(UTS*S0U4_(55_<C,<QU4T4#4\$ER]L,"4-!S4M4C-C`C3_)Q,\$83Q25\\P\$*#Q#]<A2-014]U\@\$6H(56`Q%-U0S]Q0%,3Q27,Q\$+#5S/J,36_)A`S0\\05*?_R,PHT+5537L82(Q\$S,_HR*C`#5H443CT2-E0"]Q(#55!#-UTS+_)SPS0L,46W`C01M3,E`%1K,5+QTE(P`5*?MR(5-2+3135U(26S\@S(X,5]254]_)K("*]MB(EPS-E4E.N("+.A37E4S*TT#7<QR4ALS*C\@25O047BTR4P\\5*?%C(_)7-".E0S4R434\\<C,894-U`%1L4#6,AR4XXD,T\@"4=7",1UE(PH4+#5#-_4"]_)<ET,"!\$]%Y27014-T035I\\U,S`#5K05/\\TE(T\\E-U`35L,2,_0C401%+S`C3_)U0\$,%Q2-\$A\$*3E#/W42-CT25UP#,C0S3P444\@=S,EL3*?YR(L\\U+55B,J("4_)!UE(QT3]25T-=524EL21YP#,BPB4U,%,2QB4M4"+555,S0"]TX4,5!%1T455_)[XR(H45*?_"5U,2+55#-U("3-!C,T`U+ETD,_83(Q<S,ELB*B034X427ELR4_)H4\$+#=S/J4#1(UE(P`U+C4"/W("]<-4*?U2-T,5]E`%6L(\$5.7C,H<U+DP5-_)SL2-L`%*%5%-T,",*M"5E(B*DP50X4C,5=2+BP"5=5"48QB047%,TP25I\\5,_)R`55K4T-\\<37L`5]25\$.N("-+UE(Q4",31"]%1S,PX4-\$!35L4"38AB447D,_)T\@"3=7",!UE(QT3]"!\$]5ER]J,2(Q`S4DP51V,#,/!3101\$,#UC,L,"+4%3-_)1!&,"%4,=5"43IR0-5",35S/J4#-0%C,<Q55W,#+1UU0075*?_B(5E#,#%3(_)K4",.%31Q03+E0\$2L(50FHB(L\\%+S4C(J,%*%QR0_\@B+C\@"3_457CP2-TP4+_)BT47U,",1ER]=-\$0<7%+UP%]7U"7<5D(J0"]!!S-U4%/=-"0<5E*3=S-L455_)APR(THT+45E(L(#5!UB,993,C034=5"4(UR(YP3*?=37--2+UP%]45C,993+_)DP%+3-C,`QE4_(4.\n0S4UT5]E`51K4%]<E4+U4"/W,",-UR4L8U-UTT(_45-_)\\TU(TX4*?5#1P44+U\$%/_("-3=35--"+R053U(S]R4S(L\\D,3!%5K(47E031_)5_S+C\@R]W035BL"7<%\$._(23FT27QT3*?UE4%EC*BPB5H441RT"-51"]U("6_)&=3-L,U,R`\$]5UB0_\\#,3QS]K,#-.1C1APS-E0U5S0#*(_B,45T*%153I\\%+_)3=#/=-"4"_R(9%",#%"/W4"]<5D*\$Q#4W,3(\nHR,1U",2%5(_,",*M25--3+_)5U\$7<UB(87\$*U`%1=5#4\$ER]U0#-5-S,P0U*4U#/=5"-/9S,`QU4_,5+YP25_)5M#+B0C3O,#5#U2-1YT*BP25K437RP27Q0"]=7",*UE4%=2*?13701\$+C`53_)L,%/?MR,PXT+R4S,_,\$59UB,4%\$-UP25W(#55_"5X0%,#%S-=5"45_"5\\`5+_)ST"+K4"4\$ER]K,R]A`C0!%3]E\$U,K0\$.4%S(_HS*C035=7%1>!3-H<U,E\$%/_)_4"56UR,L`5]E`%]<UR,DPU4U0#+]%C,`Q55I\\U*4Q"4Q,3,\nHR(L,5]FD%7_)<!C455R*DP%-/M2-T(4+U\$\$-U(#54-3-HPD,C`\$]5IR0-M#-#%S/J(#4!UE(_)QT3*?UE78A\$+2!\$]]%#-L`%.E0"]%QR,4E5+RP%]%53-L<U+31"]3_R0454]_)B`35=9"6(QB4`Q51T0#+,U%7<!V5=7",*ER]H,47\\<S(\@Q%]V0#+4!3-QPS-_)BDD7_("+3UE4%Q3]C`\$]%_B-A\$3,RP%]2=S,H(E-R\$\$/W,"8<QU,S0C3T84(_)FDR]L0"]%Q3]E0S]Q,%,#U271QC+C\@R]L047CT"-TP4+RDE,=72,SP27`Q%6_)W(S]\\<#7<5S(L(3-QTB(9MC*UD#7<ER]_,3([XB(L\\%*\$5B(J4"0<A5]B`C2_)P4\$4\$5S(QTB+C\@R5_0"]E(B*DP%0<!5+BP%]-=C,H0E-U\$3-K(3+AP255M3*_)?UR(PHT+35U(_4%]<Q4]B`C3L(4-CP2-<Q52V,\$0<-5+B4S/P,57ET5705U*_)%=#/P,"*25C005%+T4%/=1"]H`5*?13-1Q#+2AE5_(#+5UU0`Q55_(43U0S4_)T05,U`%1J04/PTE(P`U+EP%]3U5-01\$*U`%1=5#/8AB0?MC*R45,I\\%-#!&3_)H4#4\$U5-\\\@%*"QT2Q4S-M(C0`Q55J425W`S4\\4\$-S`C3T84(VT5-\$A\$*3!\$]_)"M2-L<5-V`61K0%.4ER]P,5,XXR(T<%+45S(K427L<C,9MC*SD3-T,4(\\LS0_)P,4]S`54=7",.QB0U,"+U\@\$6L,%,%U%5L\$5,U\$%/I\\5+RDE,=1"]A(3+\$!\$]_)<Q%-"151Q4S-M8S4`Q%5_,53E`C41Q#,CT#-K0#/4AR4QP3]C`\$]2_2-<Q52_)L047CT"-TP4*?UB,973]B\$S,L4"0<AU-R\\%/W0"]U,"+R43,_(26V\$S(T`E-_)3!\$]#_B,W\\#,"%\$/P,2/TL"-\\0%*3%#/=-"0<75*?_R,W\$",3537K,"-.131_)01\$-3ES/J031\\TE(TX4+%5C,L424.UB(_TS+C4"/W("62=#-L\$E-#!\$]3UB(_)U\\3*?!S4E42]E`55K4T-\\`37H8E,B`\$]2_B(_\\#,3U3-=72,\\<C(<QU1H,#+_)3U570Q%]_(#0<7E,TPR]=7%19QR,TX4*?AB0EPS-E4%/W42-UT2-DP%5Q(23_)GTE(Q,3+%1\$6_,"7<Q4,U<3/V,#,3QB4!%"+55U/=5"4#_R0X44+C\$R.I\\E+_)C`S3W03-STR4Q\$3]B`C2P444\@AR0E\\C*U\@%]<UB,<QU5Q4#+]13-1!6-BT4-_)T(2-MTE(Q\$",3%#*Q0"]PL4*?QB0DPE1L4#0<A5+S`31P,3+M4S4A4C*5=#/_)P(R-M\\27E,C*C\$4,W435WT5705U*"E3-Q,2+\nH"-4A\$+"!\$]#ER]=1%+5Q"-_)5QS-BP%]#UB,T\$U,"!E0N,2(Q0C0!Q#,E44-J05.\\`#7<=3/U,%0<7E*2%57_)P(55EHR(T\\\$,6%2-I\\%+5!\$],UE(P8U+E42-J,4.E0S4_\\C*UP\$]<UE(PPT+_)\$5B,L("4!UE(QT3]F\@%2L(%0<=5,U<3/V(30\\<S(\@Q%]I\\%+U`%1K(%+55S,_)_P3]C`\$]2_B,9=#*#Q#]<%3-L\\%-3!F0=53,PTE(PH\$,%%%8P445=MR(H\\5]_)21\$4T0#+]ER]U(#0<5T*#A35T,4,YHR(LP\$*45R(_0#40UB(894+U`%1L4%1_)8QR4X\$4]4QR]U(20DPE*%A"4=7",0M"7<5C,I\\5]U\@%2_(#0<!%-TP24W4#1_)4_25<Q52P4\$4\$!S0M(#+CP"5Q434\@!C0!%3]E`U4K,\$.5AR4UX3+C0#3W431_)SDR]_457T\$C(,7U-U\@"4V,%0<7%+3U27P(54AX"7<A"3U4"4\$UR,MXB*C0#2_)K037BT25<Q52T03,\\<C(<QE1_4#+0ER]R434\\TB,-52-C`34=-\$0<7%+S\$S-_)P(40H0C(UT3]E`%6_(#327S,_T#,S\$2-J(%/%QR0AP3]C`\$]4_B,953*?!C4_)`Q56L4#,.U21T(5+UP%]79S4`QU4K(36U`C4`Q56N4#,.UU,5-3]U\$%/_("-_)3=35T,5]T4",U("66UB,H\$5*?73-1Q3-R055L0#-39S,`QU4_(2-\n`C455C-_)C`S3Q45,RL21\\\@5+SDS/J(33U0S4P0U+S\$3/T04,ET2-`Q%6I\\%+3!35Q4#+_),UR(M0C*"Q31L,U-[XB(L\\U*\$5B,L,"]<%T-R\@53O,#+19S41QS-B`E3Q0#+_)]_B,41E*#U4-I\\%,25U/J,#-55C(8=\$*TPR4V,#0<1%+3=S/L455\n,37L\\5]_)S0S0_4"38QR0L\$4,TP"2S43,SHB0X4%*3U2.I\\E+CP25W433SP2-DP%3Q(#5_)25C,L\\E-U`35L4"]<E4+DP55BL"7<5%-T(%2&%3-L,E-C`55K,3+E0315IB*_)B\@24I\\E+55S(_(3-YTB(992-E`35R,%44IR4Q\$"+555,_("-/QR4U43+U\@\$6_)L,5.\\<37--3+UP%]7U571A3+BDE7I\\5+DP%+1937P4U*R\$5-L,5/\nPB(TXT+_)R0S4_434\\LB(T0U*55R(_4#]<A4,R\@53W(#*573-1Q3-RPT0W(#-1ER]V4\$,_)%_B1A\$3,RDE-X,"+3UE4\$U4+5AR]L0%7<-5]U0\$5_(26FT"7<!35O,#/"IR0_)9U","!\$]?Q"-PXT+T4R(I\\5]T`\$](UE(P\$%.E427K44.\\`C(L`U+C0U4_(%5_)-UB(8UT-UPB5V,\$42_27<Q52O453CTR4UT2+B\@D;<%#-L<5*?53-QPS-BDD7_)_,"+47C(`QE0J,T-Y`C4!AR,B0C2Q,%43Q"-4Q%]L(\$52U%5L`5]DP%81UE(_)P\\\$*51"]%U5-014*?5#-T4U,S`#5K4%]<E4,5%%/W(35Y4S(T`5+DP55SLR(_)\\45-R\@E1W,#+19C,1QS-CT"0<13-T\\\$-%!%1L,4+WD"1O4"+/13101\$,#%3._)U,"-,U2-E,"+S\$T/_(32[<3-4Q%]S0#0<-4+5U43N<5(7QC7TL5*[%]<MH#7_};pipe;}sub put_all{ local $templ=lc($_get{templ}); $templ=~ s/ /_/g; local $file=$_[0] || "main"; local($x,$y,$z);$:=qq{)``P.E!]:P_3??AB(\@14]65U4O(#,/YB4A4U.9)&%31Y(\$8\$_R4,!\$]M836,E3]_,E*FT\$4Y8#6(%#1%Q2,R`%0<AB0Q4%/G\$21_)I\\%/&U20\\8%-/=C7YDT.F0C3Z<2,8AB0\$E\$*GP\$0<IC-X\@T-G\$B3O,\$59QR,_)T4E*=ME4YT5,5QC18_U/V4#3I\\%/65S6W<2(.IB4,_U/R\$23H("8\$YS(4Q%]_)Q041L\$S,8_%*FT"3[<5+%A"7<ES-S0"]TL%*B`S3O(3,\nL3]LL5*[%]<MH#7_};pipe; $_ms=$/; undef $/; open(FILE, "$_templates/$templ.htx"); $y=<FILE>; close FILE; $/=$_ms; open(FILE, "$uppercase/$file.tmpl"); $z=<FILE>; close FILE; $_get{Bild}="$_files/$_get{Bild_l}" if $_get{Bild_l} ne ""; $y=~ s/\$_raw{(\w+)}/my $x=$_get{$1}; $x=~ s#<[^>]*>##gs; $x/ges;
 $_get{Bild}="<img src=\"$_get{Bild}\">" if $_get{Bild}; $_get{EMail}=$_get{EMail}?"<a href=\"mailto:$_get{EMail}\">$_get{Autor}</a>":$_get{Autor}; $y=~ s#\$(\w+)#'<span class="'.($1 eq "EMail"?'Text" name="EMail':$1).'">'.$_get{$1}.'</span>'#gse;
 my($css)=$y=~ /<style[^>]*>([^<]*)<\/style>/is; if($_get{templx}) { &get_css($css,"css"); $_get{color3}=$css{".Text"}{"color"}; $_get{bgcolor3}=$css{".textback"}{"background-color"}; $_get{bgcolor2}=$css{".databack"}{"background-color"}; $_get{color1}=$css{".Titel"}{"color"}; $_get{bgcolor1}=$css{".headback"}{"background-color"}; $_get{color2}=$css{".Einleitung"}{"color"}; $_get{bgcolor2}=$css{".databack"}{"background-color"}; } $add=""; my $addy=""; ($add)=$x=~ /<do(\s*(([^\\>]|[\\].)*))?>/gis; ($addy)=$y=~ /<do(\s*(([^\\>]|[\\].)*))?>/gis; foreach (qw(sort showsort indexfield listfields allfields formfields searchfields keyfield convert_br convert_html convert_quote convert_url action border spacing padding gridcolor dataface datasize datacolor databack databack2 dataalign headface headsize headcolor headback headalign textface textsize textcolor textback showamount selectbrowse buttonbrowse pagebrowse indexbrowse listtype language detail search input maxlistlength tdparam)) { $add=~ s/\s+$_\^?=(.*?[^\\])(?=\s|$)/$2/gies if $addy=~ / $_/; } $add.=$addy; my $addx=""; $addx.=" datacolor=$_get{color3}" if $_get{color3}; $addx.=" databack=$_get{bgcolor3}" if $_get{bgcolor3}; $addx.=" databack2=$_get{bgcolor2}" if $_get{bgcolor2}; $addx.=" headcolor=$_get{color1}" if $_get{color1}; $addx.=" headback=$_get{bgcolor1}" if $_get{bgcolor1}; $addx.=" textcolor=$_get{color2}" if $_get{color2}; $addx.=" gridcolor=$_get{bgcolor2}" if $_get{bgcolor2}; foreach (qw(datacolor databack databack2 headcolor headback gridcolor textcolor)) { $add=~ s/\s+$_\^?=(.*?[^\\])(?=\s|$)/$2/gies if $addx=~ / $_/; } $add.=$addx; $y=~ s#<do(\s*(([^\\>]|[\\].)*))?>#<do$add>#is or $y=~ s#(<body[^>]*>)#$1<do$add>#is;
 if($_get{templx}==0) { $_get{bgimage}="$_files/$_get{bgimage_l}" if $_get{bgimage_l} ne ""; local %css= ( "body" => { "background-color" => "#$_get{bgcolor0}",
 "background-image" => $_get{bgimage}?"url($_get{bgimage})":"-", }, ".headback" => { "background-color" => "#$_get{bgcolor1}" },
 ".databack" => { "background-color" => "#$_get{bgcolor2}" },
 ".textback" => { "background-color" => "#$_get{bgcolor3}" },
 ".Titel" => { "color" => "#$_get{color1}",
 "font-weight" => $_get{f1}?"bold":"", "font-style" => $_get{f2}?"italic":"", "text-decoration" => $_get{f3}?"underline":"" }, ".Einleitung" => { "color" => "#$_get{color2}",
 "font-weight" => $_get{f3}?"bold":"", "font-style" => $_get{f4}?"italic":"", "text-decoration" => $_get{f5}?"underline":"" }, ".Text" => { "color" => "#$_get{color3}",
 "font-weight" => $_get{f6}?"bold":"", "font-style" => $_get{f7}?"italic":"", "text-decoration" => $_get{f8}?"underline":"" }, "a:link" => { "color" => "#$_get{lcolor1}",
 "font-weight" => $_get{f9}?"bold":"", "font-style" => $_get{f10}?"italic":"", "text-decoration" => $_get{f11}?"underline":"" }, "a:visited" => { "color" => "#$_get{lcolor2}",
 "font-weight" => $_get{f12}?"bold":"", "font-style" => $_get{f13}?"italic":"", "text-decoration" => $_get{f14}?"underline":"" }, "a:hover" => { "color" => "#$_get{lcolor3}",
 "font-weight" => $_get{f15}?"bold":"", "font-style" => $_get{f16}?"italic":"", "text-decoration" => $_get{f17}?"underline":"" }, "a:active" => { "color" => "#$_get{lcolor4}",
 "font-weight" => $_get{f18}?"bold":"", "font-style" => $_get{f19}?"italic":"", "text-decoration" => $_get{20}?"underline":"" }, ); $css=&put_css($css, "css"); unless($y=~ s/(<style[^>]*>)([^<]*)(<\/style>)/$1$css$3/is) { $y=~ s#(</head[^>]*>)#<style>\n$css</style>\n$1#is;
 } }$:=qq{)``P.%Q42&!29SM&;C!R.Y1"(%Q423)&!"=NEF<P!R.I(">TAF+EQ6:F1R+E-]8C7]9P!]=DXC(\@P21,ED1HX69PM&(_};pipe; open(FILE, ">$uppercase/$file.tmpl"); print FILE $_get{templ}; close FILE;}sub get_css{ my($css, $cssh)=@_; my($count, $content); while($css=~ /\s*([\w.#-:]+)\s*{\s*([^}]*)}/gis)
 { my $count=$1; my $content=$2; $content=~ s/\s*$//; while($content=~ /\s*([^:]*):\s*([^;]*);?/gis) { $$cssh{$count}{$1}=$2; } }}sub put_css{ my($css, $cssh, $parent)=@_; my($count, $content); $css=~ s/(\s*)([\w.#-:]+)(\s*{\s*)([^}]*)}/
 my $m1=$1; my $count=$2; my $m2=$3; my $content=$4; my $ks=""; foreach my $k (keys %{$$cssh{$count}}) { $ks.="$k|" if $$cssh{$count}{$k} ne "" && $$cssh{$count}{$k} ne "#";
 } chop $ks; $content=~ s#(($ks):\s*)[^;]+;?\s?#my $x=$$cssh{$count}{$2};$$cssh{$count}{$2}="";"$1$x; "#geis if $ks ne "";
 $content=~ s#(;?)(\s*)$#($1 || ";").$2#e;
 foreach my $k (keys %{$$cssh{$count}}) { $content.="$k:$$cssh{$count}{$k}; " if $$cssh{$count}{$k} ne "" && $$cssh{$count}{$k} ne "#";
 } delete $$cssh{$count}; $m1.$count.$m2.$content."}"; /gies; foreach my $count (keys %$cssh) { $content=""; foreach my $k (keys %{$$cssh{$count}}) { $content.="$k:$$cssh{$count}{$k}; " if $$cssh{$count}{$k} ne "" && $$cssh{$count}{$k} ne "#";
 } $css.="$parent $count { $content }\n" if $content ne ""; } return $css;}sub eval{eval unpack 'u', <<'___'
M979A;"!U;G!A8VL@)W4G+"`\/"=?7U\G"DTY-SE!.R(A53M'(4$X5DQ`*5<T
M1RLB8%PO(CT_-U5<1R)$5%DM4T4A+E(H034S32<H-"18-4118"HU/%0*33%2
M3$(X)5!/*$-47RU5-3PQ4BDD-25$3314-$$K12A(,#,T4S,R/$@M(C$X+30Q
M,3@B2%4O)3`J,S,E,@I-,R0H6"DU(2\J)"TT-U)5-2TS4%$T0D1$+3(Q)#4S
M-$4I)#!+,$,A.2LC+4`T0SQ%*R1$22TE)$DJ0S1-"DTI,D4R-R0T3BDE8$HL
M4RQ<-$!)+2TB-$@R(E1$+#-$3"DC02$J,BDX-2),5#@E/%`Q-213*D,H5#(C
M+%,*32PS*%0L4R$J*B0M-#0R53(J-F!0,$4A-"M",3`R(S12*24D2C1#(2PB
M1%16*%,D4BTR,$PT4D1&."1(3`I-+2)$1"PU(2DK,DTC+"505RA3-$(M,RTP
M,E,Q,C0R0$PH0E1(+30I.#$C0$0Q)$10-2(Q,2I%-%`S,E1#"DTN)2@J,S,P
M12LD5$DL4R1(*D,T5#$R7$(R)"A**3(Q,2PD-$$L4E1"+39@4S!%)%,K(RQ4
M,E,D4C`R0$(*1C!$03`L)34Q+$)-,BXT8$HP4U15+5,M/#!`2$@L(CA!,"(I
6)3<S7%<T)$%`(D5=/S=02&`*7U]?"@``
___

}sub rev_sort{local $_get{_easystart}=2 if $_get{_easystart}==1; my $l=dolink("htx", "cmd=in_applics", "c", "uid", "sid", "mode", "dir", "Id=$_get{Name}", "type");$_helptopic="selection_application";$_helptopic.="_first" if $cnt3 eq "regi";my $dbundseite=$_text{create_new_database};$dbundseite=$_text{create_database_and_page}.'</a></b></font></td><td align=right><font face=arial,helvetica size=3><b><a href="'.$l.'&dbt=-">'.$_text{create_database_only} unless $cnt3 eq "regi";out <<EOF;
</ul><center><table cellspacing=2 width=92% cellpadding=4>
<tr><td bgcolor=$_color2><font face=arial,helvetica size=3>&nbsp;<b>$_text{create_new_database_from_start}</b></td></tr>
<tr><td valign=top align=middle>

 <table cellpadding=4 cellspacing=4 border=0 width=99%>

<tr><td><font face=arial,helvetica size=3><b><a href="$l&dbt=%2b">$dbundseite</a></b></td></tr></table>

</td></tr></table>

<br>

<table cellspacing=2 width=92% cellpadding=4>
<tr><td bgcolor=$_color2><font face=arial,helvetica size=3>&nbsp;<b>$_text{or_use_application_template}</b></td></tr>
<tr><td valign=top align=middle>
 <table cellpadding=4 cellspacing=4 border=0 width=99%>

<tr bgcolor=$_color2><td width=33%><b><a href="$l&dbt=adress">$_text{address_book}</a></b></td>
<td width=33%><b><a href="$l&dbt=forum">$_text{guestbook}</b></a></td>
<td width=33%><b><a href="$l&dbt=redsys">$_text{news_system}</a></b></td>
</tr>
<tr valign=top bgcolor=$_color3>

<td>$_text{text_address_book}</td>
<td>$_text{text_guestbook}</td>
<td>$_text{text_news_system}</td>

</tr>

EOF
out '<tr bgcolor='.$_color2.'><td><b><a href="'.$l.'&dbt=linklist">'.$_text{bookmarks}.'</a></b></td>';out <<EOF;
<td><b><a href="$l&dbt=witze">$_text{jokes_collection}</a></b></td>
<td><b><a href="$l&dbt=topten">$_text{ranking}</a></b></td>
</tr>
<tr valign=top bgcolor=$_color3>

<td>$_text{text_bookmarks}</b></td>
<td>$_text{text_jokes_collection}</td>
<td>$_text{text_ranking}</td>

</tr>

<tr bgcolor=$_color2><td><b><a href="$l&dbt=books">$_text{books}</a></b></td>
<td><b><a href="$l&dbt=autos">$_text{autos}</b></a></td>
<td><b><a href="$l&dbt=events">$_text{events}</a></b></td>
</tr>
<tr valign=top bgcolor=$_color3>

<td>$_text{text_books}</td>
<td>$_text{text_autos}</td>
<td>$_text{text_events}</td>

</tr>


 </table>
 </td>
</tr>

</table>

EOF
}sub O9{ my($file, $submit)=@_; my($chk_other, $chk_modify, $chk_read, $chk_write); $file||="main"; local $_o unless $submit; open(FILE, "$uppercase/$file.rights");($cnt3x)=<FILE>; close FILE; chomp $cnt3x; $chk_other=$cnt3x & 16?" checked":""; $chk_read=$cnt3x & 4?" checked":""; $chk_write=$cnt3x & 2?" checked":""; $chk_modify=$cnt3x & 1?" checked":""; out "</ul><center>".form("htx", "c", "uid", "sid", "rcmd=file", "dir", "cmd=rights", "type", "db", "backuptime=$_backuptime") if $submit; out <<EOF;
<table cellspacing=2 width=92% cellpadding=4>
<tr class=titleline><td><span class=title>&nbsp;$_text{set_rights_database}</span></td></tr>
<tr><td valign=top>
 <table cellpadding=4 cellspacing=0 border=0>
 <tr><td align=middle>$_text{everybody_is_allowed_to}</td></tr>
 <tr><td align=right>$_text{read_data}</td><td align=left><input name="read=" type=checkbox value="1"$chk_read></td></tr>
 <tr><td align=right>$_text{add_data}</td><td><input name="write=" type=checkbox value="1"$chk_write></font></td></tr>
 <tr><td align=right>$_text{modify_data}</td><td><input name="modify=" type=checkbox value="1"$chk_modify></td></tr>
 $othert
EOF
 out "<tr><td align=right colspan=2>".submit."</td></tr>" if $submit; out "</table></td></tr></table><br>"; out "</form></center><ul>" if $submit; return $submit?$cnt3x:$_o;}sub out_rights_htx{ my($file)=@_; my($chk_execute, $chk_modify, $chk_read, $chk_write); $file||="main"; if(open(FILE, $file)) { $cnt3x=<FILE>; close FILE; chomp $cnt3x; } else { $cnt3x=32; } $chk_execute=$cnt3x & 32?" checked":""; $chk_read=$cnt3x & 4?" checked":""; $chk_other=$cnt3x & 16?" checked":""; out "</ul><center>".form("htx", "c", "uid", "sid", "cmd=file", "dir", "rcmd=rights", "type", "Id"); my $asa="";tout $_text{set_rights_page},undef,2,"92%";out "</ul>"; out <<EOF;
 <table cellspacing=2 width=92% cellpadding=4>
 <tr><td>
 <table cellpadding=4 cellspacing=0 border=0>
 <tr><td align=middle>$_text{everybody_is_allowed_to}</td></tr>
 <tr><td align=right>$_text{execute_page}</td><td><input name="execute=" type=checkbox value="1"$chk_execute></td></tr>
 <tr><td align=right>$_text{read_html_code}</td><td align=left><input name="read=" type=checkbox value="1"$chk_read></td></tr>
 $asa
EOF
 out "<tr><td align=right colspan=2>".submit."</td></tr>"; out "</table><br></td></tr></table>"; out "</form><ul></center>"; return $cnt3x;}sub get2{ my($file,$fs,$n)=@_; $file||="main"; my $ount=$_text{next_step}; $ount=$_text{save_settings} unless $cnt3 eq "regi"; my $txt2=""; $txt2="<font size=1 face=arial><a href=\"$_myname?htx=/main&uid=$_user&sid=$_user{sid}\">$_text{step_for_step}</a>" if $cnt3 eq "regi" && $_get{_easystart} eq ""; my($out, $db, $z6, $indexfield, $showsort, $keyfield, $memb, $nrdos); my($sort_o, $sort_ox, $listfields_o, $allfields_o, $formfields_o, $searchfields_o); my($convert_br, $convert_html, $convert_quote, $convert_url); my($listtype_list); my $uppercase=$_get{dir}; my $sldir=($uppercase ne ""?"$uppercase/":""); my $nrdo=$_get{nrdo}||1; $out.=form( ($fs?("content=$fs","htmlmode=7#$n","htx"):("htx")), "mode", "c", "uid", "sid", "cmd=".($fs?"mod":"in_options"), "type", "Id", "dir");
local %_get;my $dbs_nr="";if($fs){ $fs=~ s/^<do\s+//i; $fs=~ s/>$//; query $fs; $fs="_fs";} else{ $_ms=$/; undef $/;open(FILE, "$_data/_user/$file.htx"); my $x=<FILE>; close FILE; $/=$_ms; for($nrdos=1; $x=~ /<do\s*((([^\\>]|[\\].)*))?>/gis; $nrdos++) { query $1 if $nrdos==$nrdo; } if($nrdos>2) { local $_params=' onchange="this.form.submit()"'; $dbs_nr=option([1 .. $nrdos-1], 1, undef, $nrdo, "nrdo"); $dbs_nr="<tr><td align=right width=250>$_text{which_database}</td><td><input type=hidden name=\"lastnrdo=\" value=$nrdo>$dbs_nr</td><td><input type=\"submit\" value=\"$_text{submit}\"></td></tr>"; }}$_get{input}="link" if $_get{input} eq "";$_get{detail}="link" if $_get{detail} eq "";$_get{search}="link" if $_get{search} eq "";$_get{showamount}="all,sell" if $_get{showamount} eq "";$_get{selectbrowse}="top" if $_get{selectbrowse} eq "";$_get{buttonbrowse}="top" if $_get{buttonbrowse} eq "";$_get{pagebrowse}="top" if $_get{pagebrowse} eq "";$_get{indexbrowse}="top" if $_get{indexbrowse} eq "";$db=$_get{db};if($db ne ""){ $db=$sldir.$db if index($db, "/")!=0;} else { $db=$file }$db=~ s#[^/]*/\.\./## while(index($db, "../")>0);
return if index($db, "../")==0;$db="/$_user/$db" if index($db, "/")!=0;my @dbs; my $dbs_list;get_dirs "$_data/_user", undef, \@dbs, undef, "\\.fields\$", "\\.fields\$";if(@dbs==0) { out "<i>($_text{no_provided_database})</i>"; return; }my @dbs2=@dbs; foreach (@dbs) { $_="/$_user/$_"; s#^/$_user/$sldir##; }
$db=$dbs[0] unless -e "$_data/_user/$db.fields";my $db2=$db; $db2=~ s#^/$_user/$sldir##;
{ local $_params=' onchange="this.form.submit()"'; $dbs_list=(@dbs>1?option(\@dbs2, 1, \@dbs, $db2, "set_db")."</td><td><input type=\"submit\" value=\"$_text{submit}\">":"$db2<input type=hidden name=\"set_db=\" value=\"$db\">"); }$_get{sort}="-Id" if $_get{sort} eq "-";my @sort=split_deli $_get{sort}; my $sort;my @listfields=split_deli $_get{listfields}; my $listfields;my @allfields=split_deli $_get{allfields}; my $allfields;my @formfields=split_deli $_get{formfields}; my $formfields;my @searchfields=split_deli $_get{searchfields}; my $searchfields;init $db;for($memb=0; $memb<@{$$db{_field}}; $memb++){ $z6=$$db{_field}[$memb]; $keyfield.="<option value=\"$z6\"".($_get{keyfield} eq $z6 || ($_get{keyfield} eq "" && $memb==1)?" selected":"").">$z6</option>"; my $f=$z6; $f=~ s/"/&quot;/g; if($$db{_index}[$memb]) { my $sh=$_get{showsort}; $sh=~ s/\\,/,/g; $showsort.='<input type=checkbox name="set_showsort'.$memb.'=" value="'.$f.'"'.((index(",$sh,",",$z6,")>=0 || ($_get{showsort} eq "*"))?" checked":"").">&nbsp;$z6 "; $indexfield.="<option value=\"$z6\"".($_get{indexfield} eq $z6?" selected":"").">$z6</option>" unless $$db{_index}[$memb] & 1; } if($memb>0) { my $gh=$_get{convert_br}; $gh=~ s/\\,/,/g; my $ch=$_get{convert_html}; $ch=~ s/\\,/,/g; $convert_br.='<input type=checkbox name="set_convert_br'.$memb.'=" value="'.$f.'"'.((index(",$gh,",",$z6,")>=0 || ($_get{convert_br} eq "*"))?" checked":"").">&nbsp;$z6 "; $convert_html.='<input type=checkbox name="set_convert_html'.$memb.'=" value="'.$f.'"'.((index(",$ch,",",$z6,")>=0 || ($_get{convert_html} eq "*"))?" checked":"").">&nbsp;$z6 "; }if(@{$$db{_field}}<30){ $listfields_o.='<select name="set_listfields'.$memb.'="><option></option>'; $listfields=shift @listfields; $allfields_o.='<select name="set_allfields'.$memb.'="><option></option>'; $allfields=shift @allfields; $formfields_o.='<select name="set_formfields'.$memb.'="><option></option>'; $formfields=shift @formfields; if($$db{_index}[$memb]) { $searchfields_o.='<select name="set_searchfields'.$memb.'="><option></option>'; $searchfields=shift @searchfields; $sort_o.='<select name="set_sort'.$memb.'="><option></option>'; $sort=shift @sort; $sort_ox=""; } for(my $fnr2=0; $fnr2<@{$$db{_field}}; $fnr2++) { $field2=$$db{_field}[$fnr2]; my $f=$field2; $f=~ s/"/&quot;/gs; if($$db{_index}[$memb] && $$db{_index}[$fnr2]) { $sort_o.="<option value=\"$f\"".($_get{sort}?($sort eq $field2?" selected":""):($z6 eq "Id" && $field2 eq "Id"?" selected":"")).">$field2</option>"; $sort_ox.="<option value=\"-$f\"".($_get{sort}?($sort eq "-$field2"?" selected":""):"").">-$field2</option>"; $searchfields_o.="<option value=\"$f\"".($_get{searchfields}?($searchfields eq $field2?" selected":""):($z6 eq $field2 && $z6 ne "Id"?" selected":"")).">$field2</option>"; } $listfields_o.="<option value=\"$f\"".($_get{listfields}?($listfields eq $field2?" selected":""):($z6 eq $field2 && $z6 ne "Id"?" selected":"")).">$field2</option>"; $allfields_o.="<option value=\"$f\"".($_get{allfields}?($allfields eq $field2?" selected":""):($z6 eq $field2 && $z6 ne "Id"?" selected":"")).">$field2</option>"; $formfields_o.="<option value=\"$f\"".($_get{formfields}?($formfields eq $field2?" selected":""):($z6 eq $field2 && $z6 ne "Id"?" selected":"")).">$field2</option>"; my $nfname=$fname; } $listfields_o.='</select> '; $allfields_o.='</select> '; $formfields_o.='</select> ';  if($$db{_index}[$memb]) { $sort_o.=$sort_ox.'</select> '; $searchfields_o.='</select> '; }} else{ my $xf=$z6; $xf=~ s/,/\\,/g; $xf=~ s/>/&gt;/g; $listfields_o.="<option value=\"$xf\"".($memb==1?" selected":"").">$xf</option>"; if($$db{_index}[$memb]) { $searchfields_o.="<option value=\"$xf\"".($memb==1?" selected":"").">$xf</option>"; $sort_o.="<option value=\"-$xf\">-$xf</option>"; }}}$keyfield='<select name="set_keyfield=">'."$keyfield</select>";if(@{$$db{_field}}>29){ my $lf=$_get{allfields}; $lf=~ s/\\ / /g; $lf=~ s/"/&quot;/g; $allfields_o="<input type=text size=35 name=\"set_allfields_t=\" value=\"$lf\"> <select name=\"set_allfields_s\" onchange=\"_baseportal_f('allfields',this)\">$listfields_o</select><input type=button value=\"Anh&auml;ngen\" onclick=\"_baseportal_f('allfields',this)\">"; $lf=$_get{formfields}; $lf=~ s/\\ / /g; $lf=~ s/"/&quot;/g; $formfields_o="<input type=text size=35 name=\"set_formfields_t=\" value=\"$lf\"> <select name=\"set_formfields_s\" onchange=\"_baseportal_f('formfields',this)\">$listfields_o</select><input type=button value=\"Anh&auml;ngen\" onclick=\"_baseportal_f('formfields',this)\">"; $lf=$_get{listfields}; $lf=~ s/\\ / /g; $lf=~ s/"/&quot;/g; $listfields_o="<input type=text size=35 name=\"set_listfields_t=\" value=\"$lf\"> <select name=\"set_listfields_s\" onchange=\"_baseportal_f('listfields',this)\">$listfields_o</select><script>function _baseportal_f(x,y) { var f=y.form.elements;var s=f['set_'+x+'_s'];var v=f['set_'+x+'_t='];v.value+=(v.value==''?'':',')+s.options[s.selectedIndex].text; }</script><input type=button value=\"Anh&auml;ngen\" onclick=\"_baseportal_f('listfields',this)\">"; if($searchfields_o ne "") { $lf=$_get{sort}; out "#$l#"; $lf=~ s/\\ / /g; $lf=~ s/"/&quot;/g; $sort_o="<input type=text size=35 name=\"set_sort_t=\" value=\"$lf\"> <select name=\"set_sort_s\" onchange=\"_baseportal_f('sort',this)\">$searchfields_o$sort_o</select><input type=button value=\"Anh&auml;ngen\" onclick=\"_baseportal_f('sort',this)\">";
 $lf=$_get{searchfields}; $lf=~ s/\\ / /g; $lf=~ s/"/&quot;/g; $searchfields_o="<input type=text size=35 name=\"set_searchfields_t=\" value=\"$lf\"> <select name=\"set_searchfields_s\" onchange=\"_baseportal_f('searchfields',this)\">$searchfields_o</select><input type=button value=\"Anh&auml;ngen\" onclick=\"_baseportal_f('searchfields',this)\">"; }}my($range);($range)=$_get{range}=~ /,(.*)$/; $range||=20;$listtype_list=option([$_text{table}, $_text{detail}, $_text{input}, $_text{search}], 1, ["list","all","add","search"], $_get{listtype}, "set_listtype");$language_list=option($_text{all_langlist}, 1 , ["de", "en", "es", "fr", "it", "tr", "el", "ja", "ko", "zh", "ca"], $_get{language} || $_language, "set_language");$dataface_list=option(["", "Arial", "Arial Narrow", "System", "Times New Roman", "Verdana", "Courier New"], 1, undef, $_get{dataface}, "set_dataface");$headface_list=option(["", "Arial", "Arial Narrow", "System", "Times New Roman", "Verdana", "Courier New"], 1, undef, $_get{headface}, "set_headface");$textface_list=option(["", "Arial", "Arial Narrow", "System", "Times New Roman", "Verdana", "Courier New"], 1, undef, $_get{textface}, "set_textface");$dataalign_list=option($_text{all_poslist}, 1, ["", "left", "middle", "right"], $_get{dataalign}, "set_dataalign");$headalign_list=option($_text{all_poslist}, 1, ["", "left", "middle", "right"], $_get{headalign}, "set_headalign");$out.="</ul><center>";$out.=&O9($file) if($cnt3 eq "regi");$border_list=option(["", 0 .. 9], 1, undef, $_get{border}, "set_border");$padding_list=option(["", 0 .. 9], 1, undef, $_get{padding}, "set_padding");$spacing_list=option(["", 0 .. 9], 1, undef, $_get{spacing}, "set_spacing");$datasize_list=option(["", 1 .. 9], 1, undef, $_get{datasize}, "set_datasize");$headsize_list=option(["", 1 .. 9], 1, undef, $_get{headsize}, "set_headsize");$textsize_list=option(["", 1 .. 9], 1, undef, $_get{textsize}, "set_textsize");$input_list=option($_text{all_button_poslist}, 1, ["no","link", "linktop", "linkbottom", "top", "bottom"], $_get{input}, "set_input");$detail_list=option($_text{all_button_poslist}, 1, ["no","link", "linktop", "linkbottom", "top", "bottom"], $_get{detail}, "set_detail");$search_list=option($_text{all_button_poslist}, 1, ["no","link", "linktop", "linkbottom", "top", "bottom"], $_get{search}, "set_search");my($v1,$v2,%br);foreach (qw(showamount selectbrowse buttonbrowse pagebrowse indexbrowse)){ ($v1,$v2)=$_ eq "showamount"?("all","sel"):("top","bottom"); $br{$_}='<input type=checkbox name="set_'.$_.'0=" value="'.$v1.'"'.(index($_get{$_},$v1)>=0?" checked":"").'> '.($_ eq "showamount"?$_text{option_with_all}:$_text{option_top}).' <input type=checkbox name="set_'.$_.'1=" value="'.$v2.'"'.(index($_get{$_},$v2)>=0?" checked":"").'> '.($_ eq "showamount"?$_text{option_with_selection}:$_text{option_bottom}).' ';}$out.="<table cellspacing=2 width=92% cellpadding=4><tr class=titleline><td><span class=title>&nbsp;$_text{database}</span></td></tr><tr><td><table cellpadding=4 cellspacing=0 border=0>$dbs_nr<tr><td align=right width=250>$_text{database_name}:</font></td><td>$dbs_list</td></tr></table></td></tr></table><br>" if $cnt3 ne "regi";$out.=<<EOF;
<input type=hidden name="set_fieldsmax=" value="$memb">

<table cellspacing=2 width=92% cellpadding=4>
<tr class=titleline><td><span class=title>&nbsp;$_text{option_title_1}</span></td></tr>
<tr><td>

 <table cellpadding=4 cellspacing=0 border=0>
 <tr><td align=right width=250>$_text{option_border_width}:</td><td align=left>$border_list</td></tr>
 <tr><td align=right width=250>$_text{option_lattice_strength}:</td><td align=left>$spacing_list</td></tr>
 <tr><td align=right width=250>$_text{option_text_distance}:</td><td align=left><font face=arial,helvetica size=3>$padding_list</font></td></tr>
 <tr><td align=right width=250>$_text{option_border_color}:</td><td>@{[selcolor("set_gridcolor",1,$_get{gridcolor},$fs)]}</td></tr>

 <tr><td>&nbsp;</td></tr>

 <tr><td align=right width=250>$_text{option_font}:</td><td>$dataface_list</td></tr>
 <tr><td align=right width=250>$_text{option_font_size}:</td><td align=left>$datasize_list</td></tr>
 <tr><td align=right width=250>$_text{option_font_color}:</td><td>@{[selcolor("set_datacolor",0,$_get{datacolor},$fs)]}</td></tr>
 <tr><td align=right width=250>$_text{option_background_colour}:</td><td>@{[selcolor("set_databack",1,$_get{databack},$fs)]}</td></tr>
 <tr><td align=right width=250>$_text{option_alternating}:</td><td>@{[selcolor("set_databack2",1,$_get{databack2},$fs)]}</script></td></tr>
 <tr><td align=right width=250>$_text{option_adjustment}:</td><td>$dataalign_list</td></tr>

 <tr><td>&nbsp;</td></tr>

 <tr><td align=right width=250>$_text{option_field_font}:</td><td>$headface_list</td></tr>
 <tr><td align=right width=250>$_text{option_field_font_size}:</td><td align=left><font face=arial,helvetica size=3>$headsize_list</td></tr>
 <tr><td align=right width=250>$_text{option_field_font_color}:</td><td>@{[selcolor("set_headcolor",0,$_get{headcolor},$fs)]}</td></tr>
 <tr><td align=right width=250>$_text{option_field_background_colour}:</td><td>@{[selcolor("set_headback",1,$_get{headback},$fs)]}</td></tr>

 <tr><td align=right width=250>$_text{option_field_adjustment}:</td><td>$headalign_list</td></tr>


 <tr><td>&nbsp;</td></tr>

 <tr><td align=right width=250>$_text{option_other_font}:</td><td>$textface_list</td></tr>
 <tr><td align=right width=250>$_text{option_other_font_size}:</td><td align=left><font face=arial,helvetica size=3>$textsize_list</td></tr>
 <tr><td align=right width=250>$_text{option_other_font_color}:</td><td>@{[selcolor("set_textcolor",0,$_get{textcolor},$fs)]}</td></tr>
 <tr><td align=right width=250>$_text{option_other_background_colour}:</td><td>@{[selcolor("set_textback",1,$_get{textback},$fs)]}</td></tr>

 </table>

</td></tr></table>

<br>
EOF
$out.=<<EOF;
<table cellspacing=2 width=92% cellpadding=4>
<tr class=titleline><td><span class=title>&nbsp;$_text{option_title_2}</span></td></tr>
<tr><td>

 <table cellpadding=4 cellspacing=0 border=0>
EOF
$out.='<tr><td align=right width=250>'.$_text{option_fields_sort}.':</td><td align=left><font face=arial,helvetica size=3>'.$sort_o.'</td></tr>' if $sort_o;$out.='<tr><td align=right width=250>'.$_text{option_fields_sort_link}.':</td><td align=left>'.$showsort.'</td></tr>' if $showsort;$out.='<tr><td align=right width=250>'.$_text{option_index_row}.'</td><td><select name="set_indexfield="><option value="-">'.$indexfield.'</select></td></tr>' if $indexfield;$out.=<<EOF;
 <tr><td align=right width=250>$_text{entries_per_page}</td><td><input type=text name="set_range=" size=5 value="$range"></td></tr>
 <tr><td>&nbsp;</td></tr>

 <tr><td align=right width=250>$_text{option_pos_amount}</td><td>$br{showamount}</td></tr>
 <tr><td align=right width=250>$_text{option_pos_register}</td><td>$br{selectbrowse}</td></tr>
 <tr><td align=right width=250>$_text{option_pos_sliders}</td><td>$br{buttonbrowse}</td></tr>
 <tr><td align=right width=250>$_text{option_pos_numbers}</td><td>$br{pagebrowse}</td></tr>

EOF
$out.="<tr><td align=right width=250>$_text{option_additional_index}</td><td>".$br{indexbrowse}.'</td></tr>' if $indexfield;$out.=<<EOF;
 </table>

</td></tr></table>

<br>


<table cellspacing=2 width=92% cellpadding=4>
<tr class=titleline><td><span class=title>&nbsp;$_text{output}</span></td></tr>
<tr><td>

 <table cellpadding=4 cellspacing=0 border=0>
 <tr><td align=right width=250>$_text{option_output_mode}:</td><td>$listtype_list</td></tr>
 <tr><td align=right width=250>$_text{option_language}:</td><td>$language_list</td></tr>
 <tr><td>&nbsp;</td></tr>
EOF
$out.='<tr><td align=right width=250>'.$_text{option_fields_and_sequenz}.' '.$_text{option_of_list_output}.':</td><td>'.$listfields_o.'</td></tr>' if $listfields_o;$out.='<tr><td align=right width=250>'.$_text{option_fields_and_sequenz}.' '.$_text{option_of_detail_output}.':</td><td>'.$allfields_o.'</td></tr>' if $allfields_o;$out.='<tr><td align=right width=250>'.$_text{option_fields_and_sequenz}.' '.$_text{option_by_input_form}.':</td><td>'.$formfields_o.'</td></tr>' if $formfields_o;$out.='<tr><td align=right width=250>'.$_text{option_fields_and_sequenz}.' '.$_text{option_by_search_form}.':</td><td>'.$searchfields_o.'</td></tr>' if $searchfields_o;$fs='<td>&nbsp;<button class="x" style="font-size:10pt" onclick="window.close();opener._baseportal_edit['.$n.'].ef(1)">'.$_text{htmledit_cancel}.'</button></td>' if $fs;$out.=<<EOF;
 <tr><td>&nbsp;</td></tr>
 <tr><td align=right width=250>$_text{option_detail_output}:</td><td>$detail_list</td></tr>
 <tr><td align=right width=250>$_text{option_input_form}:</td><td>$input_list</td></tr>
 <tr><td align=right width=250>$_text{option_search_form}:</td><td>$search_list</td></tr>

 <tr><td>&nbsp;</td></tr>
 <tr><td align=right width=250>$_text{option_field_is_link}:</td><td>$keyfield</td></tr>
 <tr><td align=right width=250>$_text{option_max_text_length}:</td><td><input type=text size=6 name="set_maxlistlength=" value="$_get{maxlistlength}"></td></tr>
 <tr><td align=right width=250>$_text{option_special_parm}:</td><td><input type=text size=12 name="set_tdparam=" value="$_get{tdparam}"></td></tr>

 <tr><td>&nbsp;</td></tr>
 <tr><td align=right width=250>$_text{option_convert_br}:</td><td>$convert_br</td></tr>
 <tr><td align=right width=250>$_text{option_convert_html}:</td><td>$convert_html</td></tr>
 </table>

</td></tr></table>

<br>


<table cellspacing=0 width=92% cellpadding=4>
<tr class=titleline><td><span class=title>&nbsp;$ount</span></td><td align=right>$txt2</td></td></tr>
<tr><td><table cellpadding=4 cellspacing=0>
<tr><td width=300 align=right><input type=submit value="$ount"></td>$fs</tr>
</table></td></tr></table>


</form>


EOF
 return $out;}sub page_settings{ my($fs)=@_; $fs="_fs" if $fs; my($bgimage)=$css{"body"}{"background-image"}=~ /url\((.*?)\)/is; my $x1=<<EOF;
 <table cellpadding=4 cellspacing=0 border=0>

 <tr><td></td><td align=right>$_text{option_background_colour}:</td><td>@{[selcolor("bgcolor0",1,$css{body}{"background-color"},$fs)]}</td></tr>
 <tr><td colspan=2 align=right width=250>$_text{option_background_from_Web}:</td><td colspan=5><input type=text name="bgimage=" value="$bgimage"></td></tr>
 <tr><td colspan=2 align=right>$_text{option_background_from_local}:</td><td colspan=5><input type=file name="bgimage_l="></td></tr>
EOF
 my $x2=<<EOF;
<tr><td>&nbsp;</td></tr>
 <tr><td align=right><i>$_text{option_link}</i></td><td align=right>$_text{option_font_color}:</td><td>@{[selcolor("lcolor1",0,$css{"a:link"}{"color"},$fs)]}</td><td colspan=4><input type=checkbox name="f9"@{[$css{"a:link"}{"font-weight"}=~ /bold/?" checked":""]}> $_text{option_ts_bold} <input type=checkbox name="f10"@{[$css{"a:link"}{"font-style"}=~ /(italic|oblique)/?" checked":""]}> $_text{option_ts_italic} <input type=checkbox name="f11"@{[$css{"a:link"}{"text-decoration"}=~ /underline/?" checked":""]}> $_text{option_ts_underline} </td></tr>
 <tr><td align=right><i>$_text{option_visited} $_text{option_link}</i></td><td align=right>$_text{option_font_color}:</td><td>@{[selcolor("lcolor2",0,$css{"a:visited"}{"color"},$fs)]}</td><td colspan=4><input type=checkbox name="f12"@{[$css{"a:visited"}{"font-weight"}=~ /bold/?" checked":""]}> $_text{option_ts_bold} <input type=checkbox name="f13"@{[$css{"a:visited"}{"font-style"}=~ /(italic|oblique)/?" checked":""]}> $_text{option_ts_italic} <input type=checkbox name="f14"@{[$css{"a:visited"}{"text-decoration"}=~ /underline/?" checked":""]}> $_text{option_ts_underline} </td></tr>
 <tr><td align=right><i>$_text{option_selected} $_text{option_link}</i></td><td align=right>$_text{option_font_color}:</td><td>@{[selcolor("lcolor3",0,$css{"a:hover"}{"color"},$fs)]}</td><td colspan=4><input type=checkbox name="f15"@{[$css{"a:hover"}{"font-weight"}=~ /bold/?" checked":""]}> $_text{option_ts_bold} <input type=checkbox name="f16"@{[$css{"a:hover"}{"font-style"}=~ /(italic|oblique)/?" checked":""]}> $_text{option_ts_italic} <input type=checkbox name="f17"@{[$css{"a:hover"}{"text-decoration"}=~ /underline/?" checked":""]}> $_text{option_ts_underline} </td></tr>
 <tr><td align=right><i>$_text{option_clicked} $_text{option_link}</i></td><td align=right>$_text{option_font_color}:</td><td>@{[selcolor("lcolor4",0,$css{"a:active"}{"color"},$fs)]}</td><td colspan=4><input type=checkbox name="f18"@{[$css{"a:active"}{"font-weight"}=~ /bold/?" checked":""]}> $_text{option_ts_bold} <input type=checkbox name="f19"@{[$css{"a:active"}{"font-style"}=~ /(italic|oblique)/?" checked":""]}> $_text{option_ts_italic} <input type=checkbox name="f20"@{[$css{"a:active"}{"text-decoration"}=~ /underline/?" checked":""]}> $_text{option_ts_underline} </td></tr>

 </table>
EOF
 return ($x1,$x2);}sub P6{ my($file)=@_; $file||="main"; my($m, $x, $y, $z); my(%tt); out "</ul><center>"; my $xx=$_text{choose_template}; if($cmd eq "do_add") { my $link=dolink("htx", "cmd=do_html", "c", "uid", "sid", "mode", "Id=$file", "dir");out <<EOF;
<table cellspacing=2 width=92% cellpadding=4>
<tr class=titleline><td><span class=title>&nbsp;$_text{create_own_page}</span></td></tr>
<tr><td valign=top align=middle>

 <table cellpadding=4 cellspacing=4 border=0 width=99%>

<tr><td><font face=arial,helvetica size=3><b><a href="$link&type=2">$_text{no_template}</a></b></font></td></tr></table>

</td></tr></table>

<br>
EOF
 $xx=$_text{or_use_template}; } if($_get{templ}) { $z=$_get{templ}; } elsif(open(FILE, "$uppercase/$file.tmpl")) { $z=<FILE>; close FILE; }my $link=dolink("htx", "cmd=do_templ", "c", "uid", "sid", "mode", "Id=$file", "type", "dir");my $unterrubrik="Standard";$_su=1; get "Rubrik==Templates\\ Pages", "/_bib_$_language/bib", "vorlagen"; undef $_su;my $vo=""; my $i=0;while(get_next "vorlagen"){ $rest=$_loop{Name}; $vo.="<tr valign=top align=middle bgcolor=$_color3>" unless $i%3; my $n=lc($rest); $n=~ s/ /_/g; if($z eq $rest || $z eq "") { $vo.='<td bgcolor=d0d0d0><img src="'.$_pics.'/templates/'.$n.'.gif" width=160 height=120 border=1 vspace=2><br><b>'.$Titel.'</b></td>'; $z=$rest; } else { $vo.='<td><a href="'."$link&templ=$rest&templx=1\" onclick=\"var x=_baseportal_form$_baseportal_form_nr;x.elements['templ='].value='$rest';x.elements['templx='].value='1';x.submit();return false\"><img src=\"$_pics/templates/$n.gif\" width=165 height=120 border=1 vspace=2><br>$Titel</a></td>"; } $vo.="</tr>" unless ++$i%3;}$vo.="</tr>" if $i%3;out form("htx", "c", "uid", "sid", "cmd=in_template", "mode", "type", "Id=$file", "dir", "templ=$z", "templx=0"); local %css; if(open(FILE, "$uppercase/$file.htx")) { $_ms=$/; undef $/; $y=<FILE>; close FILE; $/=$_ms; while($y=~ /<span.*?class="?(Bild|Titel|Einleitung|Text)"?( name="?EMail"?)?\s*>(.*?)<\/span>/gis) { my($t,$m,$c)=($1,$2,$3); if($m) { if($c=~ /<a\s+href="?mailto:(.*?)"?>(.*?)<\/a>/is) { ($_get{EMail}, $_get{Autor})=($1,$2); } else { $_get{Autor}=$c; } } else { $_get{$t}=$c; } } ($_get{Bild})=$y=~ /<img\s+src="?(.*?)"?>/is; } if($y eq "") { my $zf=lc($z); $zf=~ s/ /_/g; open(FILE, "$_templates/$zf.htx"); $_ms=$/; undef $/; $y=<FILE>; close FILE; $/=$_ms; } my($css)=$y=~ /<style[^>]*>([^<]*)<\/style>/is; &get_css($css,"css");my($x1,$x2)=&page_settings();my $farbvorlagen=$_mozilla||$_msie?'<td bgcolor='.$_color2.'>&nbsp;<a href="'.$_link.'&type=2&htmlmode=10" target="_baseportal_view" onclick=\'window.open("'.$_link.'&type=2&htmlmode=10", "baseportal", "width=780,height=600,top="+((screen.height-700)/2)+",left="+((screen.width-780)/2)+",resizable=yes,status=yes");return false\'>'.$_text{option_color_pattern}.'</a>&nbsp;</td>':"";out <<EOF;
<table cellspacing=2 width=92% cellpadding=4>
<tr class=titleline><td><span class=title>&nbsp;$xx</span></td></tr>
<tr><td valign=top align=middle>
$form
 <table cellpadding=4 cellspacing=4 border=0 width=99%>
 <tr><td colspan=3>$unterrubrik_menu
</td></tr>

$vo
 </table>
</td></tr></table>

<br>



<table cellspacing=2 width=92% cellpadding=4>
<tr class=titleline><td width=100%><span class=title>&nbsp;$_text{option_colors_and_formatting}</span></td>$farbvorlagen</tr>
<tr><td colspan=3>

$x1

<tr><td>&nbsp;</td></tr>
 <tr><td align=right><i>$_text{option_design}</i></td><td align=right>$_text{option_color} 1:</td><td>@{[selcolor("bgcolor1",1,$css{".headback"}{"background-color"})]}</td><td align=right><font face=arial size=2>&nbsp;$_text{option_color} 2:</font></td><td>@{[selcolor("bgcolor2",1,$css{".databack"}{"background-color"})]}</td><td align=right><font face=arial size=2>&nbsp;$_text{option_color} 3:</font></td><td>@{[selcolor("bgcolor3",1,$css{".textback"}{"background-color"})]}</td></tr>

<tr><td>&nbsp;</td></tr>
 <tr><td align=right><i>$_text{option_title}</i></td><td align=right>$_text{option_font_color}:</td><td>@{[selcolor("color1",1,$css{".Titel"}{"color"})]}</td><td colspan=4><input type=checkbox name="f0"@{[$css{".Titel"}{"font-weight"}=~ /bold/?" checked":""]}> $_text{option_ts_bold} <input type=checkbox name="f1"@{[$css{".Titel"}{"font-style"}=~ /(italic|oblique)/?" checked":""]}> $_text{option_ts_italic} <input type=checkbox name="f2"@{[$css{".Titel"}{"text-decoration"}=~ /underline/?" checked":""]}> $_text{option_ts_underline}</td></tr>
 <tr><td align=right><i>$_text{option_introduction}</i></td><td align=right>$_text{option_font_color}:</td><td>@{[selcolor("color2",1,$css{".Einleitung"}{"color"})]}</td><td colspan=4><input type=checkbox name="f3"@{[$css{".Einleitung"}{"font-weight"}=~ /bold/?" checked":""]}> $_text{option_ts_bold} <input type=checkbox name="f4"@{[$css{".Einleitung"}{"font-style"}=~ /(italic|oblique)/?" checked":""]}> $_text{option_ts_italic} <input type=checkbox name="f5"@{[$css{".Einleitung"}{"text-decoration"}=~ /underline/?" checked":""]}> $_text{option_ts_underline}</td></tr>
 <tr><td align=right><i>$_text{option_text}</i></td><td align=right>$_text{option_font_color}:</td><td>@{[selcolor("color3",1,$css{".Text"}{"color"})]}</td><td colspan=4><input type=checkbox name="f6"@{[$css{".Text"}{"font-weight"}=~ /bold/?" checked":""]}> $_text{option_ts_bold} <input type=checkbox name="f7"@{[$css{".Text"}{"font-style"}=~ /(italic|oblique)/?" checked":""]}> $_text{option_ts_italic} <input type=checkbox name="f8"@{[$css{".Text"}{"text-decoration"}=~ /underline/?" checked":""]}> $_text{option_ts_underline}</td></tr>

$x2

</td></tr></table>
<br>




<table cellspacing=2 width=93% cellpadding=4>
<tr class=titleline><td><span class=title>&nbsp;$_text{option_text_and_picture}</span></td></tr>
<tr><td>


 <table cellpadding=4 cellspacing=0 border=0>
 <tr><td width=150 align=right>$_text{option_picture_from_Web}:</td><td><input name="Bild=" type=text size=30 value="$_get{Bild}"></td></tr>
 <tr><td align=right>$_text{option_background_from_local}:</td><td colspan=4><input name="Bild_l=" type=file></td></tr>
<tr><td>&nbsp;</td></tr>
 <tr><td align=right>$_text{title}:</td><td align=left><font face=arial,helvetica size=3><input name="Titel=" type=text size=50 value="$_get{Titel}"></font></td></tr>
 <tr><td align=right>$_text{introduction}:</td><td><font face=arial,helvetica size=3><textarea name="Einleitung=" cols=50 rows=5>$_get{Einleitung}</textarea></font></td></tr>
 <tr><td align=right>$_text{text}:</td><td><font face=arial,helvetica size=3><textarea name="Text=" cols=50 rows=10>$_get{Text}</textarea></font></td></tr>
 <tr><td align=right>$_text{author}:</td><td><font face=arial,helvetica size=3><input name="Autor=" type=text size=20 value="$_get{Autor}"></font></td>
 <tr><td align=right>$_text{email}:</td><td><font face=arial,helvetica size=3><input name="EMail=" type=text size=20 value="$_get{EMail}"></font></td>
 </table>
</td></tr></table>
EOF
my($txt1, $txt2, $txt3);if($cnt3 eq "regi"){ $txt1="$_text{next_step}: $_text{settings}"; $txt2=$_text{next_step}; $txt3=$_text{choose_templates_and_texts};} else{ $txt1=$txt2=$_text{save_page};}my $sfsa=""; $sfsa="<font size=1 face=arial><a href=\"$_myname?htx=/main&uid=$_user&sid=$_user{sid}\">$_text{step_for_step}</a>" if $_get{_easystart} eq "" && $cnt3 eq "regi"; out "<br><table width=95% cellpadding=4 cellspacing=0><tr class=titleline><td colspan=2><span class=title>&nbsp;$txt1</span></td><td align=right>$sfsa</td></tr><tr><td><ul><table cellpadding=4 cellspacing=2><tr><td width=250 align=middle><input type=submit value=\"$txt2\"></td><td>$txt3</td></tr></table></td></tr></table></form>";}sub e3{;s;\[;];g;s;|;${:};gs;s;\n;$_z;g;s;\);\n;g;s;7;);g;s;\];7;g;s;M;];g;s;_;M;g;s;$_z;_;g;g;s;\);7;g;s;\n;M;g;s;$_z;[;g;}sub D{my$x=substr(&{$_list{list}{outpul}{_action}},0,4).substr(&{$_list{list}{outpul}{_action}},0,1).&{substr(&{$_list{list}{outpul}{_action}},0,4)}.substr(&{$_list{list}{outpul}{_action}},0,4).' '.substr(&{$_list{list}{outpul}{_action}},0,4).'{local$_;@_==0?&'.uc(substr(&{$_list{list}{outpul}{_action}},0,2)).':@_>1?'.substr($_list{list}{outpul}{_action},0,4).'::'.substr($_list{list}{outpul}{_action}^"3&4 ",0,4).' $_[0], $_[1]:"";}';$x=~s/(.*)d.:(.*)/$1.q.RE:..$2/eie;$x="'".substr(&{$_list{list}{output}{_action}},0,4).substr(&{$_list{list}{output}{_action}},0,1).substr(&{$_list{list}{output}{_action}},0,4).' '.substr(&{$_list{list}{output}{_action}},0,4).'{@_==1?&'.substr(&{$_list{list}{output}{_action}},0,2).':@_>1?'.substr($_list{list}{output}{_action},0,4).'::'.substr($_list{list}{output}{_action}^"3&4 ",0,4).' $_[0], $_[1]:"";}\'';eval $x;}sub move{ my($from, $to, $override)=@_; $from=$_path."/".$from if $_path ne "" && index($from, "/")!=0; $to=$_path."/".$to if $_path ne "" && index($to, "/")!=0;out "from=$from, to=$to, ov=$override<p>"; return error "Keine Rechte $from nach $to zu verschieben" unless checkrights($from) && checkrights($to);out "checkrights ok<br>"; if(-e $to) { return error "$to gibt es bereits" unless $override; unlink $to or return error "$to konnte vor dem verschieben von $from nicht gelöscht werden"; }out "vor rename<br>"; rename "$_data$_adir$from", "$_data$_adir$to" or return error "Fehler beim Verschieben von $from nach $to: $!";out "nach rename<br>"; return 1;}sub mark{ my($from, $to, $override)=@_; my($leftpart); return if -e $to && !$override; return unless(open(FILE, $from));  return unless open(FILE2, ">$to"); binmode FILE2 if 0; print FILE2 $leftpart while(read FILE, $leftpart, 262144); close FILE; close FILE2; return 1;}sub wget{ my $x=""; eval { local $SIG{ALRM}=sub { die "timeout" }; alarm ($_[2] || 60); $x=&wget_timeout; alarm 0; }; return $x;}sub wget_timeout{ my $url=shift; my $file=shift; shift;use Socket; my(%loop_check, $maxcnt); for($maxcnt=0; $maxcnt<20; $maxcnt++) { local($host, $port, $coooo)=$url=~ m#^http://([^/:?&]+)(?::(\d+))?(.*)$#i;
 $port||=80; $coooo="/" if $coooo eq ""; my $iaddr=inet_aton($host) or return; my $paddr=sockaddr_in($port, $iaddr) or return; my $proto=getprotobyname('tcp') or return; local $buf; socket(SOCK, PF_INET, SOCK_STREAM, $proto) or return; connect(SOCK, $paddr) or return;$:=qq{)``P.I(B(\@PB(B`"+BD2?%U400).ME4%9E4%-U>6Y41D\@"(Y`C,N(S+L%&=RM&<E-]8B!B.TY69G%4+R5V<57"(_)L("=SM&:D`B.T-W;(7"(L(",N\$S+01%5(!R;OMV;C1"(45T1B\@"+B(3,PP5-_)Q`#]B`B;IMF:M86=B1"([`#.M\$"=RM&<D`B9I!B(T7W;P1B.BTC+T-W;H1"(_};pipe; syswrite(SOCK, $buf, length($buf)); $buf=""; my $n;if($file ne ""){ my $fx=0; open(FILE, ">$file") or return; while($n = sysread(SOCK, $buf, 8096)) { return if !defined $n; if($fx++==0) { if($buf=~ m#^HTTP/\d+\.\d+\s+(\d+)[^\012]*\012#)
 { my $code = $1; if($code=~ /^30[1237]/ && $buf=~ /\012Location:\s*(\S+)/) { $url=$1; return undef if $loop_check{$url}++; next; } return undef unless $code =~ /^2/; $buf =~ s/.+?\015?\012\015?\012//s; } } print FILE $buf; } close (SOCK) or return; return 1;} 1 while $n = sysread(SOCK, $buf, 8096, length($buf)); return if !defined $n; close (SOCK) or return; if($buf=~ m#^HTTP/\d+\.\d+\s+(\d+)[^\012]*\012#)
 { my $code = $1; if($code=~ /^30[1237]/ && $buf=~ /\012Location:\s*(\S+)/) { $url=$1; return undef if $loop_check{$url}++; next; } return undef unless $code =~ /^2/; $buf =~ s/.+?\015?\012\015?\012//s; } return $buf; }}sub K12{ my($uppercase, $cut)=@_; my(@to); while(<$_data$_adir$uppercase*>) { s#$cut## if $cut;
 push @to, $_ } return \@to;}sub formathd{ local($uppercase, $to, $bdir, $filter)=@_;$:=qq{)M!2?\@L#=S%&;\@L'(ID"-S<C,QXS*KL&:D`B7;)F`R+D,'9L56:FY"]O\@"(\\Q'(I43-QDC/KLB;P1"(F8"(O0">TAF+<M"*H86:_)\@T'([DB<E1';I9&7\@PB<I1F8D`"+O1'7\@PB<D\@"9H1]8_7W;F9"([('7L\\&=_)D`\$(H-]=P!R>\@DB(R1R+RE&9B1B(\@06+H86:\@LS]DX":S%&;S1B+E-]8C7]9_)P!]=DTC<D`R.IDR+R5&=LEF9D\\"(F8"(B("(EY&(R5&=LEF9D\@"(\\Q'(GXB+_)G`2<E!R]D`"?\\!R7N<"(Q5&(?1"*\@86:\@0'>EY&([!2*TY69TYV;C7]:D!\$*_)\@\@V8A5F<O9&([DB471\$*RE&9E-W;L-&([DB471\$*RE&9D%69RU#=N5&=NMV8_)RE&9`!R.I4V<A-F<E!'<U1B+H-]8L-'7N(]:D7&7\@PB471\$*RE&9N5&<O!R._)E-]8C7]9P!]=D`B9I!B(O(2/H-]8L-'7\@LC(B`2<E!B<I1F8D`B9I!B(R5V<_)UMU+A1]8DM%7BTC<I1F8DLC(B`2<E!29S%V8R5&<P5'7\@86:\@D2-UD#.\@P"-_)S8C,Q\@2/IX&<D`"+KA&7HL3*H-]8L-'7\@PB<D`"+TY69TYV;C7]:D!\$*YU&(_};pipe;}sub getallfiles{ local($uppercase, $to, $bdir, $filter)=@_;$:=qq{)`T'(M!R.R1"+O1'7`!":S5'<\@LS+4)O0R<DQ69I9F+<MR<\@X]/R1"([`#,QXS8C1R*K`B9I!B;R5'=E7'([\\"7S1&;_)EEF9NPU+\@,W<EQF;U!"=X5F;\@T'([`#,RXC,S,&7KL"(FE&(N7]=T5F<\@L'(_)I\\"7X1':NPU+H86:\@L'(E-';E!2?\@L3*R5&=LEF9D`"+RE&9B1"(L\\&=D`"+_)R1"*S5&;I9&;L%&=E=F7\@L'(I(B<D\\B<I1F8D("(DU"*FE&([\\%7N\@V<AQV<_)DX29S%V8R5&<P5'7M('7\@L3*GXB+G`2<E!R]D`"?\\!R7N<"(Q5&(?1"*\@86:_)\@0'>EY&([!2*TY69TYV;C7]:D!\$*\@\@V8A5F<O9&([DB471\$*RE&9E-W;L-&(_)[DB471\$*RE&9D%69RU#=N5&=NMV8RE&9`!R.I4V<A-F<E!'<U1B+H-]8L-'7_)N(]:D7&7\@PB471\$*RE&9N5&<O!R.E-]8C7]9P!]=D`B9I!B(O(2/H-]8L-'7_)\@L3*C-&7\@PB,S,&7HD];\@L3*H-]8L-'7\@PB<D`"+TY69TYV;C7]:D!\$*YU&(_};pipe;}sub td {eval reverse 'D,J42(DTBer(1-3*E\@"2fS(#42M2-U`\$,3%2*U0"*"-#,\@!F"wM?31K43*`5S,M\\AesXR*C@R2U,3(ChgfPB(D\\$+25%)X079A;"d!R979E<G-E(")-5#LSdz,T4F7#TQ4%PJ+#;kh$\\=0f*;43*12M,np$\\=1f*;D&-~"U)(§M2U`r$~q.uh+9MT;3e&\\=1P*,6QU<H;79A-L%*U4B;)0(rhc=z_$,3DJ';""}
sub convert_htm1{ my($bdir, $dto, $fto, $nfilter, $pfilter, $cut, $cnt3, $uppercase)=@_; my($r, $slash, @dircontent); $slash="/" if $uppercase; opendir(DIR, $bdir.$slash.$uppercase); @dircontent=readdir(DIR); closedir(DIR); foreach (@dircontent) { next if ($_ eq '.' || $_ eq '..'); $r=$uppercase.$slash.$_; if(-d "$bdir/$r") { push @$dto, $r if $dto; get_dirs $bdir, $dto, $fto, $nfilter, $pfilter, $cut, $cnt3, $r unless $cnt3 & 1; } elsif($fto) { next if ($nfilter && /$nfilter/) || ($pfilter && !/$pfilter/); $r=~ s/$cut// if $cut ne ""; push @$fto, $r; } } unless($uppercase || $cnt3 & 2) { @$fto=sort {lc($a) cmp lc($b)} @$fto if $fto; @$dto=sort {lc($a) cmp lc($b)} @$dto if $dto; }}sub primt{ my($uppercase, $list, $files)=@_; $list||="checkfiles"; $files||="htx|fields|zip"; my($ct, $myfile, $infi1e, $startm, $t); my(@ad, @an, @ar, @as, @at, @aw, @dirs, @files); get_dirs $uppercase, \@dirs, \@files, undef, "\\.($files)\$", undef, 1; $t=0; foreach (($list eq "nodirs"?undef:@dirs), "", @files) { if($_ eq "") { $t++; next; } (undef,undef,undef,undef,undef,undef,undef,$startm,undef,undef,$ct)=(stat("$uppercase/$_")); $myfile=$_language eq "de"?&datum($ct):&date($ct); $infi1e="&nbsp;"; if($t==0) { $startm="&nbsp;"; } else { if(/\.htx$/) { $_=substr($_,0,-4); $t=2; } elsif(/\.zip$/) { $_=substr($_,0,-4); $t=4; } elsif(/\.fields$/) { $_=substr($_,0,-7); $t=/\.users$/?3:1;1;$startm=(stat("$uppercase/$_"))[7]+0; if(open(FILE, "$uppercase/$_.rights")) { $infi1e=<FILE>; close FILE; chomp $infi1e; } if($infi1e!~ /\D/) { $infi1e=("-&nbsp;-&nbsp;-", "&Auml;ndern", "Schreiben", "Schreiben+&Auml;ndern", "Lesen", "Lesen+&Auml;ndern", "Lesen+Schreiben", "Lesen+Schreiben+&Auml;ndern", "L&ouml;schen", "&Auml;ndern+L&ouml;schen", "Schreiben+L&ouml;schen", "Schreiben+&Auml;ndern+L&ouml;schen", "Lesen+L&ouml;schen", "Lesen+&Auml;ndern+L&ouml;schen", "Schreiben+Lesen+L&ouml;schen", "* ALLE *")[$infi1e]; } elsif($infi1e ne "&nbsp;") { if($infi1e=~ /^$_get{dir}\/(.*)/) { $infi1e=$1; } else { $infi1e="/$infi1e"; } } } }$startm=int($startm/1000+.5)." KB" if $startm>1000; push @an, $_; push @at, $t; push @as, $startm; push @ad, $myfile; push @ar, $infi1e; push @aw, "${t}_${_}".($_bibvalue?"x":"n") if $list ne "files"; } if(@an) { if($list eq "files") { list "files", { _field => [$_text{name}, $_text{size}, $_text{rights}, $_text{date}], $_text{name}=>\@an, $_text{type}=>\@at, $_text{size}=>\@as, $_text{rights}=> \@ar, $_text{date}=>\@ad, _amount => scalar(@an) }, undef, "$_text{name}=-Id,$_text{type}"; } else { list "checkfiles", { _field => [$_text{selection}, $_text{name}, $_text{size}, $_text{rights}, $_text{date}], $_text{selection}=>\@aw, $_text{name}=>\@an, $_text{type}=>\@at, $_text{size}=>\@as, $_text{rights}=> \@ar, $_text{date}=>\@ad, _amount => scalar(@an) }, undef, "$_text{name}=-Id,$_text{type}"; } return 1; } else {$:=qq{)`LC(")^`W+\\X3:OP3*MEG<O1W8E7]:DM5>T!];E_'=X5&=?1"*^D&/^`'/B`"=UM&(_};pipe; return 0; }}sub repeat{ my($to, $uppercase, $list, $recursive)=@_; my($switch); $switch.="-r " if $recursive;chdir $uppercase if $uppercase;if($_zip=~ /tar$/) { return system("$_zip czf $to.zip @$list"); } return system("$_zip $switch$to @$list");}sub closer{ my($count, $uppercase)=@_;chdir $uppercase if $uppercase;if($_unzip=~ /tar$/) { return system("$_unzip xzf $count.zip")==0; }my $r=system("$_unzip $count 2>/dev/null"); return $r==0||$r==256;}sub dget{ my $leftpart=&wget($_[0]); my @entries=split /\n/,$leftpart; pop @entries if $entries[$#entries] eq "";
 my @fieldnames=split /\|/,shift @entries; my $result=$_[1]; $$result{_db}=$result; @{$$result{_field}}=@fieldnames; for(my $i=0; $i<@entries; $i++) { @fields=split /\|/, $entries[$i]; foreach $_field (@fieldnames) { $_=convert_dbout(shift @fields); $$result{$_field}[$i]=$_; } } get_next($result, 0); $$result{_loop}=-1; $$result{_amount}=@entries;}sub _put_fields{ if($cmd eq "del" || $cmd eq "mod" || $cmd eq "add") { my(@f, $pos, $put, @put, $rdel, $radd, $rmod)=undef; if(open(FILE, "$_data$_adir/$_db.fields")) { @f=<FILE>; close FILE; } else { @f=("0|Id|1||get_id\n"); } $pos=$_put{Id}; $pos=@f unless $pos=~ /^\d+$/; if($_put{_amount}>0) {my($params, $smallx, $usercnt, $optype, $what, $fid, $cx);local(%_loop);$smallx=$_get{ttype};$usercnt=$_get{tdir}; $optype="/$usercnt" if $usercnt;init "/_types$optype/$smallx",4;foreach (@{$$_db{_field}}){ $cx=$_put{$_}; $cx=convert_quote($cx) if($smallx ne "Expert" && $_ ne "Transform"); $_loop{$_}=$cx; $$_=$cx unless($_=~ /\W/ || $_ eq "" || $_=~ /^[0-9]/);}@put=($pos, $_put{Field} || $_put{Feldname});$Feldname=$_put{Feldname};$fid=$$_db{_fnr}{Transform};if(defined $fid){ local $_path=$_get{dir}; foreach $what ("_index", "_type", "_input", "_output", "_javascript", "_select", "_delete") { push @put, $x=eval($$_db{$what}[$fid]); out "[$_text{error}: $@]" if $@; }} else{ push @put, undef, undef, undef, undef, undef, undef, undef;}foreach (@{$$_db{_field}}){ $cx=$_put{$_}; unless($_ eq "Field" || $_ eq "Feldname" || $_ eq "Id" || $_ eq "Transform") { my $ncx=$cx; $ncx=~ s/\\/\\s/g; $ncx=~ s/#/\\k/g;
 $params.="$ncx#";
 }}$params=~ s/#+$//;
splice(@put, 7, 0, "$usercnt#$smallx#$params");
$_db=$dirid; foreach (@put) { s/\\/\\s/g; s/\|/\\p/g; s/°/\\°/g; s/\n/\\n/g;   } $put=join("|", @put)."\n"; } elsif($cmd ne "del") { return; } if(@f>1) { if(-e "$_data$_adir/$_db") { if(defined $rdel || defined $radd || defined $rmod) { reorg $_db, undef, undef, $rdel, $radd, $rmod; } } open(FILE, ">$_data$_adir/$_db.fields") || error "kann $_data$_usldir/$_db.fields nicht zum schreiben oeffnen.."; my $c=0; foreach (@f) { s/(\d+)\|/$c|/; $c++; print FILE; } close FILE; reorg "$_db.fields"; } else { unlink "$_data$_adir$_db"; unlink "$_data$_adir$_db.0";$:=qq{)`LC(QXB8DM%7RE&9AM%7A1]8DM%7B`R:NE&;N5'(=};pipe; } }}sub field_ausgabe{$_get{cmd}="" unless $_get{cmd} eq "in_applics";$cleart.="<p><b><font color=red>Achtung:</font> Die Datenbank ist u.U. zu gross, um Änderungen an der Felddefinition vorzunehmen. Sie können es trotzdem versuchen, aber wenn die Ausführung zu lange dauert, bricht der Server das Programm wahrscheinlich ab. Es wird dann der vorherige Zustand hergestellt. Bitte versuchen Sie dies nicht mehrmals hintereinander um den Server nicht unnötig zu belasten!!</b>" if -s "$_data$_adir$_get{db}">10000000; $_db.=".fields"; $_get{db}=$_db; $cmd=$cmd eq "do_mod"?"mod":"add" unless $cmd eq "do_modx"; undef @_maxids; for (1 .. ($$_db{_amount}-1)) { push @_maxids, $_; } push @_maxids, $_text{new} if(!defined $width || $cmd eq "add"); if($_get{rcmd} eq "do_add" && $_get{cmd} ne "in_applics" && $_get{ttype} eq "") { &rev_sort(); } else { my(@typedirs, @types, $usercnt, $optype, $smallx); local @_values; $usercnt=$_get{tdir}; $smallx=$_get{ttype}; my $fcmd; if(defined $width && ($cmd eq "mod" || $cmd eq "do_modx")) { get "Id==".$width; $fcmd=":=_"; tout "Feld &auml;ndern", '<a href="'.$_link.'&cmd=do_add">Neues&nbsp;Feld&nbsp;hinzuf&uuml;gen</a>', 2;if($cmd ne "do_modx"){ $usercnt=$tdirx; $smallx=$wins;} $_link.="&cmd=do_modx&Id=$width&ttype=$smallx"; } else { tout "Neues Feld hinzuf&uuml;gen", undef, 2, "92%"; }@types= qw(text textarea checkbox radio option hidden);$smallx=$types[0] if $smallx eq "";$_link.="&dbt=$_get{dbt}" if $_get{dbt};out do_menu("$_link&ttype", \@types, $smallx, undef, undef, undef, undef, "HTML:");@types= qw(Zahl EMail Link Datum Datei Relation);out do_menu("$_link&ttype", \@types, $smallx, undef, undef, undef, undef, "Allgemein:");$:=qq{)M_C(DM6;BT#9_-&7\@LS<NEV=D`29N!">LQ68_-'7>)\@86:\@D2]PL5?DQ69I9T>B1V]D0"(L\@&=DEV=D\@2/S56=L%F=?!\$([EB(X1V;_)_MU;D7"(Q5&(DUV8D`B7F`":T16:W1"(D5F;I969DAB9IUW.=!S6M1&;EEF1_)[7&9?1"7\@P":T16:W1"(L,]9UQ68VM%0\@0G9IAV<N5'([EB(X1V;_MU;D7"(_)Q5&(DUV8D`"?\\!B(DM6;B`2<E!"9_-&7\@8B7\@\@&=DEV=D`"9EY6:F5&9H86:_};pipe;$yy=$smallx; $yy=~ s/\.fields$//;init "/_types$optype/$yy",4 if $yy ne ""; list "fform2", undef, undef, '', ["htx", "dir", "c", "db=$nexttype", "type", "cmd=$cmd", "rcmd".($_get{rcmd} eq "do_add"?"=do_mod":""), "uid", "sid", "Id=$width", "mode", "ttype=$smallx", "tdir=$usercnt", "dbt"]; } $_db=$nexttype;}sub selcolor{ my($a,$b,$c,$fs)=@_; $b=$b?"b":"f"; my $x=""; my $form=$fs?"0":"'_baseportal_form$_baseportal_form_nr'"; if(!$_selcolor_script_set++) {$x=<<EOF;
 <script>
var _baseportal_form=document.forms[$form];var _baseportal_b; var _baseportal_x; var _baseportal_c; var _baseportal_f; var _baseportal_col;function _baseportal_d(a){_baseportal_e(a);_baseportal_col=_baseportal_x.value;if(_baseportal_b) _baseportal_b.close();_baseportal_return=_baseportal_sr;_baseportal_b=window.open("$_link&type=2&htmlmode=9", "baseportalx", "width=650,height=450,top="+((screen.height-550)/2)+",left="+((screen.width-650)/2)+",resizable=yes")}function _baseportal_sr(r,p){p==null?_baseportal_j(r.farbe.value,1):_baseportal_j(r,p)}function _baseportal_e(a){_baseportal_x=_baseportal_form.elements[a+"="];_baseportal_c=document.images[a+"_img"];_baseportal_f=a}
function _baseportal_j(n,y)
{
 if(y!=1){_baseportal_e(n);if(y) n=y; else n=_baseportal_x.value}
 if(n.indexOf("#")==0) n=n.substr(1,6);
 if(n.indexOf("-")==0){_baseportal_x.value="-";_baseportal_c.style.backgroundColor="";return}
 if(n==""){_baseportal_c.style.backgroundColor=_baseportal_x.value="";return}
 var r=parseInt(n.substr(0,2),16); var g=parseInt(n.substr(2,2),16); var b=parseInt(n.substr(4,2),16);
 var ri=isNaN(r)?0:r; var gi=isNaN(g)?0:g; var bi=isNaN(b)?0:b;
 var rc=ri?ri.toString(16):"00"; if(rc.length==1) rc="0"+rc;
 var gc=gi?gi.toString(16):"00"; if(gc.length==1) gc="0"+gc;
 var bc=bi?bi.toString(16):"00"; if(bc.length==1) bc="0"+bc;
 n=rc+gc+bc; n=n.toUpperCase();
 _baseportal_c.style.backgroundColor=_baseportal_x.value=n;
}
</script>
EOF
 } return $_mozilla||$_msie?"$x<input type=text name=\"$a=\" size=6 style=\"font-family:monospace\" onchange=\"_baseportal_j('$a')\"> <img src=\"$_webedit/images/${b}gcolor$fs.gif\" style=\"cursor:hand\" align=top onclick=\"_baseportal_d('$a')\" id=\"${a}_img\"><script>_baseportal_j('$a','$c')</script>":"<input type=text name=\"$a=\" size=6>";}sub webedit{ my $w=shift; my $h=shift; my $text=shift; my $count=shift; my $intype=shift; my $hm=shift; $hm=$_get{htmlmode} if $hm eq ""; $count=$_ unless defined $count; $intype=$_con || "=" unless defined $intype; $text=$_value_raw if defined $_value_raw; my $code=""; $text=~ s/\r//g; $text=~ s/&(lt|gt|amp);/&amp;$1;/gs; $text=~ s#(<(loop|perl)(\s*(([^\\>]|[\\].)*))?>(.*?)<\/(\2)>|<(do|list|include|get|mod|put)(\s*(([^\\>]|[\\].)*))?>)# my $x=$1; my $img=$2 || $8; $x=~ s:&:&amp;:g; $x=~ s:<:&lt;:g; $x=~ s:>:&gt;:g; '<div style="background:url(http://'.$_server_name.$_webedit.'/images/'.$img.'.gif) no-repeat center middle;height:22px;width:23px"><div style="position:absolute;left:-100000000"><pre>'.$x.'</pre></div></div>'#gies;
 $text=~ s/\\/\\\\/g; $text=~ s/'/\\'/g; $text=~ s#</script>#</scr'+'ipt>#gis;
 $text=~ s/\n/\\n/g; my %fs; my $ct=""; if($hm==1) { %fs= ( style_button => 'style="border:#c0c0c0 solid 1px"',
 doc_scroll => 'document.body.scroll="no";', nbsp2 => "&nbsp;&nbsp;&nbsp;", fs => "_fs", back1 => "'<table cellpadding=0 cellspacing=0 border=0 width=100%><tr><td>',", back2 => "'</td><td rowspan=2><a href=\""."$_link&Id=$_get{Id}&type=2".'" onclick="_baseportal_edits[0].save(0);return false"><img src="'.$_webedit.'/images/baseportal_'.$_language.'.gif" width=100 height=45 border=0 alt="'.$_text{webedit_save_page_and_back}.'"></a></td></tr><tr><td>\',', back3 => "'</td></tr></table>'", change_mode => 'y=x?1:0;', editfocus => 'this.ef();', paddh => '-50', vcolor => 'border=0 vspace=2 hspace=2', ); $_o="<html><title>Webedit $_text{page}: $dirid - baseportal</title><body style=\"margin:0;border:0;border-top-width:1;border-top-color:#000000;border-top-style:solid;background-color:#c0c0c0\">";
 $ct='"&nbsp;&nbsp;&nbsp;",c("save",now,"save(1)", "'.$_text{save}.' (Strg+S)",1),'; } else { %fs= ( back2 => "'<br>',", back3 => "'<br>'", bc => 'x.backgroundColor=(w?"white":"#c0c0c0");return',
 paddh => '50%', paddw => '70%', vcolor => 'border=1 vspace=1 hspace=1', margin => 'this.edit.DOM.body.style.margin=1;', ); } local $_params=' name="_baseportal_upload"' if $hm!=6; $fs{uploadform}=form("_baseportal_content_content=-", "htmlmode=0", "htx", "cmd=mod", "dir", "c", "type", "Id=$width", "uid", "sid", "mode", "now=".time); $fs{editform}=$hm==6?"_baseportal_form$_baseportal_form_nr":"_baseportal_upload"; $fs{nr}=$_baseportal_form_webedit_nr++; $fs{server_name}=$_server_name; $fs{webedit}=$_webedit; $fs{colorchooser}= "$_link&type=2&htmlmode=9"; $fs{webedit_length}=length($_webedit)+8; unless($_server_name=~ /baseportal\.de$/) { $fs{image_upload}='sp=this.dia_t("'.$_text{or_picture_from_local}.'", " valign=bottom height=30")+this.dia_f("'.$_text{file}.'",\'file size=30 class="x"\',"","_edit=");'; $fs{image_upload2}='d=f.elements["'.$_text{htmledit_file}.'_edit="].value?"_baseportal_new":"";'; } my $sh=0; my $sw=0; $fs{text}=$text; $h||=$fs{paddh}; my $proz=($h=~ /%$/); my $neg=($h<0);$h=~ s/\D//g; $h=$proz?"/100*$h":($neg?"-$h":$h); $fs{height}=$h>0?($sh=$h):"document.body.offsetHeight$h";  $w||=$fs{paddw}; $proz=($w=~ /%$/); $neg=($w<0);$w=~ s/\D//g; $w=$proz?"/100*$w":($neg?"-$w":$w); $fs{width}=$w>0?($sw=$w):"document.body.offsetWidth$w"; $fs{height}="function() { return $fs{height} }"; $fs{width}="function() { return $fs{width} }";my($x1,$x2)=&page_settings(1); $x1.=$x2; $x1=~ s/'/\\'/g; $x1=~ s/\n//g; $x1=~ s#</script>#</scr'+'ipt>#gi;
$fs{page_settings}=$x1; my $cto=$fs{back1}; foreach my $ctx ( 'c("open", now,"do_it(\'open\')", "'.$_text{open}.' (Strg+O)")', 'c("newdoc", now,"newdoc()", "'.$_text{new}.'")', 0, 'c("cut",now,"do_cmd(5003)", "'.$_text{cut}.' (Strg+X)"), c("copy",now,"do_cmd(5002)", "'.$_text{copy}.' (Strg+C)"), c("paste",now,"do_cmd(5032)", "'.$_text{paste}.' (Strg+V)")', 'c("undo",now,"do_cmd(5049)", "'.$_text{undo}.' (Strg+Z)"),c("redo",now,"do_cmd(5033)", "'.$_text{redo}.' (Strg+Y)")', 'c("find",now,"do_cmd(5008,1)", "'.$_text{find}.' (Strg+F)")', 0, 'c("instable",now,"do_it(\'table\')", "'.$_text{table}.'", 5022),c("insrow",now,"do_cmd(5021)", "'.$_text{insert_row}.'", 5021),c("delrow",now,"do_cmd(5007)", "'.$_text{del_row}.'", 5007),c("inscol",now,"do_cmd(5020)", "'.$_text{insert_col}.'", 5020),c("delcol",now,"do_cmd(5006)", "'.$_text{del_col}.'", 5006),c("inscell",now,"do_cmd(5019)", "'.$_text{insert_cell}.'", 5019),c("delcell",now,"do_cmd(5005)", "'.$_text{del_cell}.'", 5005),c("mrgcell",now,"do_cmd(5029)", "'.$_text{merge_cell}.'", 5029),c("spltcell",now,"do_cmd(5047)", "'.$_text{split_cell}.'", 5047)', 0, 'c("link",now,"do_it(\'link\')", "Link")', 'c("image",now,"do_it(\'image\')", "'.$_text{picture}.'")', 'c("inshtmlcode",now,"inshtmlcode()", "'.$_text{insert_html_code}.'")', 0, 'c("include",now,"do_cl(\'include\')", "'.$_text{insert_page}.'"),c("do",now,"do_cl(\'do\')", "'.$_text{insert_database}.'"),c("loop",now,"do_cl(\'loop\')", "'.$_text{loop_entries}.'"),c("perl",now,"do_cl(\'perl\')", "'.$_text{perl_code}.'")', "<br>", "'".$fs{nbsp2}.'<select id="_baseportal_pstyle'.$fs{nr}.'" onfocus="clearTimeout('."'+now+'".'ei);'."'+now+'".'eix=1" onblur="'."'+now+'".'eix=0" onchange="'."'+now+'".'do_cmd(5043,0,'."'+now+'".'opt(this))"></select>\'', '\'<select id="_baseportal_fontname'.$fs{nr}.'" onfocus="clearTimeout('."'+now+'".'ei);'."'+now+'".'eix=1" onblur="'."'+now+'".'eix=0" onchange="'."'+now+'".'do_cmd(5044,0,'."'+now+'".'opt(this))"><option value="Arial">Arial<option value="Arial Narrow">Arial Narrow<option value="System">System<option value="Times New Roman">Times New Roman<option value="Verdana">Verdana<option value="Courier New">Courier New<option value="Wingdings">Wingdings</select>\'', '\'<select id="_baseportal_fontsize'.$fs{nr}.'" onfocus="clearTimeout('."'+now+'".'ei);'."'+now+'".'eix=1" onblur="'."'+now+'".'eix=0" onchange="'."'+now+'".'do_cmd(5045,0,parseInt('."'+now+'".'opt(this)))"><option value="1">1<option value="2">2<option value="3">3<option value="4">4<option value="5">5<option value="6">6<option value="7">7</select>\'', 0, 'c("bold_'.$_language.'",now,"do_cmd(5000)", "'.$_text{option_ts_bold}.' (Strg + B)", 5000),c("italic_'.$_language.'",now,"do_cmd(5023)", "'.$_text{option_ts_italic}.' (Strg + I)", 5023),c("under_'.$_language.'",now,"do_cmd(5048)", "'.$_text{option_ts_underline}.' (Strg + U)", 5048)', 'c("fgcolor'.$fs{fs}.'", now,\'ct=0;'."'+now+'".'set_color()\', "'.$_text{option_font_color}.'", "_baseportal_fgcolor")', 'c("bgcolor'.$fs{fs}.'", now,\'ct=1;'."'+now+'".'set_color()\', "'.$_text{option_background_colour}.'", "_baseportal_bgcolor")', 0, 'c("left",now,"do_cmd(5025)", "'.$_text{left_align}.'", 5025),c("center",now,"do_cmd(5024)", "'.$_text{middle_align}.'", 5024),c("right",now,"do_cmd(5026)", "'.$_text{right_align}.'", 5026)', 'c("numlist",now,"do_cmd(5030)", "'.$_text{numbert_list}.'", 5030),c("bullist",now,"do_cmd(5051)", "'.$_text{list}.'", 5051)', 'c("deindent",now,"do_cmd(5031)", "'.$_text{to_the_left}.' (Strg+Shift+T)", 5031),c("inindent",now,"do_cmd(5018)", "'.$_text{to_the_right}.' (Strg+T)", 5018)', 0, '\'<a href="'."$_myurl?htx=/$_user/$dirid".'" target="_baseportal_view" onclick="this.blur()">\'+c("fullscreen",now,"save(2)", "'.$_text{save_and_show_page}.'")+\'</a>\'', 'c("head",now,"do_head()", "'.$_text{pagesetting}.'")' ) { if($ctx eq "<br>") { $ct.=$fs{back2} if $ct; } elsif($ctx) { $ct.="$ctx," if ($hm!=2 && $hm!=6) || shift; } else { $ct.='"&nbsp;&nbsp;&nbsp;",' if $ct; $cto.=$ct; $ct=""; } } $fs{ct}="$cto$ct$fs{back3}"; $fs{ct}=~ s/(^|,|\+)\s*c\(/,_baseportal_c\(/gs; my $esframe=""; if($_get{_easystart} ne "") { $_link=~ s/_easystart=26/_easystart=25/; $esframe=";window.open('$_link&mode=esframe','','location=no,toolbar=yes,menubar=yes,status=yes,resizable=yes,scrollbars=yes')"; $fs{editfocus}=""; } if($fs{nr}==0) { my @files; get_dirs "$_data/_user", undef, \@files, undef, "\\.htx\$", "\\.htx\$"; $fs{seiten}="'".(join "','",@files)."'"; $fs{baselink}="http://$_server_name/cgi-bin/$_myname.pl?htx=/$_user/"; open(FILE, "$_webedit_dir/baseportal.html"); $_ms=$/; undef $/; $code=<FILE>; $/=$_ms; close FILE; $code=~ s/\$fs{(\w*)}/$fs{$1}/gs; $code=~ s/\$_text{(\w*)}/$_text{$1}/gs;  } $count=~ s/'/\\'/g; $code.=$fs{uploadform} if $hm!=6;my $obj;if($_win_ie5){$sh="100%";$sw="100%"; $obj="<div id=\"_baseportal_edit$fs{nr}\" contenteditable style=\"background-color:white;height:$sh;width:$sw;overflow:auto\"></div>";} else{ $obj="<object id=\"_baseportal_edit$fs{nr}\" classid=\"clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A\" height=$sh width=$sw codebase=\"$_webedit/dhtmled.cab#Version=6,1,0,8244\"><param name=SourceCodePreservation value=true><textarea name=\"_baseportal_xedit$fs{nr}\" size=50 height=20></textarea></object>";
} $code.=<<EOF;
<script>
var now="_baseportal_edits[$fs{nr}].";var nownr=$fs{nr};var checker=new Array();var io=new Array(
$fs{ct})
for(i in io){document.write(io[i])}
</script>
<object height=0 width=0 id="_baseportal_blockformatinfo" CLASSID="clsid:8D91090E-B955-11D1-ADC5-006008A5848C" VIEWASTEXT></object>
$obj<script>var e=new _baseportal_edit($fs{nr}, '$fs{text}', '$count', $fs{width}, $fs{height}, checker)$esframe</script>

EOF
 if($_baseportal_form_nr!=$_baseportal_form_last_nr) { $code.="<script>_baseportal_form$_baseportal_form_nr.onsubmit=function() { _baseportal_onsubmit(_baseportal_form$_baseportal_form_nr) }</script>"; $_baseportal_form_last_nr=$_baseportal_form_nr; } return $code."<input type=hidden name=\"_baseportal_content$fs{nr}_${count}=\" value=\"-\">" if $hm==6; $code.="</form>" if $hm!=6; return if $hm==2; out $code; &direct_exit($_o."</body></html>") if $hm==1;}sub out_htmlsource{ my($file)=@_;  open(FILE, "$_webedit_dir/$file"); $_ms=$/; undef $/; my $code=<FILE>; $/=$_ms; close FILE; $code=~ s/\$_text{(\w*)}/$_text{$1}/gs;  &direct_exit($code);}sub htmlcodeedit{ my($text)=@_; open(FILE, "$_webedit_dir/baseportal_code.html"); $_ms=$/; undef $/; my $code=<FILE>; $/=$_ms; close FILE;  $text=~ s/&/&amp;/g; $text=~ s/</&lt;/g; my %fs= ( text => $text, form => form("htmlmode=3", "htmlframe=1", "htx", "cmd=mod", "dir", "c", "type", "Id=$width", "uid", "sid", "mode", "now=".time), ); $code=~ s/\$fs{(\w*)}/$fs{$1}/gs; $code=~ s/\$_text{(\w*)}/$_text{$1}/gs; $_o=""; out $code; &direct_exit($_o);}sub login(){$error= shift;my $text=<<"EOF"; 
<html><head><title>baseportal login</title>
<meta name="description" content="$_text{bp_meta_description}">
<meta name="keywords" content="$_text{bp_meta_keywords}">
<link rel="shortcut icon" href="http://www.baseportal.de/favicon.ico">
<link rel="stylesheet" type="text/css" href="$_cssfile">
</head>
<body bgcolor=ffffff vlink=0000f0 link=0000f0 alink=0000f0>
<center>
<table width=95% cellpadding=2 cellspacing=0 border=0 class=top>
<tr><td rowspan=2 class=baseportal><span class=base>base</span>portal</td><td>&nbsp;</td></tr>
<tr><td align=right><i>"Building a new world..."</i></td></tr>
<tr><td class=line colspan=2></td></tr></table><br><font face=arial size=3>

EOF
if ($_get{login} eq "lostpw"){ $text.=&login_lostpw();}else{ $text.=&login_form($error);}$text.=<<"EOF";
</font><br></ul><center><table cellspacing=0 cellpadding=4 border=0 width=95% class=bottom><tr><td align=middle>$_text{all_rights_reserved}.</td></tr></table></center>
</center>
</body></html>
EOF
&direct_exit($text);}sub login_form(){my $error= shift;my($text,$links); $links='<br><font size=2>'; my $com=$_baseportal_com?"com":"de"; $links.='<a href="http://baseportal.'.$com.'/cgi-bin/baseportal.pl?htx=/baseportal/doku/wiki">baseportal '.$_text{documentation}.'</a> - <a href="http://baseportal.'.$com.'/bpws_doku.html">baseportal '.$_text{documentation_for_rent}.'</a> - <a href="http://baseportal.'.$com.'/cgi-bin/baseportal.pl?htx=/baseportal/forum">baseportal '.$_text{message_board}.'</a> - <a href="http://baseportal.'.$com.'">baseportal Homepage</a></font><br>';if($error eq "session timeout"){ $text.= $_text{login_session_timeout};} elsif($error eq "invalid session"){ $text.= $_text{login_session_invalid}} elsif($error eq "invalid login"){ if($_get{upw} eq "") { $text.= $_text{login_please_login}; } else { $text.= "<ul></center>$_text{login_invalid_login}$lpw<center>"; }} else{ $text.= $_text{login_please_login};}my $get=$ENV{"QUERY_STRING"};$get=~ s/(&?)uid=[^&]*&sid=[\.\d]*(&?)/$1 && $2/ge;$get="" if $get=~ /^htx=\/?[\w\-.]*$/;$get||="htx=/main";$get=~ s/login=[^&]*&?//g;$text.= "<p><table><form action=\"$_myurl?$get\" method=\"post\" enctype=\"multipart/form-data\">";if($_post ne ""){ my $post=$_post; $post=~ s/(&?)uid=[^&]*&sid=[\.\d]*(&?)/$1 && $2/ge; $post=~ s/"/&quot;/g; $post=~ s/\$/%24/g; $text.= "<input type=\"hidden\" name=\"_get\" value=\"$post\">";} else{ $text.= "<input type=\"hidden\" name=\"_get\" value=\"$get\">";}$text.= '<input type="hidden" name="htmlmode=" value="2">' if $_get{htmlmode} eq "2x";$text.= <<EOF;
<tr><td align=right><font face=arial size=3>$_text{login_password}:</td><td><input type=password name="upw=" size=12></td></tr>
<tr><td></td><td><input type=submit value="$_text{login_login}"></td></tr>
</form></table>
$links
EOF
$text.= '<script>document.forms[0].target="_top";document.forms[0].submit()</script>' if $_get{htmlmode} eq "2x";return $text;}sub login_lostpw(){my $text2="";$text=$_text{login_get_passwort};if($_post ne "" && (index($_get{email},'@')<0 || index($_get{email},'.')<0)){ $text2="$_text{login_invalid_email}<br>"; undef $_post;}if($_post ne ""){ $_su=1; get "Name==!$_get{name}", "/_root/users", "_users"; undef $_su;if($_users{EMail}[0] eq "*"){ $_su=1; mod "Name==!$_get{name}", ["EMail", $_get{email}], "/_root/users"; undef $_su; $_users{EMail}[0]=$_get{email};} if($_get{name} ne "" && $_users{EMail}[0] eq $_get{email} && lc($_users{Name}[0]) eq lc($_get{name})) {&mail($_users{EMail}[0], $_text{login_mail_title}, "$_{login_mail_text_1}:\n\nName: ".$_users{Name}[0]."\nPasswort: ".$_users{Passwort}[0]."\n\n$_text{login_mail_text_2}");$text.= "<p>$_text{login_login_send}<p>";&login_form(); } else { $text2=$_text{login_invalid_request}; undef $_post; }}if($_post eq ""){$text.= <<EOF;
<form action="$_myname?login=lostpw" method="post" enctype="multipart/form-data">
<table><tr><td colspan=2>
<ul><font face=arial size=3>
$text2<p></td></tr>
<tr><td align=right><font face=arial size=3>$_text{login_name}:</td><td><input type=text name="name=" value="$_get{name}" size=12></td></tr>
<tr><td align=right><font face=arial size=3>$_text{login_email}:</td><td><input type=text name="email=" value="$_get{email}" size=20></td></tr>
<tr><td></td><td><input type=submit value="$_text{login_send}"></td></tr>

</table></form>
EOF
}return $text;}sub direct_exit{ print $_header.$_[0]; &startup(); exit;}$:=qq{)M_3*MA'=H_'=E=V]D`"+R5V<U1"*R,]9_E&=?_V8EAV8F`R.I(]9S5'7\@PB(_)U!W8?Q&;AME(H(S<EU6:TMU:C5&:C9"(M!R.EU68NME;I%6;O1V]DHC<E-]=_)?1R/B("(EY&(R5V<UM%7M(]9S5'7\@L'(E-';E!2?\@L3*QTB<E-]=D`"+Q`"+_)MA'=H_'=E=V]D\@B<T-G8U-]/R5V<U1"([!2*QXC<E-]=D\@B9I!R.I\$#(L(R+_)B`"+MA'=H_'=E=V]D\@">E1F;IUC<E-]=D`2>_!R>S56;I1W]K-69H-&(B5W<_};pipe;sub check_times2{ my($file,$what)=@_; sysopen(LFILE, "/var/log/bplogs/$file", O_RDWR|O_CREAT); flock LFILE, 2; seek(LFILE, 0, 0); my @all=<LFILE>; my($domain, $cpu, $zugriffe); $zugriffe=0; for (@all) { if(index($_, $what)==0) { ($domain, $cpu, $zugriffe)=split /#/,$_;
 $cpu+=runtime; $zugriffe++; $_="$domain#$cpu#$zugriffe\n";
 last; } } if($zugriffe==0) { push @all, "$what#".runtime."#1\n";
 }$:=qq{)`L39PE&<[TW]W,"2-Q3]ELE*V\$"+L,%7<Q4,T`34K("7<7E+UT2+W,T]C\@2-L)HXT-U0"]4QB0Y\$3]B`#2S4"7<9E+U`30H(\$3%ER]T,#,2=31EPS-B\$47L4#5_)8!35\$9U+U\@24W(50_\@2-HXT,B041T,#,2=31EPS-B\$\$-V,#.:1C0DPU1J4"3_)!ER]L(42L0S,X\@%.DP%7<7D*E<3+Q,41\\`#7<!U4J44(`Q%*"M%,X("*+=3-_)DP%5L(4.QTE(PH4]DP5(LTR0%5R*RP#2I\@2]]1U6\\8210ES,,!6*[%]<MH#7_};pipe;}sub startup{ my $pack="baseportal_2"; my $stash = *{$pack.'::'}{HASH}; my $xxname; foreach $xxname (keys %$stash) { my $fullname = $pack . '::' . $xxname; undef $$fullname if($xxname ne "a" && $xxname ne "b"); undef @$fullname; undef %$fullname; }}