$jz
\n\n";}sub jl{my($jg,%jh,$AH);%jh=%{$_[0]};
$AH="\x0D\x0A";local(*AI);if(!$jh{$z[505]}){die("SMTP_pop3auth: POP3 username not defined'\n");
}if(!$jh{$z[506]}){die("SMTP_pop3auth: POP3 password not defined'\n");
}if($ab{$z[507]}{$z[508]}){return 1;}my($fq,$jo,$fp,$kb,$jq,$er);
$fq=$jh{$z[509]}||$jh{$z[494]};$jo=$jh{$z[510]}||110;$fp=$jh{$z[505]};
$kb=$jh{$z[506]};$jq=$jh{$z[511]}||$jh{$z[498]}||30;$er=$jh{$z[499]}
||0;$jq+=time()if$jq<10**8&&$jq>0;if($fq=~s/:(\d+)//){$jo=$1;
}my($jt)=gethostbyname($fq)||do{$ab{$z[500]}="Could not connect to POP3 server. Unknown host $fq\n";
return 0;};socket(AI,PF_INET,SOCK_STREAM,0)||do{$ab{$z[500]}
="Could not connect to POP3 server. No Socket: $!\n";return
0;};connect(AI,pack"SnA4x8",PF_INET,$jo,$jt)||do{if($!eq"Unknown error")
{$ab{$z[500]}="Could not connect to POP3 server. POP3 server does not exist or is not responding.\n";
return 0;}else{$ab{$z[500]}="Could not connect to POP3 server. Connect failed: $!\n";
return 0;}};select(AI);$|=1;select(STDOUT);binmode(AI);my$ju
=&jm(\*AI,$jq)||do{$ab{$z[500]}="Timed out waiting for POP3 server to respond.\n";
return 0;};if($er){&jj($ju);}if(uc(substr($ju,0,3))ne"+OK")
{$ab{$z[500]}="An unknown error occured. Server response: $ju\n";
return 0;}print AI"USER $fp",$AH;if($er){&jj("USER $fp",$AH);
}$ju=&jm(\*AI,$jq)||do{$ab{$z[500]}="Timed out waiting for POP3 server to respond.\n";
return 0;};if($er){&jj($ju);}if(substr($ju,0,3)ne"+OK"){$ab{$z[500]}
="The server didn't accept the login info for '$fp'. Server response: $ju\n";
return 0;}print AI"PASS $kb",$AH;if($er){&jj("PASS $kb",$AH);
}$ju=&jm(\*AI,$jq)||do{$ab{$z[500]}="Timed out waiting for POP3 server to respond.\n";
return 0;};if($er){&jj($ju);}if(substr($ju,0,3)ne"+OK"){$ab{$z[500]}
="The server didn't accept the login info for '$fp'. Server response: $ju\n";
return 0;}print AI"QUIT",$AH;if($er){&jj("QUIT",$AH);}close(AI);
$ab{$z[507]}{$z[508]}=1;return 1;}sub jn{my$AJ=$_[0];my$jq=
$_[1]||$z[361];my($kc,$kd,$ke,$kf,$kg,$kh,$ki);fileno($AJ)||
die("fh_can_read: invalid filehandle or filehandle not open!\n");
vec($kc,fileno($AJ),1)=1;$ki=select($kd=$kc,undef,undef,$jq);
return vec($kd,fileno($AJ),1);}sub jm{my$AJ=$_[0];my$jq=int($_[1]);
if(!$jq){die("FH_readline: no timeout value specified!\n");
}if($jq<10**8){die("FH_readline: timeout value must be in time() format!\n");
}fileno($AJ)||die("FH_readline: invalid filehandle or filehandle not open!\n");
my($dy,$kj);while($jq>=time()){&jn(\*AI,0.25)||next;sysread(\*AI,$kj,
1)||last;$dy.=$kj;if($kj eq"\x0A"){last;}}return$dy;}sub ow
{my$fa=shift;$fa=~s|\\|/|g;if($fa=~m|^/|){return$fa;}if($fa
=~m|^\w:/|){return$fa;}return&kk($ab{$z[512]}.$z[64].$fa);}
sub kk{my$fa=shift;$fa=~s|\\|/|g;1 while$fa=~s|[^/]*/\.\./||;
return$fa;}sub ox{my($kl,@jh)=@_;$kl=~s/\s+//g;$kl=uc$kl;my
$km;my$kn=-1;my$ko;foreach$ko(split(/,/,$kl)){$kn++;my$kp=shift
@jh;my$kq=$ko=~s/\[|\]//g;if($ko eq$z[513]){@jh=();last;}next
if($kq and not defined$kp);next if($ko eq$z[514]and defined
$kp);next if($ko=~/\bVALUE\b/and not ref($kp)and defined($kp));
next if(uc(ref$kp)=~/\b$ko\b/);next if($ko=~/\bINT\b/and$kp
!~/[^0-9\.\e\-]/i and$kp==int($kp));$km.=", "if$km;$km.="\$_[$kn] must be ";
$km.="either "if$kq;$km.=$ko;$km.=" or undefined"if$kq;$km.=
" ARG: $kp.";}if(@jh){$kn++;$km.=", "if$km;$km.="extra argument(s) \@_["
.($kn)." .. ".($kn+$#jh)."]";}return 1unless$km;my$fe=(caller(1))[3];
$fe=~s/^main:://;&ak("Invalid arguments passed to $fe".": $km");
}sub oy{my$ic=shift;$ic=~s/</g;$ic=~s/>/>/g;return$ic;
}1;;sub kz{my($kr,$ks)=@_;foreach(@{$kr->{$z[172]}}){my($kt,
$fe)=@{$_};if(!defined&{$fe}&&!defined&{$ab{$z[515]}{$kt}})
{die("The action '$kt' defined as a handler for db '$kr->{'name'}' does not have a custom handler or a default handler");
}if((!$ks&&$ag{$kr->{$z[50]}.$z[516].$kt})||$ks eq$kt){if(defined
&{$fe}){&{$fe}($kr);exit;}else{&{$ab{$z[515]}{$kt}}($kr);exit;
}}}if($ks){die"Unable to execute forced action '$ks' on db '$kr->{'name'}'";
}}sub oz{my$kr=shift;my$ao=&ku($kr);&kv($kr,$ao);}sub pa{my
$kr=shift;my$ao=&kw($kr);&kx($kr,$ao);&ky($z[517],$ao);exit;
}sub pb{my$kr=shift;if(!$ac{$z[518]}){&kz($kr,$z[173]);}my$ao
=&la($kr);&ky($z[518],$ao);exit;}sub pc{my$kr=shift;my$ao=&lb($kr);
&ld($kr,$ao);}sub pd{my$kr=shift;&co;my$le=&lf($kr);my$lg=&lh($kr,
$le);&li($kr,$le);&lj($kr,$le);&cp;&lk($kr,$lg);&ll($kr);}sub
pe{my$kr=shift;my($df,$dg);my$lm={$z[57]=>$af{$z[519]}{$z[57]},
$z[520]=>1,$z[82]=>'',};$lm=&ln($kr,$lm);foreach(split(/\s+/,$kr->{$z[79]}))
{push(@$dg,[$_,$z[283],$lm->{$z[82]}]);}my$ap=sub{my$lo=shift;
if(!defined$lo->{$z[521]}&&$lo->{$z[19]}){my$hu=&hh(0,0,0,$lo->{$z[20]},$lo->{$z[19]}-1,$lo->{$z[18]});
$lo->{$z[521]}=&as($ab{$z[96]},$hu);}$lo->{$z[522]}=&as($ab{$z[40]},int($lo->{$z[522]}))
if$lo->{$z[522]};$lo->{$z[66]}=&as($ab{$z[40]},int($lo->{$z[66]}))
if$lo->{$z[66]};$ad{$z[523]}=$ad{$z[523]}eq$z[524]?$z[525]:
$z[524];return&bu($z[122],$lo);};my$ao=&lp($kr,$ap,$lm,$df,
$dg);&lq($ao);}sub ku{my$kr=shift;$ad{$z[526]}=$kr->{$z[145]};
$ad{$z[527]}=$kr->{$z[50]};&gb($kr->{$z[147]},{});my($ao)={};
if($kr->{$z[528]}&&&lr($kr)>=$kr->{$z[528]}){&ky($z[529],$kr);
}my($hr,$gq,$gr)=(localtime(&at($^T)))[3,4,5];$gq++;$gr+=1900;
$ao->{"day_$hr".$z[530]}=$z[531];$ao->{"mon_$gq".$z[530]}=$z[531];
$ao->{"year_$gr".$z[530]}=$z[531];foreach(split(/ /,$kr->{$z[74]}))
{if(/^ufile/&&!$ao->{$_}){$ao->{$_}=$z[532];}}$ao->{$z[522]}
=&as($ab{$z[40]},&at($^T));$ao->{$z[66]}=&as($ab{$z[40]},&at($^T));
$ao->{$z[533]}=$ai{$z[50]}||"unknown user";$ao->{$z[534]}=$ai{$z[50]}
||"unknown user";return$ao;}sub kv{my($kr,$ao)=@_;if($ab{$z[133]}{$z[134]}{$z[535]})
{&ky($z[535],$ao);}else{&ky($z[517],$ao);}exit;}sub kw{my$kr
=shift;$ad{$z[526]}=$kr->{$z[145]};$ad{$z[527]}=$kr->{$z[50]};
&gb($kr->{$z[147]},{});my($ls)=int$ag{$kr->{$z[50]}.$z[536]};
my$ao={};<($kr,$ao,$ls)||&ak($z[537],$ls);return$ao;}sub
kx{my($kr,$ao)=@_;foreach(split(/ /,$kr->{$z[74]})){if(/^ufile/
&&!$ao->{$_}){$ao->{$_}=$z[532];}}foreach(keys%{$ao}){$ao->{$_}
=~s/\&/&/g;$ao->{$_}=~s/\"/"/g;$ao->{$_}=~s/\</g;
$ao->{$_}=~s/\>/>/g;}foreach(keys%{$ao}){if(!/\W/&&$ao->{$_}
!~/\W/){$ao->{$_.$z[516].$ao->{$_}.$z[538]}=$z[539];$ao->{$_.$z[516].$ao->{$_}.$z[530]}
=$z[531];}}$ao->{$z[522]}=&as($ab{$z[40]},&at($ao->{$z[522]}))
if$ao->{$z[522]};$ao->{$z[66]}=&as($ab{$z[40]},&at($ao->{$z[66]}))
if$ao->{$z[66]};my%lu;<($ae{$z[193]},\%lu,$ao->{$z[533]})
if$ao->{$z[533]};$ao->{$z[533]}=$lu{$z[50]}||"unknown user";
<($ae{$z[193]},\%lu,$ao->{$z[534]})if$ao->{$z[534]};$ao->{$z[534]}
=$lu{$z[50]}||"unknown user";return$ao;}sub la{my$kr=shift;
$ad{$z[526]}=$kr->{$z[145]};$ad{$z[527]}=$kr->{$z[50]};&gb($kr->{$z[147]},
{});my($ls)=int($ag{$kr->{$z[50]}.$z[540]})||int($ag{$z[48]});
my($ao)={};<($kr,$ao,$ls)||&ak($z[537],$ls);return$ao;}sub
lb{my$kr=shift;$ad{$z[526]}=$kr->{$z[145]};$ad{$z[527]}=$kr->{$z[50]};
&gb($kr->{$z[147]},{});my($ls)=$ag{$z[48]}||$ag{$kr->{$z[50]}.$z[540]};
my$ao={};&co();<($kr,$ao,$ls)||&ak($z[537],$ls);&lv($kr,$ls)
||die($z[541].$ls);&cp();foreach(split(/ /,$kr->{$z[74]})){
if(/^ufile/&&$ao->{$_}){if(-e"$ac{'dir_upload'}/$ao->{$_}")
{unlink("$ac{'dir_upload'}/$ao->{$_}");}}}if(defined&{$kr->{$z[171]}})
{&{$kr->{$z[171]}}($ls,$z[173],$ao);}return$ao;}sub ld{my($kr,
$ao)=@_;if(!$ac{$z[542]}){&kz($kr,$z[174]);}&ky($z[543],$ao);
exit;}sub lf{my$kr=shift;$ad{$z[526]}=$kr->{$z[145]};$ad{$z[527]}
=$kr->{$z[50]};&gb($kr->{$z[147]},{});my($ls)=int($ag{$z[48]});
my$le={};if($kr->{$z[528]}){my($bj)=&lr($kr);if($ls&&$bj>$kr->{$z[528]})
{&ky($z[529],$kr);}elsif(!$ls&&$bj>=$kr->{$z[528]}){&ky($z[529],$kr);
}}if($ls){<($kr,$le,$ls)||die("ui_save : Can't find record #$ls");
}return($le);}sub lh{my($lo)=$_[0]->{$z[50]}||die($z[544]);
my($ls)=int($ag{$z[48]});my(%lo)=%{$_[1]||{}};my(%es,%fm,$ei,%lg,%ao);
if(!$ac{$z[545]}){die("ui_save_uploads: No upload directory has been defined in setup options!\n");
}if(!-d$ac{$z[545]}){die("ui_save_uploads: Upload directory '$ac{'dir_upload'}' doesn't exist!\n");
}if(!-w$ac{$z[545]}){die("ui_save_uploads: Upload directory isn't writable!\n");
}%es=&az($ac{$z[545]});foreach(split(/ |\,/,$ac{$z[546]})){
$fm{$_}++if$_;}foreach$ei(split(/ /,$_[0]->{$z[74]})){if($ei
!~/^ufile/){next;}if($ag{$ei}){if($ac{$z[547]}&&length($ag{$ei})
>$ac{$z[548]}*1000){my$lw=length($ag{$ei});$lg{$z[549]}.=qq|$ag{$ei."_file"} ($lw bytes, file too large)
\n|;
$ag{$ei}=$lo{$ei};next;}if(!$fm{lc$ag{$ei.$z[325]}}){$lg{$z[549]}
.=qq|$ag{$ei."_file"} ('$ag{$ei.'_ext'}' files not accepted)
\n|;
$ag{$ei}=$lo{$ei};next;}if($lo{$ei}&&$es{$lo{$ei}}){unlink("$ac{'dir_upload'}/$lo{$ei}");
}my($lx);my($ly)=lc$ag{$ei.$z[324]};my($lz)=lc$ag{$ei.$z[325]};
my($ma)=$z[550];$ly=~s/\.[^\.]*$//g;$ly=~s/[^a-z0-9_\-]/_/g;
$lz=~s/[^a-z0-9_\-]/_/g;$lx="$ly.$lz";if(-e"$ac{'dir_upload'}/$lx")
{do{$ma=sprintf($z[421],++$ma);$lx=$ly."_$ma.$lz";}while(-e
"$ac{'dir_upload'}/$lx");}open(AB,">$ac{'dir_upload'}/$lx")
||die($z[551]."$lx $!\n");binmode AB;print AB$ag{$ei};close(AB);
if($lx=~/\.(gif|jpg|jpeg|png)$/i){my($iw,$ix,$mb)=&mc("$ac{'dir_upload'}/$lx");
if(($ac{$z[552]}&&$ix>$ac{$z[552]})||($ac{$z[553]}&&$iw>$ac{$z[553]}))
{unlink("$ac{'dir_upload'}/$lx");$lg{$z[549]}.=qq|$ag{$ei."_file"} (${ix}x$iw, image too big)
\n|;
$ag{$ei}=$lo{$ei};next;}}$ag{$ei}=$lx;}elsif($ag{$ei.$z[324]})
{if($lo{$ei}&&$es{$lo{$ei}}){unlink("$ac{'dir_upload'}/$lo{$ei}");
}$lo{$ei}='';}else{$ag{$ei}=$lo{$ei};}}return\%lg;}sub li{my
($kr,$le)=@_;my($ls)=int($ag{$z[48]});$ag{$z[522]}=$ls?$le->{$z[522]}
:$^T;$ag{$z[533]}=$ls?$le->{$z[533]}:$ai{$z[48]};$ag{$z[554]}
=$ls?$le->{$z[554]}:$ai{$z[48]};$ag{$z[66]}=$^T;$ag{$z[534]}
=$ai{$z[48]};my$md;foreach$md($kr->{$z[74]}=~/\bufile([^ ]*)\b/g)
{if($kr->{$z[74]}=~/\bimagewidth\Q$md\E\b/){($ag{$z[555].$md},
$ag{$z[556].$md})=&mc($ac{$z[545]}.$ag{$z[557].$md});}}}sub
lj{my($kr,$le)=@_;my($ls)=int($ag{$z[48]});if($ls){&dx($kr,
\%ag,$ls);}else{$ag{$z[48]}=&eb($kr,\%ag,$ls);}if(defined&{$kr->{$z[171]}})
{&{$kr->{$z[171]}}($ag{$z[48]},$z[558],$le);}}sub lk{my($kr,
$lg)=@_;if(keys%{$lg}){undef$ac{$z[548]}if!$ac{$z[547]};$lg->{$z[48]}
=$ag{$z[48]};$lg->{$z[559]}=&bu($z[559],\%ac)if$ac{$z[548]};
$lg->{$z[560]}=&bu($z[560],\%ac)if$ac{$z[552]};$lg->{$z[561]}
=&bu($z[561],\%ac)if$ac{$z[553]};$lg->{$z[562]}=&bu($z[562],
{$z[546]=>$ac{$z[546]}?$ac{$z[546]}:$z[563]});&ky($z[564],$lg);
exit;}}sub ll{my($kr)=@_;if(!$ac{$z[565]}){&kz($kr,$z[174]);
}&ky($z[566],\%ag);exit;}sub lq{my$ao=shift;&ky($z[174],$ao);
exit;}sub ln{my($kr,$lm)=@_;$ad{$z[526]}=$kr->{$z[145]};$ad{$z[527]}
=$kr->{$z[50]};if(ref($kr)ne$z[227]){die$z[567]."\n";}&gb($kr->{$z[147]},
{});if($ag{$kr->{$z[50]}.$z[568]}){my$me={};while($ah{$kr->{$z[50]}.$z[569]}
=~/(.*?)\t(.*?)\t/g){$me->{$1}=$2;}$lm->{$z[57]}=$ag{$z[570]}
||$me->{$z[57]};}else{while($ah{$kr->{$z[50]}.$z[569]}=~/(.*?)\t(.*?)\t/g)
{$lm->{$1}=$2;}foreach(keys%{$lm}){if(defined$ag{$z[516].$_})
{if($_ ne$z[57]&&$_ ne$z[520]){$lm->{$z[520]}=1;}$lm->{$_}=
$ag{$z[516].$_};}}}&mf($kr->{$z[50]}.$z[569],join("\t",map{
$_,$lm->{$_}}keys%{$lm})."\t");foreach(keys%{$lm}){$ad{$z[516]
.$_}=$lm->{$_};$ad{$z[516].$_.$z[516].$lm->{$_}.$z[530]}=$z[531];
}return$lm;}sub lp{my($kr,$ap,$lm,$df,$dg)=@_;my%ao;my$iz=sub
{$ao{$z[571]}.=&{$ap}(@_);};($ao{$z[572]},$ao{$z[573]},$ao{$z[574]},
$ao{$z[575]},$ao{$z[576]},$ao{$z[577]})=&mg($kr,$iz,$lm->{$z[520]},
$lm->{$z[57]},$df,$dg);unless($ao{$z[571]}){if($ab{$z[133]}{$z[134]}{$z[578]}
&&scalar grep{$_ ne$z[57]&&$_ ne$z[520]&&$lm->{$_}ne''}keys
%{$lm}){$ao{$z[571]}=&bu($z[578],{});}else{$ao{$z[571]}=&bu($z[128],
{});}}return\%ao;}sub cl{my$kr=shift;my($df,$dg);my$lm={$z[57]
=>$af{$z[519]}{$z[57]},$z[520]=>1,$z[82]=>'',};$lm=&ln($kr,
$lm);foreach(split(/\s+/,$kr->{$z[79]})){push(@$dg,[$_,$z[283],
$lm->{$z[82]}]);}my$ap=sub{my$lo=shift;$lo->{$z[579]}=$aj[$lo->{$z[580]}];
if(!defined$lo->{$z[521]}&&$lo->{$z[19]}){my$hu=&hh(0,0,0,$lo->{$z[20]},$lo->{$z[19]}-1,$lo->{$z[18]});
$lo->{$z[521]}=&as($ab{$z[96]},$hu);}$lo->{$z[522]}=&as($ab{$z[40]},int($lo->{$z[522]}))
if$lo->{$z[522]};$lo->{$z[66]}=&as($ab{$z[40]},int($lo->{$z[66]}))
if$lo->{$z[66]};$ad{$z[523]}=$ad{$z[523]}eq$z[524]?$z[525]:
$z[524];return&bu($z[122],$lo);};my$ao=&lp($kr,$ap,$lm,$df,
$dg);&lq($ao);}sub pf{my$kr=shift;&co();my$le=&lf($kr);my$lg
=&lh($kr,$le);&li($kr,$le);my%mh;if(&mi($kr,\%mh,$z[581],$ag{$z[581]}))
{if($mh{$z[48]}!=$le->{$z[48]}){&cp();&ky($z[582],\%ag);}}if
($ag{$z[48]}==$ai{$z[48]}&&$ag{$z[580]}<9){&cp();&ky($z[583],
{});}&lj($kr,$le);my%mj;if(&mi($ae{$z[198]},\%mj,$z[48],$ag{$z[48]}))
{&dx($ae{$z[198]},\%ag,$ag{$z[48]});}&cp();&lk($kr,$lg);&ll($kr);
}sub pg{my$kr=shift;if(!$ac{$z[518]}){&kz($kr,$z[173]);}my$ao
=&la($kr);if($ao->{$z[48]}==$ai{$z[48]}&&$ag{$z[580]}<9){&ky($z[583],
{});}&ky($z[518],$ao);}sub ck{my$kr=shift;my$ls=$ag{$z[48]}
||$ag{$kr->{$z[50]}.$z[540]};if($ls==$ai{$z[48]}&&$ag{$z[580]}
<9){$ad{$z[526]}=$kr->{$z[145]};$ad{$z[527]}=$kr->{$z[50]};
&gb($kr->{$z[147]},{});&ky($z[583],{});}&co();<($ae{$z[193]},
{},$ai{$z[48]})||&mk($z[584],{});my$ao=&lb($kr);&lv($ae{$z[198]},
$ls);&cp();&ld($kr,$ao);}sub ph{my$jg=shift;if($ac{$z[585]}
eq$z[586]){my%jh=(host=>$ac{$z[587]},helo=>$af{$z[588]}{$z[589]},
timeout=>$af{$z[588]}{$z[590]},pop3_auth=>$ac{$z[591]},pop3_host
=>$ac{$z[592]},pop3_user=>$ac{$z[593]},pop3_pass=>$ac{$z[594]});
&ml($jg,\%jh)||die("Error sending message: $ab{'error'}
\n");
}elsif($ac{$z[585]}eq$z[595]){if(!-e$ac{$z[596]}){die("sendmail: can't find sendmail program '$ac{'mail_sendmail'}'\n");
}local(*AL);my($jr)=&ji($jg);open(AL,"|$ac{'mail_sendmail'} -f $jr -t")
||die"Can't open $ac{'mail_sendmail'} : $!";print AL$jg;close(AL);
}elsif(!$ac{$z[585]}){die("sendmail: no mailer specified in setup options!\n");
}else{die("sendmail: unknown mailer '$ac{'mail_mailer'}' specified!\n");
}}sub pi{my($fb)=$_[0];my($mm)=$ag{$z[597]}||die("browse: you must pass a name/value for the 'fieldname'!\n");
my(%ao,$fc);if($fb ne$z[598]&&$fb ne$z[599]){die("browse: the first argument must be either 'dir' or 'file'!\n");
}if($ag{$z[600]}){&mn($z[601].$z[602].$ab{$z[0]}.$z[603]);}
if($ag{$z[604]}){&mn($z[605].$z[602].$ab{$z[0]}.$z[603]);}if
($ag{$z[598]}){&mn($z[606].$z[602].$ab{$z[0]}.$z[603]);}if(!-d
$ac{$z[607]}){delete$ac{$z[607]};}if($ag{$z[608]}){if(-f$ag{$z[608]})
{$ag{$z[608]}=~s!^(.+)(\\|/).*?$!$1!;}if(-d$ag{$z[608]}){$ag{$z[598]}
=$ag{$z[608]};}}if($af{$z[609]}){$ag{$z[598]}=$ac{$z[607]};
}&gb("_browse_$fb.html",{});my$mo="/";$ao{$z[597]}=$ag{$z[597]};
if($ag{$z[600]}){$ao{$z[610]}=$ag{$z[610]};if(!$ag{$z[610]})
{$ad{$z[611]}=$z[612];}elsif($ag{$z[610]}=~m/[^\w\-]/i){$ad{$z[611]}
=$z[613];}elsif(!mkdir("$ag{'cdir'}$mo$ag{'mkdir_name'}",0777)){
$ad{$z[611]}=$z[614].$!;}if($ad{$z[611]}){$ad{$z[611]}=&bu($z[611],\%ad);
}}if($ag{$z[604]}){local(*AB);$ao{$z[615]}=$ag{$z[615]};if(!$ag{$z[615]})
{$ad{$z[616]}=$z[617];}elsif($ag{$z[615]}=~m/[^\w\-\.]/i){$ad{$z[616]}
=$z[618];}elsif(-e"$ag{'cdir'}$mo$ag{'mkfile_name'}"){$ad{$z[616]}
=$z[619];}elsif(!open(AB,">$ag{'cdir'}$mo$ag{'mkfile_name'}"))
{$ad{$z[616]}=$z[620].$!;}close(AB);if($ad{$z[616]}){$ad{$z[616]}
=&bu($z[616],\%ad);}}$ao{$z[598]}=$ag{$z[598]}||$ac{$z[607]}
||$ab{$z[512]};$ao{$z[598]}=~s/^(.+)(\\|\/)+$/$1/;$ao{$z[621]}
=$ao{$z[598]};$ao{$z[621]}=~s!^([a-z]:)!$1/..!i;$ao{$z[622]}
=($ao{$z[598]}=~m#^(.*)[\\/]#,$1||$mo);$ao{$z[623]}=&gc($ao{$z[622]});
$ao{$z[174]}.=&bu($z[622],\%ao)if($ao{$z[598]}=~m!.+(\\|/)!);
if(!-e$ao{$z[598]}){$ao{$z[500]}=$z[624];}elsif(!-r$ao{$z[598]})
{$ao{$z[500]}=$z[625];}if($ao{$z[500]}){print"Content-type: text/html\n\n"
unless($ab{$z[626]}++);$ao{$z[174]}.=&bu($z[500],\%ao);print
&gb($z[627],\%ao);exit;}opendir(AC,"$ao{'dir2'}");my@fc=sort
{lc$a cmp lc$b}grep(!/^\.+$/,readdir(AC));closedir(AC);my($az);
foreach$az(@fc){-d"$ao{'dir'}$mo$az"||next;$ao{$z[50]}=$az;
$ao{$z[628]}="$ao{'dir'}$mo$az";$ao{$z[628]}=~s/$mo+/$mo/g;
$ao{$z[629]}=&gc($ao{$z[628]});($ao{$z[630]},$ao{$z[631]})=
(stat($ao{$z[628]}))[7,9];next if$ao{$z[631]}eq"";$ao{$z[632]}
=&as($ab{$z[40]},$ao{$z[631]});$ao{$z[174]}.=&bu($z[598],\%ao);
$fc++;}my($es);foreach$es(@fc){-d"$ao{'dir'}$mo$es"&&next;$ao{$z[50]}
=$es;$ao{$z[628]}="$ao{'dir'}$mo$es";($ao{$z[630]},$ao{$z[631]})
=(stat($ao{$z[628]}))[7,9];next if$ao{$z[631]}eq"";if($ao{$z[630]})
{$ao{$z[630]}=(int($ao{$z[630]}/1000)||1)."KB";}else{$ao{$z[630]}
="0KB";}$ao{$z[632]}=&as($ab{$z[40]},$ao{$z[631]});$ao{$z[628]}
=~s/'/\\'/g;$ao{$z[628]}=~s/\\/\\\\/g;if(-f"$ao{'dir'}$mo$es")
{$ao{$z[174]}.=&bu($z[599],\%ao);}else{$ao{$z[174]}.=&bu($z[633],\%ao);
}$fc++;}if(!$fc){$ao{$z[174]}.=&bu($z[634],{});}print"Content-type: text/html\n\n"
unless($ab{$z[626]}++);print&gb("_browse_$fb.html",\%ao);exit;
}sub pj{my($jv,$jy);if($ENV{$z[318]}=~/^[\w\-]+\.gif$/){$jv
=$z[635]."\n\n";}elsif($ENV{$z[318]}=~/^[\w\-]+\.jpg$/){$jv
=$z[636]."\n\n";}else{return;}$jy=&gb($ENV{$z[318]},{},$z[334]);
if($jy){binmode(STDOUT);print$jv ;print$jy ;exit;}}sub at{my
$hu=$_[0]||die("time_adj: first argument must be time()\n");
if($ac{$z[637]}eq$z[535]){$hu+=$ac{$z[638]}*60*60;}if($ac{$z[637]}
eq$z[639]){$hu-=$ac{$z[638]}*60*60;}if($ac{$z[640]}eq$z[535])
{$hu+=$ac{$z[641]}*60;}if($ac{$z[640]}eq$z[639]){$hu-=$ac{$z[641]}*60;
}return$hu;}sub pk{my($ap,$mp,$mq,$mr,%mj);my(%ao,%ms);if(!$ag{$z[642]}
&&!$ah{$z[581]}){&mk(undef,\%ao);}if($ag{$z[642]}){($mp,$mq)
=(lc$ag{$z[581]},lc$ag{$z[643]});if(!$mp&&!$mq){&mk($z[584],
\%ao);}if(!$mp||!$mq){&mk($z[584],\%ao);}$ap=sub{if(lc$ms{$z[581]}
eq$mp&&lc$ms{$z[643]}eq$mq){$mr=$ms{$z[48]};}};&av($ae{$z[193]},
$ap,\%ms);if(!$mr){&mk($z[584],\%ao);}<($ae{$z[193]},\%ms,
$mr);$ms{$z[522]}=$^T;$ms{$z[66]}=$^T;&dx($ae{$z[198]},\%ms,
$mr);}else{($mp,$mq)=(lc$ah{$z[581]},lc$ah{$z[643]});if(!$mp
||!$mq){&mk($z[644],\%ao);}$ap=sub{if(($af{$z[645]}&&$ms{$z[66]}
<$^T-60*$af{$z[645]})||$ms{$z[66]}<$^T-60*60*24){&lv($ae{$z[198]},
$ms{$z[48]});}elsif(lc$ms{$z[581]}eq$mp&&lc$ms{$z[643]}eq$mq)
{$mr=$ms{$z[48]};}};&av($ae{$z[198]},$ap,\%ms);if(!$mr){&mk($z[644],
\%ao);}<($ae{$z[198]},\%ms,$mr);$ms{$z[66]}=$^T;&dx($ae{$z[198]},
\%ms,$mr);}&mf($z[581],$mp);&mf($z[643],$mq);return%ms;}sub
mk{if(!$ab{$z[626]}++){print$z [646]."\n\n";}my($jz)=$_[0];
my(%ao)=%{$_[1]||{}};&gb($z[647],{});foreach(keys%ao){$ao{$_}
=&ff($ao{$_});}if($jz&&!$ab{$z[133]}{$z[134]}{$jz}){die($z[648]."'$jz' isn't defined!\n");
}if($jz){$ao{$z[549]}=&bu($jz,\%ao);}print&bu($z[649],{});if
($jz){print&bu($z[650],\%ao);}else{print&bu($z[642],\%ao);}
print&bu($z[651],{});if($ab{$z[499]}){print"
";print"
$ab{'debug_output'}"
if($ab{$z[314]});}&mt();exit;}sub pl{&gb($z[647],{});&mf($z[581],'');
&mf($z[643],'');$ac{$z[652]}=~s/^\s+|\s+$//g;if($ac{$z[652]}
&&$ENV{$z[318]}=~/logoff/i){print"Content-type: text/html\n\n";
print qq|Stack Trace ($fe) called from ($es) line ($dy) ";print" $od")],
$z[276]=>[("Warning: Persistent Filelock!","This web application uses temporary 'file locks' to ensure than only one user can update data at a time. The program was halted while in the middle of writing data and the file lock will need to be removed manually to avoid data corruption. Please ask your server administrator to remove the following directory: If you are using a Mac, try disabling this setting and re-uploading all the files, otherwise, contact support for assistance. ")],
$z[773]=>[("Publishing Error","The program cannot create or write to the file: Stack Trace ($fe) called from ($es) line ($dy) /\n\n/gm;
}foreach($og,$lg){s/<[^>]*>//gm;}print"\n$ab{'prog_name'} v$ab{'prog_ver'}\n$og\n$lg\n";
}else{if(!$ab{$z[626]}++){print"Cache-Control: no-cache\nPragma: no-cache\nExpires: -1\n";
print"Content-type: text/html\n\n";}my$oi=$z[780]if$oe;print
qq|\n\n ";print"
";
my$cx=0;while(my($es,$dy,$fe)=(caller($cx++))[1,2,3]){print
qq!
\n!;}}if($ab{$z[499]})
{print"$ab{'debug_output'}"if($ab{$z[314]});
}&mt();exit;}sub mt{print$z [709]."\n";print$ad {$z[696]}.$z[710]
.$ab{$z[4]}.$z[711].$ab{$z[712]}.$z[29].$ab{$z[713]}.")\n";
print$z [714].$ad{$z[688]}.$z[715].$ad{$z[684]}.$z[715].$ad{$z[685]}
."\n";printf($z[716]."\n",time()-$^T);print$z [717]."\n";}sub
pp{my(@fc)=map"$ab{'datadir'}$ae{$_}{'datafile'}",keys%ae;my(@ni)
=($ab{$z[278]});my($az,$es,$nj);foreach$az(sort@ni){if($az
eq""){next;}if(!-d$az||!-w$az){$nj.="$az\n";}}foreach$es(sort
@fc){$es=~s/\\/\//g;1 while$es=~s!/[^/]+/\.\./!/!;if(-f$es&&
!-w$es){$nj.="$es\n";}}if($nj){&ak($z[277],$nj);}}sub mw{return
unless$af{$z[609]};my$jg=shift;&mk($z[718],{$z[549]=>$jg});
}sub mn{return unless$af{$z[609]};my$jg=shift;$jg=&gc($jg);
print"Content-type: text/html\n\n";print qq|\n|
;exit;}sub pq{&gb($ae{$z[200]}{$z[147]},{});my%nk;my$nl;foreach
$nl(keys%{$ab{$z[719]}}){my%ao=($z[720]=>$nl,$z[721]=>$ab{$z[719]}{$nl}
);$nk{$nl}[0]=&bu($z[722],\%ao);$nk{$nl}[1]=&bu($z[723],\%ao);
}foreach$nl(keys%{$ab{$z[719]}}){my$nm=join'',map{$nk{$_}[$nl
==$_?1:0]}sort keys%{$ab{$z[719]}};$ad{$z[724].$nl}=&bu($z[725],
{$z[726]=>$nm});}}1;;sub pr{my$nn=shift||die("ip2num : no ip or host specified!\n");
my($a,$b,$np,$nq,$ls);if($nn=~/[^0-9\.]/){my$jt=gethostbyname("$nn.")
||die("ip2num: Can't find IP for host '$nn'!\n");($a,$b,$np,$nq)
=unpack($z[727],$jt);}else{($a,$b,$np,$nq)=split(/\./,$nn);
}$ls+=$nq*(256**0);$ls+=$np*(256**1);$ls+=$b*(256**2);$ls+=
$a*(256**3);return$ls;}sub ps{my$ls=shift||die("num2ip : no number specified!\n");
my($a,$b,$np,$nq);$a=($ls/256**3)% 256;$b=($ls/256**2)% 256;
$np=($ls/256**1)% 256;$nq=($ls/256**0)% 256;return join$z[29],
$a,$b,$np,$nq;}sub pt{my$hu=shift||time();$hu-=(localtime($hu))[6]
* 60*60*24;$hu-=(localtime($hu))[2]* 60*60;$hu-=(localtime($hu))[1]
* 60;$hu-=(localtime($hu))[0]* 1;return$hu;}sub pu{my$hu=shift
||time();$hu-=(localtime($hu))[2]* 60*60;$hu-=(localtime($hu))[1]
* 60;$hu-=(localtime($hu))[0]* 1;return$hu;}sub pv{my$gm=int
shift;my$gn=int($gm/60);my$go=int($gn/60);$gn%=60;$gm%=60;return
sprintf("%01d:%02d:%02d",$go,$gn,$gm);}sub pw{my$ls=reverse
int shift;$ls=~s/(...)\B/$1,/g;return reverse$ls;}sub by{my
$ls=shift;if($ls==int($ls)){return$ls;}elsif($ls<0){return
int$ls;}else{return int($ls)+1;}}sub px{my$ls=shift;if($ls==
int($ls)){return$ls;}elsif($ls<0){return int($ls)-1;}else{return
int$ls;}}sub bz{return(sort{$a<=>$b}@_)[0];}sub py{return(sort
{$a<=>$b}@_)[-1];}1;;sub aw{local(*AB);my($es,%ev,$fv,$fw);
%ev=%{$_[1]}if$_[1];my$nr=$_[3];my%fx;%fx=($z[332]=>0,$z[333]
=>0,$z[334]=>0,$z[53]=>0,$z[343]=>0);foreach(split(/ /,$_[2]))
{if(undef$fx{$_}){die($z[335]."'$_'\n");}$fx{$_}=1;}unless($fx{$z[332]})
{$fx{$z[333]}=1;}if(!$_[0]){die$z[336]."\n";}if(ref($_[1])ne
$z[227]){die$z[337]."\n";}if((!$fx{$z[333]}||!$ab{$z[133]}{$z[333]}{$_[0]})
){if(-e"$_[0]"){$es=$_[0];}else{foreach(grep/^templatedir/,
sort keys%ab){if(-e"$ab{$_}/$_[0]"){$es="$ab{$_}/$_[0]";last;
}}if(!$es){die$z[338]."'$_[0]'".$z[339]."\n";}}}if($fx{$z[333]}
&&$ab{$z[133]}{$z[333]}{$_[0]}){$fv=$ab{$z[133]}{$z[333]}{$_[0]};
}else{open(AB,"<$es")||die$z[340]."$es! $!\n";binmode(AB)if
($es=~/gif$/i||$es=~/jpg$/i);read(AB,$fv,-s AB);close(AB);}
if($fx{$z[334]}){return$fv;}if(!$fx{$z[333]}||!$ab{$z[133]}{$z[333]}{$_[0]})
{foreach$fw($fv=~m//g)
{$ab{$z[133]}{$z[134]}{"$nr$1"}=$2 if($fv=~m/(?:\r\n|\n)?(.*?)/is);
}$fv=~s/(?:\r\n|\n)?(.*?)//gis;
if($fx{$z[333]}){$ab{$z[133]}{$z[333]}{$_[0]}=$fv;}}if($fx{$z[53]})
{while($fv=~//i){my$ns=$1;
my$fy=$ns;$fy=~s/\$(\w+?)\$/defined$ad{$1}?$ad{$1}:$ev{$1}/eg;
unless($fy){$fv=~s///;next;
}if($fy=~m!^/!){;}else{if($_[4]){$fy="$_[4]$fy";}else{$fy=($es
=~m!(.*/)!)[0].$fy;}}my$ga;if(not$ab{$z[133]}{$z[728]}{$fy}++)
{my$nt;if(-e"$fy"){$nt++;}else{foreach(grep/^templatedir/,sort
keys%ab){if(-e"$ab{$_}/$fy"){$nt++;last;}}}if($nt){$ga=&aw($fy,
$_[1],"$_[2] inside_ssi",$z[729],$_[4]);}else{$ga="[ Program Error - Could not include file \"$fy\" via template include ]";
}}else{$ga="[ Program Error - Cyclic Include - The file '$fy' is included by itself (perhaps indirectly). Please check include files for other Include statements. ]";
}$fv=~s//$ga/;delete$ab{$z[133]}{$z[728]}{$fy};
}}else{$fv=~s///gi;}$fv=~s//$1/gi;
$fv=~s[\$(\w+?)(_ue|_he|_nbsp|_je)?\$][my$ek=defined$ad{$1}
?$ad{$1}:$ev{$1};if($2 eq$z[344]){$ek=&gc($ek);}if($2 eq$z[345])
{$ek=&gd($ek);}if($2 eq$z[346]){$ek=&gd($ek);$ek=~s/ / /g;
}if($2 eq$z[347]){$ek=&ge($ek);}$ek;]ge;return$fv;}sub br{my
($ht,$bk,$nr)=@_;$ht=~s|
(\s*\*\*\*image\d+(?:\:(\w+))?\*\*\*)|
$1|gsi;
$ht=~s[\s*\*\*\*image(\d+)(?:\:(\w+))?\*\*\*\s*][if($2 eq$z[730])
{$bk->{$z[119].$1}}else{my%nu;$nu{$z[731]}=$2||$af{$z[732]}{$z[733]}
||$z[734];$nu{$z[735]}=$bk->{$z[119].$1};$nu{$z[736]}=$bk->{$z[120]
.$1};$nu{$z[737]}=$bk->{$z[68].$1};$nu{$z[738]}=$bk->{$z[69]
.$1};&bu($nr.($nu{$z[736]}ne''?$z[736]:$z[739]),\%nu);}]eigo;
return$ht;}sub pz{my($ao,$bk,$nr,$nv,$nw,@nx)=@_;$ao->{$z[85]}
=&br($nv,$bk,$nr);$ao->{$z[87]}=&br($nw,$bk,$nr);my$cx;for$cx
(1..$ab{$z[6]}){$ao->{$z[121].$cx}=&br($nx[$cx-1],$bk,$nr);
}}sub qa{my($ao,$nv,$nw,@nx)=@_;($ao->{$z[85]}=$nv)=~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g;
($ao->{$z[87]}=$nw)=~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g;
my$cx;for$cx(1..$ab{$z[6]}){($ao->{$z[121].$cx}=$nx[$cx-1])
=~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g;}}sub qb{my$fv=shift;
my$hu=$ad{$z[39]}||&as($ab{$z[40]},$ac{$z[39]}||$^T);my$ny=
$z[740].$ab{$z[0]}.$z[741];$$fv=$z[742].$hu.$z[743].$ab{$z[0]}
.$z[744]."\n\n".$$fv;unless($$fv=~s/(]+>)/$ny\n$1/is)
{$$fv=~s/(]*>)/$1\n$ny\n/i;}}sub hh{my$iz;eval{local
$SIG{$z[745]}=undef;local$SIG{$z[746]}=undef;$iz=timelocal(@_);
};if($@){$iz=0;}return$iz;}sub hg{my$iz;eval{local$SIG{$z[745]}
=undef;local$SIG{$z[746]}=undef;$iz=timegm(@_);};if($@){$iz
=0;}return$iz;}1;;%af=&nz("$cc/config.ini");$ad{$z[747]}=$af{$z[519]}{$z[748]}
||"#336699";$ab{$z[278]}=$af{$z[278]}||$z[749];$ab{$z[276]}
=$af{$z[276]}||$z[750];$ab{$z[40]}=$af{$z[519]}{$z[40]}||$z[751];
$ab{$z[96]}=$af{$z[519]}{$z[96]}||$z[752];$ab{$z[98]}=$af{$z[519]}{$z[98]}
||$z[437];&ak($z[753])if!$ENV{$z[754]};&ak("macftp")if"¡"ne
"\xA1";&ak($z[755])if$ENV{$z[756]}&&!$af{$z[757]};%ab=(%ab,
$z[512]=>$cc,$z[758]=>$ca,$z[759]=>$ca,$z[63]=>$z[760],$z[761]
=>$z[762],$z[763]=>$z[764],$z[626]=>0,);foreach(qw(datadir filelock templatedir1 templatedir2 templatedir3 archive))
{if(ref($ab{$_})){next;}$ab{$_}="$cc/$ab{$_}"if(index($ab{$_},$z[29])
==0);$ab{$_}=~s|\\|/|g;1 while$ab{$_}=~s|/[^/]+/\.\./|/|;}<($ae{$z[200]},
\%ac,1);if(!$ac{$z[765]}){&ak($z[766]);}foreach(grep/^dir_/,
keys%ac){$ac{$_}="$cc/$ac{$_}"if index($ac{$_},$z[29])==0;$ac{$_}
=~tr|\\|/|;1 while$ac{$_}=~s|/[^/]+/\.\.||;}foreach(qw(prog_name prog_name2 prog_ver cgidir cgiurl publish_fileext))
{$ad{$z[516].$_}=$ab{$_};}foreach(qw(url_help reg1 reg2 reg3))
{$ad{$z[516].$_}=$ac{$_};}$ad{$z[27]}=$ac{$z[27]};$ad{$z[694]}
=$ac{$z[695]};$ad{$z[696]}=join$z[767],grep{$_}$ab{$z[0]},$ac{$z[697]};
$ad{$z[768]}||=$ac{$z[697]};%ag=&oa;%ah=&ob;}sub ak{my($oc)
=$ad{$z[131]};my($fb,$od,$oe)=@_;my(%of,$lg,$og);$od=&ff($od);
$ad{$z[769]}||="#336699";%of=($z[537]=>[("Can't find record # $od",
"The program can't find the specified record number in the database. This is usually because the record has already been erased. Reload the record list and try again.")],
$z[277]=>[("Warning: File/Directory not writeable!","This web application needs to be able to create and update it's data files. Please ask your server administrator to make the following files and directories writeable:
$od")],
$z[279]=>[($z[770],$z[771])],$z[772]=>[("Warning: Program corrupted during upload!",
"This is usually caused by Mac FTP clients that have an \"Translate ISO characters\" setting enabled.
$od
Please ask your server administrator to make sure the publish directory and publish file(s) are writable.")],
$z[755]=>[("Program doesn't support mod_perl","Your server is running $ENV{MOD_PERL}
This program doesn't support mod_perl. Please ask your server administrator to disable mod_perl for this program.")],
$z[753]=>[("This program can only be run through a web server.",
"")],$z[774]=>[($z[775],$z[776])],$z[777]=>[("No such file or directory",
"The program can't find the file or directory it's looking for. Please make sure the following file or directory exists:
$od")],
$z[778]=>[("Permission denied","The program doesn't have permission to access a required file. Please make sure the program has read and write access to the following directories and files:
$od")],
);my($oh)=$ad{$z[779]}||$of{$fb}[0]||"Program Message";if($of{$fb}[0])
{$og=$of{$fb}[0];$lg=$of{$fb}[1];}elsif($od&&$fb){$og=&ff($fb);
$lg=$od;}else{$og="Program Message";$lg=&ff($fb);}if(!$of{$fb}[1])
{$lg=~s/\n/
\n/g;}if($ab{$z[499]}){if(!$ENV{$z[754]})
{$lg.="\n\nSTACK TRACE\n";}else{$lg.="
";
}my$cx=0;while(my($es,$dy,$fe)=(caller($cx++))[1,2,3]){if(!$ENV{$z[754]})
{$lg.=qq!($fe) called from ($es) line ($dy)\n!;}else{$lg.=qq!
\n!;
}}}if(!$ENV{$z[754]}){foreach($og,$lg){s/
/\n/gm;s/$ab{'debug_output'}"
if($ab{$z[314]});print"";}}if($ab{$z[275]}){rmdir($ab{$z[276]})
&&undef$ab{$z[275]};}if($ENV{$z[754]}){printf($z[781]."\n",time()-$^T);
print$z [782]."\n\n";}exit;}sub bt{my($fw,$id,$oj)=@_;if(defined
$ab{$z[133]}{$z[134]}{$fw.$oj}){$fw.=$oj;}&bu($fw,$id);}sub
am{my@ok;my$cx;foreach$cx(1..3){my$ol=$ac{"sort${cx}field"};
next unless$ol;$ol="#$ol#"if$ac{"sort${cx}numeric"};$ol="-$ol"
if$ac{"sort${cx}reverse"};push@ok,$ol;}$ae{$z[13]}{$z[169]}
=join($z[783],@ok);}
# ----------------------------------------------------------------------------
# Programming by interactivetools.com, inc.