#!/usr/bin/perl
# ----------------------------------------------------------------------------
# Article Manager 1.31
# Copyright (C) 2003 interactivetools.com, inc. All Rights Reserved
# http://www.interactivetools.com/
# ----------------------------------------------------------------------------
# This program is protected by Canadian and international copyright laws. Any
# use of this program is subject to the the terms of the license agreement
# included as part of this distribution archive. Any other uses are strictly
# prohibited without the written permission of interactivetools.com and all
# other rights are reserved.
# -----------------------------------------------------------------------------
# Warning : Modifying this program violates your license agreement!
# -----------------------------------------------------------------------------
BEGIN{@z=('70726f675f6e616d65','41727469636c65204d616e61676'
.'572','70726f675f6e616d6532','6172746d616e','70726f675f7665'
.'72','312e3331','73706172655f6669656c6473','457870697265642'
.'055736572','44697361626c6564','4e65772055736572','52656775'
.'6c61722055736572','41646d696e6973747261746f72','6172636869'
.'7665','617274','6461746166696c65','636174','6361745f6e756d',
'253034642530326425303264','79656172','6d6f6e','646179','79'
.'65617232','6d6f6e32','64617932','75726c5f736561726368','73'
.'65617263685f75726c','75726c5f67696e646578','75726c5f707562'
.'6c697368','7075626c6973685f696e6465785f66696c6570726566697'
.'8','2e','7075626c6973685f66696c65657874','66696c655f676361'
.'7465676f72696573','7075626c6973685f6361745f6c6973745f66696'
.'c65707265666978','66696c655f67686561646c696e6573','7075626'
.'c6973685f686561646c696e655f66696c65707265666978','66696c65'
.'5f686561646c696e65735f6279636174','7075626c6973685f73616d7'
.'06c65725f66696c65707265666978','66696c655f736561726368','7'
.'075626c6973685f7365617263685f666f726d5f66696c6570726566697'
.'8','676c6f62616c5f75706461746564','6461746574696d655f666f7'
.'26d6174','676361745f6e616d65','66696c655f63617465676f72696'
.'573','66696c655f686561646c696e6573','7075626c6973685f63617'
.'45f686561646c696e655f66696c65707265666978','68696464656e',
'63617465676f72795f70756c6c646f776e','3c6f7074696f6e2076616'
.'c75653d22','6e756d','223e','6e616d65','617263686976655f707'
.'56c6c646f776e','7365617263682f616476616e6365645f7365617263'
.'682e68746d6c','737369','6469725f7075626c697368','74656d706'
.'c617465','7365617263682f7365617263685f726573756c74732e6874'
.'6d6c','70657270616765','7374617274','696e5f','696e6465782f',
'686561646c696e65732f','7365617263682f','74656d706c61746564'
.'697231','2f','536f7272792c207468652074656d706c61746520796f'
.'7527766520726571756573746564206973206e6f742061207265676973'
.'74657265642074656d706c6174652e','75706461746564','7566696c'
.'655f696d616765','696d6167656865696768745f696d616765','696d'
.'61676577696474685f696d616765','7075626c6973685f73706563696'
.'679','75726c5f75706c6f6164','7075625f66696c657072656669785'
.'f73706563696679','7075625f66696c65707265666978','7075626c6'
.'973685f6361745f66696c65707265666978','75726c5f736561726368'
.'5f63617465676f7279','6669656c6473','73756d6d617279','636f6'
.'e74656e74','7370617265','737461747573','736561726368','696'
.'76e6f72655f776f72645f626f756e646172696573','5c62','6b65797'
.'76f7264','7365617263685f6d61746368','6172745f','6172745f73'
.'756d6d617279','73756d6d6172795f666f726d6174','6172745f636f'
.'6e74656e74','636f6e74656e745f666f726d6174','6172745f737061'
.'7265','666f726d61745f7370617265','686f7572','616d706d','70'
.'6d','6d696e','6172745f64617465','646174655f666f726d6174',''
.'6172745f74696d65','74696d655f666f726d6174','6361745f6e616d'
.'65','6361745f696d616765','6361745f696d6167655f686569676874',
'6361745f696d6167655f7769647468','6172745f7072696e7465725f7'
.'5726c','616c6c6f775f6172745f66696c656e616d65','66696c656e6'
.'16d65','7075626c6973685f6172745f7072696e7465725f66696c6570'
.'7265666978','75726c5f696e646578','64657461696c5f6c696e6b',
'7075626c6973685f6172745f66696c65707265666978','76696577657'
.'25f70617468696e666f','7669657765725f75726c','6172745f6e756'
.'d','3f617263686976653d','266e756d3d','6172745f74797065','6'
.'c696e6b','7566696c655f646f63756d656e74','6172745f696d61676'
.'55f75726c','63617074696f6e','6172745f6669656c64','726f77',
'726f775f73756d6d617279','726f775f6c696e6b','726f775f756669'
.'6c65','61727469636c655f6c697374','32','6e6f745f666f756e64',
'70726576','707265765f75726c','5f63676975726c','3f','54656d'
.'706c617465','63656c6c','6e6f5f70726576','6e657874','6e6578'
.'745f75726c','6e6f5f6e657874','7365617263685f7470616765','7'
.'365617263685f6370616765','7365617263685f6c6e756d','7365617'
.'263685f686e756d','6361745f75706461746564','5343524950545f4'
.'6494c454e414d45','6d656e755f686561646572','41727469636c652'
.'0456469746f72','6d656e755f74656d706c617465','5f6172745f6d6'
.'56e75732e68746d6c','61727469636c652e646174','6e756d2063726'
.'56174656420637265617465645f6279207570646174656420757064617'
.'465645f6279206d6f6e206461792079656172206e616d652073756d6d6'
.'1727920636f6e74656e7420','73756d6d6172795f666f726d61742063'
.'6f6e74656e745f666f726d61742063617420','7566696c655f696d616'
.'76531207566696c655f696d61676532207566696c655f696d616765332'
.'07566696c655f696d61676534207566696c655f696d616765352075666'
.'96c655f696d61676536207566696c655f696d61676537207566696c655'
.'f696d61676538207566696c655f696d61676539207566696c655f696d6'
.'16765313020','63617074696f6e312063617074696f6e322063617074'
.'696f6e332063617074696f6e342063617074696f6e352063617074696f'
.'6e362063617074696f6e372063617074696f6e382063617074696f6e39'
.'2063617074696f6e313020','686f7572206d696e20616d706d206f776'
.'e6572206c696e6b206172745f74797065207566696c655f646f63756d6'
.'56e742068696464656e20','696d6167656e616d653120696d6167656e'
.'616d653220696d6167656e616d653320696d6167656e616d653420696d'
.'6167656e616d653520696d6167656e616d653620696d6167656e616d65'
.'3720696d6167656e616d653820696d6167656e616d653920696d616765'
.'6e616d65313020','696d61676577696474685f696d6167653120696d6'
.'1676577696474685f696d6167653220696d61676577696474685f696d6'
.'167653320696d61676577696474685f696d6167653420696d616765776'
.'96474685f696d6167653520696d61676577696474685f696d616765362'
.'0696d61676577696474685f696d6167653720696d61676577696474685'
.'f696d6167653820696d61676577696474685f696d6167653920696d616'
.'76577696474685f696d616765313020','696d6167656865696768745f'
.'696d6167653120696d6167656865696768745f696d6167653220696d61'
.'67656865696768745f696d6167653320696d6167656865696768745f69'
.'6d6167653420696d6167656865696768745f696d6167653520696d6167'
.'656865696768745f696d6167653620696d6167656865696768745f696d'
.'6167653720696d6167656865696768745f696d6167653820696d616765'
.'6865696768745f696d6167653920696d6167656865696768745f696d61'
.'6765313020','73746174757320','7370617265312073706172653220'
.'7370617265332073706172653420737061726535207370617265362073'
.'7061726537207370617265382073706172653920737061726531302073'
.'706172653131207370617265313220','7374616d7020','7566696c65'
.'5f696d6167653131207566696c655f696d6167653132207566696c655f'
.'696d6167653133207566696c655f696d6167653134207566696c655f69'
.'6d6167653135207566696c655f696d6167653136207566696c655f696d'
.'6167653137207566696c655f696d6167653138207566696c655f696d61'
.'67653139207566696c655f696d6167653230207566696c655f696d6167'
.'653231207566696c655f696d6167653232207566696c655f696d616765'
.'3233207566696c655f696d6167653234207566696c655f696d61676532'
.'3520','696d6167656e616d65313120696d6167656e616d65313220696'
.'d6167656e616d65313320696d6167656e616d65313420696d6167656e6'
.'16d65313520696d6167656e616d65313620696d6167656e616d6531372'
.'0696d6167656e616d65313820696d6167656e616d65313920696d61676'
.'56e616d65323020696d6167656e616d65323120696d6167656e616d653'
.'23220696d6167656e616d65323320696d6167656e616d65323420696d6'
.'167656e616d65323520','696d61676577696474685f696d6167653131'
.'20696d61676577696474685f696d616765313220696d61676577696474'
.'685f696d616765313320696d61676577696474685f696d616765313420'
.'696d61676577696474685f696d616765313520696d6167657769647468'
.'5f696d616765313620696d61676577696474685f696d61676531372069'
.'6d61676577696474685f696d616765313820696d61676577696474685f'
.'696d616765313920696d61676577696474685f696d616765323020696d'
.'61676577696474685f696d616765323120696d61676577696474685f69'
.'6d616765323220696d61676577696474685f696d616765323320696d61'
.'676577696474685f696d616765323420696d61676577696474685f696d'
.'616765323520','696d6167656865696768745f696d616765313120696'
.'d6167656865696768745f696d616765313220696d61676568656967687'
.'45f696d616765313320696d6167656865696768745f696d61676531342'
.'0696d6167656865696768745f696d616765313520696d6167656865696'
.'768745f696d616765313620696d6167656865696768745f696d6167653'
.'13720696d6167656865696768745f696d616765313820696d616765686'
.'5696768745f696d616765313920696d6167656865696768745f696d616'
.'765323020696d6167656865696768745f696d616765323120696d61676'
.'56865696768745f696d616765323220696d6167656865696768745f696'
.'d616765323320696d6167656865696768745f696d616765323420696d6'
.'167656865696768745f696d616765323520','66696c656e616d6520',
'7370617265313320737061726531342073706172653135207370617265'
.'3136207370617265313720737061726531382073706172653139207370'
.'617265323020','63617074696f6e31312063617074696f6e313220636'
.'17074696f6e31332063617074696f6e31342063617074696f6e3135206'
.'3617074696f6e31362063617074696f6e31372063617074696f6e31382'
.'063617074696f6e31392063617074696f6e32302063617074696f6e323'
.'12063617074696f6e32322063617074696f6e32332063617074696f6e3'
.'2342063617074696f6e323520','666f726d61745f7370617265312066'
.'6f726d61745f73706172653220666f726d61745f73706172653320666f'
.'726d61745f73706172653420666f726d61745f73706172653520666f72'
.'6d61745f73706172653620666f726d61745f73706172653720666f726d'
.'61745f73706172653820666f726d61745f73706172653920666f726d61'
.'745f7370617265313020666f726d61745f7370617265313120666f726d'
.'61745f7370617265313220666f726d61745f7370617265313320666f72'
.'6d61745f7370617265313420666f726d61745f7370617265313520666f'
.'726d61745f7370617265313620666f726d61745f737061726531372066'
.'6f726d61745f7370617265313820666f726d61745f7370617265313920'
.'666f726d61745f73706172653230','736f72746279','2d237374616d'
.'7023','7075626c6973685f737562','6d656e755f73756273','65726'
.'17365','6c697374','74656d70','4372656174652041727469636c65',
'5f7772697465725f6d656e75732e68746d6c','74656d702e646174',''
.'43617465676f727920456469746f72','5f6361745f6d656e75732e687'
.'46d6c','63617465676f72792e646174','6e756d20637265617465642'
.'0637265617465645f6279207570646174656420757064617465645f627'
.'9206e616d6520736f7264657220','74656d706c6174655f66696c6520'
.'61727469636c655f74656d706c6174655f66696c6520686561646c696e'
.'655f74656d706c6174655f66696c6520','7566696c655f696d6167652'
.'07075625f66696c65707265666978207075625f66696c6570726566697'
.'85f7370656369667920','706572706167655f696e6465782070657270'
.'6167655f686561646c696e65732068696464656e207072696e7465725f'
.'74656d706c6174655f66696c6520','696d61676577696474685f696d6'
.'1676520696d6167656865696768745f696d616765207075625f7065727'
.'06167655f7370656369667920','6469725f7075626c6973682075726c'
.'5f7075626c697368207075626c6973685f73706563696679206469725f'
.'75706c6f61642075726c5f75706c6f6164','23736f7264657223','41'
.'726368697665204d616e61676572','5f617263686976655f6d656e757'
.'32e68746d6c','617263686976652e646174','6e756d2063726561746'
.'56420637265617465645f6279207570646174656420757064617465645'
.'f6279206e616d6520636f756e74','236e756d23','6163636f756e74',
'5f6163636f756e745f6d656e75732e68746d6c','6163636f756e742e6'
.'461742e636769','6e756d206372656174656420637265617465645f62'
.'79207570646174656420757064617465645f6279206e616d6520696420'
.'70772061636c206e6f746573206361747320616c6c5f6361747320656d'
.'61696c5f6361747320656d61696c5f616c6c5f6361747320656d61696c'
.'5f6e6f74696669636174696f6e5f6576656e747320656d61696c','6e6'
.'16d65206964','73657373696f6e','73657373696f6e2e6461742e636'
.'769','7365747570','5f73657475705f6d656e75732e68746d6c','73'
.'657475702e6461742e636769','6e756d207469746c65626172','2063'
.'6f6e6669726d5f657261736520636f6e6669726d5f736176656420636f'
.'6e6669726d5f6572617365642073657475705f7761726e696e67','207'
.'5706c6f61646c696d69742075706c6f61646d61782075706c6f61645f6'
.'865696768742075706c6f61645f77696474682075706c6f61646578742'
.'06c686f7572206c686f75725f6f6666736574206c6d696e206c6d696e5'
.'f6f6666736574207265673120726567322072656733206420632069',''
.'206469725f62617365206469725f75706c6f6164206469725f7075626c'
.'697368','2075726c5f696d6167652075726c5f68656c702075726c5f7'
.'5706c6f61642075726c5f7075626c6973682075726c5f6c6f676f66662'
.'07365617263685f75726c','2064656661756c745f6175746f666f726d'
.'617420616c6c6f775f68746d6c20616c6c6f775f6172745f7479706573'
.'206175746f5f7075626c697368','207075626c6973685f696e6465785'
.'f66696c65707265666978207075626c6973685f686561646c696e655f6'
.'6696c65707265666978207075626c6973685f6361745f66696c6570726'
.'5666978207075626c6973685f6361745f686561646c696e655f66696c6'
.'5707265666978207075626c6973685f6172745f66696c6570726566697'
.'8207075626c6973685f6172745f7072696e7465725f66696c657072656'
.'66978207075626c6973685f6361745f6c6973745f66696c65707265666'
.'978207075626c6973685f73616d706c65725f66696c657072656669782'
.'07075626c6973685f66696c65657874','207075626c6973685f696e64'
.'65785f717479207075626c6973685f686561646c696e655f7174792070'
.'75626c6973685f6361745f717479207075626c6973685f6361745f6865'
.'61646c696e655f717479207075626c6973685f73616d706c65725f7174'
.'79','207075626c6973685f696e646578207075626c6973685f6865616'
.'46c696e6573207075626c6973685f636174207075626c6973685f63617'
.'45f686561646c696e6573207075626c6973685f61727469636c6520707'
.'5626c6973685f7072696e746572207075626c6973685f6c6973745f6f6'
.'65f63617473207075626c6973685f73616d706c6572','207075626c69'
.'73685f7365617263685f666f726d5f66696c6570726566697820707562'
.'6c6973685f7365617263685f666f726d','20676361745f6e616d65',''
.'20676c6f62616c5f75706461746564','20736669656c645f6e616d653'
.'120736669656c645f6e616d653220736669656c645f6e616d653320736'
.'669656c645f6e616d653420736669656c645f6e616d653520736669656'
.'c645f6e616d653620736669656c645f6e616d653720736669656c645f6'
.'e616d653820736669656c645f6e616d653920736669656c645f6e616d6'
.'5313020736669656c645f6e616d65313120736669656c645f6e616d653'
.'132','20736669656c645f6f726465723120736669656c645f6f726465'
.'723220736669656c645f6f726465723320736669656c645f6f72646572'
.'3420736669656c645f6f726465723520736669656c645f6f7264657236'
.'20736669656c645f6f726465723720736669656c645f6f726465723820'
.'736669656c645f6f726465723920736669656c645f6f72646572313020'
.'736669656c645f6f72646572313120736669656c645f6f726465723132',
'20736669656c645f747970653120736669656c645f7479706532207366'
.'69656c645f747970653320736669656c645f747970653420736669656c'
.'645f747970653520736669656c645f747970653620736669656c645f74'
.'7970653720736669656c645f747970653820736669656c645f74797065'
.'3920736669656c645f74797065313020736669656c645f747970653131'
.'20736669656c645f747970653132','207075626c6973685f73796e646'
.'9636174655f66696c65707265666978207075626c6973685f73796e646'
.'9636174655f717479207075626c6973685f73796e64696361746520776'
.'562666565645f67656e5f616374697665','2076206272616e64696e67'
.'20666f6f746572207374617469635f617263686976655f706167657320'
.'7669657765725f75726c207669657765725f70617468696e666f20616c'
.'6c6f775f6172745f66696c656e616d65','20736669656c645f6e616d6'
.'5313320736669656c645f6e616d65313420736669656c645f6e616d653'
.'13520736669656c645f6e616d65313620736669656c645f6e616d65313'
.'720736669656c645f6e616d65313820736669656c645f6e616d6531392'
.'0736669656c645f6e616d653230','20736669656c645f6f7264657231'
.'3320736669656c645f6f72646572313420736669656c645f6f72646572'
.'313520736669656c645f6f72646572313620736669656c645f6f726465'
.'72313720736669656c645f6f72646572313820736669656c645f6f7264'
.'6572313920736669656c645f6f726465723230','20736669656c645f7'
.'4797065313320736669656c645f74797065313420736669656c645f747'
.'97065313520736669656c645f74797065313620736669656c645f74797'
.'065313720736669656c645f74797065313820736669656c645f7479706'
.'5313920736669656c645f747970653230','20736f7274316669656c64'
.'20736f7274317265766572736520736f7274316e756d6572696320736f'
.'7274326669656c6420736f7274327265766572736520736f7274326e75'
.'6d6572696320736f7274336669656c6420736f72743372657665727365'
.'20736f7274336e756d65726963','2073756d6d6172795f6e616d65206'
.'36f6e74656e745f6e616d652073756d6d6172795f7479706520636f6e7'
.'4656e745f747970652073756d6d6172795f656e61626c656420636f6e7'
.'4656e745f656e61626c6564','20736669656c645f656e61626c656431'
.'20736669656c645f656e61626c65643220736669656c645f656e61626c'
.'65643320736669656c645f656e61626c65643420736669656c645f656e'
.'61626c65643520736669656c645f656e61626c65643620736669656c64'
.'5f656e61626c65643720736669656c645f656e61626c65643820736669'
.'656c645f656e61626c65643920736669656c645f656e61626c65643130'
.'20736669656c645f656e61626c6564313120736669656c645f656e6162'
.'6c6564313220736669656c645f656e61626c6564313320736669656c64'
.'5f656e61626c6564313420736669656c645f656e61626c656431352073'
.'6669656c645f656e61626c6564313620736669656c645f656e61626c65'
.'64313720736669656c645f656e61626c6564313820736669656c645f65'
.'6e61626c6564313920736669656c645f656e61626c65643230','20707'
.'5626c6973685f68696464656e5f696e64657820656d61696c5f6e6f746'
.'96669636174696f6e5f656e61626c6564206d61696c5f73656e6465725'
.'f656d61696c206d61696c5f73656e6465725f6e616d65206d61696c5f6'
.'d61696c6572206d61696c5f73656e646d61696c206d61696c5f736d747'
.'0206d61696c5f706f703361757468206d61696c5f706f7033206d61696'
.'c5f706f703375736572206d61696c5f706f703370617373','48415348',
'44425f5365656b203a2054686520666972737420617267756d656e7420'
.'6d75737420626520612048415348207265666572656e636521','44425'
.'f5365656b203a20546865207365636f6e6420617267756d656e74206d7'
.'5737420626520612048415348207265666572656e636521','44425f53'
.'65656b203a204e6f207365656b206669656c6420776173207370656369'
.'6669656421','43','6669656c646e','44425f4c697374203a2054686'
.'520666972737420617267756d656e74206d75737420626520612048415'
.'348207265666572656e636521','434f4445','44425f4c697374203a2'
.'0546865207365636f6e6420617267756d656e74206d757374206265206'
.'120434f4445207265666572656e636521','44425f4c697374203a2054'
.'686520746869726420617267756d656e74206d75737420626520612048'
.'415348207265666572656e636521','44425f4c697374203a20416e6f6'
.'e207375622024726f77636f6465206973206e6f7420646566696e65642'
.'1','44425f4c697374203a204e6f206461746166696c6520646566696e'
.'656420696e20646174616261736520646566696e6974696f6e20282544'
.'424465662921','6e','2d','44425f4c697374203a2044424465662d3'
.'e736f7274627920636f6e7461696e7320756e6b6e6f776e206669656c6'
.'4206e616d6520','a1','44425f4c69737450616765203a20546865206'
.'66972737420617267756d656e74206d757374206265206120484153482'
.'07265666572656e636521','44425f4c69737450616765203a20546865'
.'20746869726420617267756d656e74206d757374206265206120434f44'
.'45207265666572656e636521','44425f4c69737450616765203a20416'
.'e6f6e2073756220246d61746368636f6465206973206e6f74206465666'
.'96e656421','44425f4c69737450616765203a204e6f20646174616669'
.'6c6520646566696e656420696e20646174616261736520646566696e69'
.'74696f6e20282544424465662921','44425f4c69737450616765203a2'
.'044424465662d3e736f7274627920636f6e7461696e7320756e6b6e6f7'
.'76e206669656c64206e616d6520','44425f4c69737453617665203a20'
.'44424465662d3e736f7274627920636f6e7461696e7320756e6b6e6f77'
.'6e206669656c64206e616d6520','414c4c','bf25303278','7072696'
.'e7420224c6f636174696f6e3a20687474703a2f2f7777772e696e74657'
.'2616374697665746f6f6c732e636f6d2f6e6e223b','5f5f454e445f5f',
'44425f416464203a2054686520666972737420617267756d656e74206d'
.'75737420626520612048415348207265666572656e636521','44425f4'
.'16464203a20546865207365636f6e6420617267756d656e74206d75737'
.'420626520612048415348207265666572656e636521','736f72646572',
'44425f4c6f6164203a2054686520666972737420617267756d656e7420'
.'6d75737420626520612048415348207265666572656e636521','44425'
.'f4c6f6164203a20546865207365636f6e6420617267756d656e74206d7'
.'5737420626520612048415348207265666572656e636521','44425f4c'
.'6f6164203a204e6f207265636f7264206e756d62657220776173207370'
.'6563696669656421','44425f44656c203a20546865206669727374206'
.'17267756d656e74206d757374206265206120484153482072656665726'
.'56e636521','44425f44656c203a20546865207365636f6e6420617267'
.'756d656e74206d7573742062652061207265636f7264206e756d626572'
.'21','44425f53617665203a2054686520666972737420617267756d656'
.'e74206d75737420626520612048415348207265666572656e636521',''
.'44425f53617665203a20546865207365636f6e6420617267756d656e74'
.'206d75737420626520612048415348207265666572656e636521','444'
.'25f53617665203a204e6f207265636f7264206e756d626572207761732'
.'073706563696669656421','6d61785f66696c656c6f636b5f77616974',
'6578636c7573697665','4152524159','556e6b6e6f776e206669656c'
.'642022','2220696e20636f6e646974696f6e3c62723e3c62723e','4c'
.'494b45','4e4f54204c494b45','3d3d','3c','3e','3c3d','3e3d',
'213d','4245545745454e','4e4f54204245545745454e','494e','28',
'207c7c20','29','4e4f5420494e','2128','556e6b6e6f776e206f70'
.'657261746f722022','284066203d2073706c6974282fa12f2929','6d'
.'792040663b2020407b247265635f6e6f7061636b7d203d206772657020'
.'7b20','20262620','207d20407b247265635f6e6f7061636b7d3b','6'
.'d792040663b2020666f72656163682028407b247265635f6e6f7061636'
.'b7d29207b202069662028','29207b20246d617463685f6e6f7061636b'
.'7b24665b305d7d2b2b3b207d207d','66696c6573797374656d','3d',
'766172','436f756c646e27742066696e6420','21','66696c6573',''
.'64697273','646972203a20556e6b6e6f776e2066696c6520747970652'
.'03a20','26','64656275675f6f7574707574','6370203a2063616e27'
.'74207265616420','6370203a2063616e277420777269746520','434f'
.'4e54454e545f4c454e475448','51554552595f535452494e47','5265'
.'6164466f726d203a20496e7075742065786365656473206d617820696e'
.'707574206c696d6974206f6620','434f4e54454e545f54595045','52'
.'4551554553545f4d4554484f44','504f5354','5f70617468','5f666'
.'96c65','5f657874','474554','74727565','56','4d','41','44',
'6e6f2d6361636865','6361636865','706c61696e','54656d706c617'
.'4653a20556e6b6e6f776e2074656d706c61746520666c616720','5465'
.'6d706c617465203a204e6f2074656d706c6174652066696c6520776173'
.'2073706563696669656421','54656d706c617465203a2054686520736'
.'5636f6e6420617267756d656e74206d757374206265206120484153482'
.'07265666572656e636521','54656d706c617465203a2054656d706c61'
.'74652066696c6520','20636f756c64206e6f7420626520666f756e642'
.'1','54656d706c617465203a20436f756c646e2774206f70656e20','7'
.'76562726f6f74','444f43554d454e545f524f4f54','696e736964655'
.'f737369','5f7565','5f6865','5f6e627370','5f6a65','54656d70'
.'6c61746543656c6c203a204e6f2074656d706c6174652063656c6c2077'
.'61732073706563696669656421','54656d706c61746543656c6c203a2'
.'054656d706c6174652063656c6c20','206973206e6f7420646566696e'
.'656421','54656d706c61746543656c6c203a20546865207365636f6e6'
.'420617267756d656e74206d75737420626520612048415348207265666'
.'572656e636521','5a','61','7a','2b','422a','4d494d453634203'
.'a204e6f7468696e6720746f206465636f6465','252525303278','536'
.'574436f6f6b6965203a20436f6f6b6965206e616d65206d75737420626'
.'520737065636966696564','536574436f6f6b6965203a204578706972'
.'6520446174652069736e277420696e207365636f6e6473207573696e67'
.'2074696d6528293b','30','657870697265733d','706174683d','64'
.'6f6d61696e3d','7365637572653b20','5365742d436f6f6b69653a20',
'485454505f434f4f4b4945','6c616e6775616765','6f7264696e616c'
.'73','20307468','20317374','20326e64','20337264','20347468',
'20357468','20367468','20377468','20387468','20397468','313'
.'07468','31317468','31327468','31337468','31347468','313574'
.'68','31367468','31377468','31387468','31397468','32307468',
'32317374','32326e64','32337264','32347468','32357468','323'
.'67468','32377468','32387468','32397468','33307468','333173'
.'74','7765656b5f66756c6c','7765656b5f61626272','6d6f6e74685'
.'f66756c6c','6d6f6e74685f61626272','25','62','42','63','256'
.'d2f25642f25792025483a254d3a2553','256120256220256520255420'
.'255a202559','64','25303264','256d2f25642f2579','65','25326'
.'4','68','48','49','6a','25303364','6b','6c','6d','6f','70',
'50','71','72','25493a254d3a2553202570','52','25483a254d',''
.'73','53','74','54','25483a254d3a2553','55','77','57','78',
'58','79','59','25303464','44617465537472696e67203a2054696d'
.'652076616c7565206d75737420626520616e20696e7465676572','4a6'
.'16e','466562','4d6172','417072','4d6179','4a756e','4a756c',
'417567','536570','4f6374','4e6f76','446563','4a616e7561727'
.'9','4665627275617279','4d61726368','417072696c','4a756e65',
'4a756c79','417567757374','53657074656d626572','4f63746f626'
.'572','4e6f76656d626572','446563656d626572','53756e','4d6f6'
.'e','547565','576564','546875','467269','536174','53756e646'
.'179','4d6f6e646179','54756573646179','5765646e6573646179',
'5468757273646179','467269646179','5361747572646179','7374',
'6e64','7264','7468','7e','2573','252d20353073','3c696e7075'
.'7420747970653d68696464656e206e616d653d22','222076616c75653'
.'d22','534d54505f73656e646d61696c','686f7374','706f7274','6'
.'8656c6f','6c6f63616c686f7374','74696d656f7574','6465627567',
'6572726f72','706f70335f61757468','5c62283f3a5b5c775c2d5d2b'
.'5b5c775c2d5c2e5d292a5b5c775c2d5d2b5c40','283f3a5b5c775c2d5'
.'d2b5b5c775c2d5c2e5d292a5b5c775c2d5d2b5c2e5b412d5a612d7a5d7'
.'b322c387d5c62','66726f6d','706f70335f75736572','706f70335f'
.'70617373','534d54505f706f703361757468','617574686f72697a65'
.'64','706f70335f686f7374','706f70335f706f7274','706f70335f7'
.'4696d656f7574','5f73756273','46485f437265617465','66696c65'
.'6c6f636b696e67','6c6f636b','737461636b','736861726564','75'
.'6e6c6f636b3a206e65737465642066696c656c6f636b20756e64657272'
.'756e','66696c656c6f636b','6c6f636b696e666f','68616e646c65',
'73657276657262757379','636769646972','2e2e2e','414e59','75'
.'695f73756273','5f','65646974','636f6e6669726d5f6572617365',
'7569','706167656e756d','64617465','63726561746564','5f6267'
.'636f6c6f72','23454545454646','23444444444545','5f6d656e755'
.'f686561646572','5f6d656e755f6e616d65','6d61785f7265636f726'
.'473','6572726f725f6d61785f7265636f726473','5f73656c6563746'
.'564','73656c6563746564','6e6f6e65','637265617465645f6279',
'757064617465645f6279','616464','5f65646974','6e6f7265636f7'
.'264','5f636865636b6564','636865636b6564','5f636f6e6669726d'
.'5f6572617365','6572617365203a2043616e27742066696e642072656'
.'36f7264202320','636f6e6669726d5f657261736564','65726173656'
.'4','73617665203a205461626c65206e616d6520756e646566696e6564',
'6469725f75706c6f6164','75706c6f6164657874','75706c6f61646c'
.'696d6974','75706c6f61646d6178','6d657373616765','303030',''
.'75695f736176655f75706c6f616473203a2063616e2774207361766520'
.'75706c6f616465642066696c6520','75706c6f61645f686569676874',
'75706c6f61645f7769647468','6f776e6572','696d61676577696474'
.'68','696d616765686569676874','7566696c65','73617665','6d61'
.'7873697a65','6d6178686569676874','6d61787769647468','61636'
.'3657074657874','4e6f6e65','6572726f725f75706c6f61645f6e6f7'
.'45f7361766564','636f6e6669726d5f7361766564','7361766564',''
.'75695f6c697374203a2054686520666972737420617267756d656e7420'
.'6d75737420626520612048415348207265666572656e636521','5f6c6'
.'97374616c6c','5f7374617465','5f70657270616765','5f6c697374',
'5f70636f756e74','5f6d636f756e74','5f72636f756e74','5f63706'
.'16765','5f6c70616765','5f6e70616765','6e6f745f666f756e645f'
.'736561726368','616363657373','61636c','6964','6572726f725f'
.'757365726e616d655f74616b656e','6572726f725f6c6173745f61646'
.'d696e','6c6f67696e5f696e76616c6964','6d61696c5f6d61696c657'
.'2','736d7470','6d61696c5f736d7470','534d5450','736d74705f6'
.'8656c6f','736d74705f74696d656f7574','6d61696c5f706f7033617'
.'57468','6d61696c5f706f7033','6d61696c5f706f703375736572',''
.'6d61696c5f706f703370617373','73656e646d61696c','6d61696c5f'
.'73656e646d61696c','6669656c645f6e616d65','646972','66696c6'
.'5','6d6b646972','546865206162696c69747920746f2063726561746'
.'5206e6577206469726563746f7269657320686173206265656e2072656'
.'d6f7665642066726f6d206f75722064656d6f2076657273696f6e2e202'
.'0','4120726567697374657265642076657273696f6e206f6620','207'
.'76f756c6420616c6c6f7720796f7520746f20646f20736f2e','6d6b66'
.'696c65','546865206162696c69747920746f20637265617465206e657'
.'72066696c657320686173206265656e2072656d6f7665642066726f6d2'
.'06f75722064656d6f2076657273696f6e2e2020','546865206162696c'
.'69747920746f2062726f7773652061726f756e6420796f757220736572'
.'76657220686173206265656e2072656d6f7665642066726f6d206f7572'
.'2064656d6f2076657273696f6e2e2020','6469725f62617365','7364'
.'6972','64656d6f','6d6b6469725f6e616d65','6469725f6572726f7'
.'2','4e6f206469726563746f7279206e616d6520737065636966696564'
.'21','4469726563746f7279206e616d65206d6179206f6e6c7920636f6'
.'e7461696e20412d5a2c20612d7a2c20302d392c202d206f72205f','55'
.'6e61626c6520746f2063726561746520646972203a20','6d6b66696c6'
.'55f6e616d65','66696c655f6572726f72','4e6f2066696c65206e616'
.'d652073706563696669656421','46696c65206e616d65206d6179206f'
.'6e6c7920636f6e7461696e20412d5a2c20612d7a2c20302d392c202d2c'
.'205f206f72202e','46696c6520616c72656164792065786973747321',
'556e61626c6520746f206372656174652066696c65203a20','6469723'
.'2','706172656e74','706172656e745f7565','4469726563746f7279'
.'20646f65736e277420657869737421','4469726563746f72792069736'
.'e2774207265616461626c6521','636f6e74656e74686561646572','5'
.'f62726f7773655f6469722e68746d6c','70617468','706174685f756'
.'5','73697a65','6d74696d65','6d6f646966696564','6f74686572',
'6e6f66696c6573','436f6e74656e742d747970653a20696d6167652f6'
.'76966','436f6e74656e742d747970653a20696d6167652f6a706567',
'6c686f7572','6c686f75725f6f6666736574','6d696e7573','6c6d6'
.'96e','6c6d696e5f6f6666736574','6c6f67696e','7077','6c6f676'
.'96e5f65787069726564','6c6f67696e5f74696d656f7574','436f6e7'
.'4656e742d747970653a20746578742f68746d6c','5f696e7465726661'
.'63652e68746d6c','75695f6c6f67696e5f696e746572666163653a207'
.'4656d706c61746563656c6c20','686561646572','6c6f67696e5f6d6'
.'57373616765','666f6f746572','75726c5f6c6f676f6666','737469'
.'6d65','6c74696d65','656e765f7065726c5f6f73','656e765f70657'
.'26c5f766572','656e765f6d6f645f7065726c','656e765f72656d6f7'
.'4655f686f7374','656e765f72656d6f74655f61646472','656e765f6'
.'36769646972','73656e646d61696c5f726f77','2f7573722f6c69622'
.'f73656e646d61696c','2f7573722f62696e2f73656e646d61696c','2'
.'f7573722f7362696e2f73656e646d61696c','2f7573722f6c6f63616c'
.'2f62696e2f73656e646d61696c','2f7362696e2f73656e646d61696c',
'2f62696e2f73656e646d61696c','2f6574632f73656e646d61696c',''
.'73656e646d61696c5f6c697374','74616231','73657475705f776172'
.'6e696e67','636c6f73655f77696e646f775f6f6e5f636f6e6669726d',
'31','73657475705f746573746d61696c','5f73657475705f74657374'
.'6d61696c2e68746d6c','5f636f6e74656e74','6d61696c5f74657374',
'706167655f7469746c65','54657374204d61696c','6d61696c746f',
'62616420656d61696c2061646472657373','496e76616c696420656d6'
.'1696c2061646472657373','6e6f20656d61696c2061646472657373',
'456d61696c2061646472657373206c65667420626c616e6b2e','63616'
.'e74206f70656e2074657374206d657373616765','626164206d61696c'
.'2074656d706c617465','7375622073656e646d61696c206572726f72',
'20','6d61696c207465737420737563636565646564','796573','6d6'
.'1696c5f746573745f6661696c6564','4572726f723a204e6f20456d61'
.'696c2041646472657373','4572726f723a20496e76616c696420456d6'
.'1696c2041646472657373','6e6f','4572726f723a2050726f626c656'
.'d20776974682054657374204d657373616765','4572726f723a205072'
.'6f62656c6d20776974682054657374204d657373616765','4572726f7'
.'23a2050726f62656c6d2073656e64696e67204d657374204d657373616'
.'765','6d61696c5f746573745f737563636565646564','54657374204'
.'d61696c20537563636565646564','5f6261636b5f627574746f6e','5'
.'46865206162696c69747920746f20616c746572205365747570204f707'
.'4696f6e7320686173206265656e2072656d6f7665642066726f6d206f7'
.'5722064656d6f2076657273696f6e2e2020','20776f756c6420616c6c'
.'6f7720796f7520746f206368616e676520616e79206f66207468657365'
.'206669656c64732e','73617665645f74616231','72656733','496e7'
.'6616c69642050726f64756374204944213c62723e','596f75206d7573'
.'7420656e74657220796f75722050726f64756374204944213c62723e',
'72656732','596f75206d75737420656e74657220796f757220646f6d6'
.'1696e206e616d65213c62723e','72656731','596f75206d757374206'
.'56e74657220796f757220636f6d70616e79206e616d65213c62723e',''
.'5f72656731','5f72656732','5f72656733','74616239','5f6c6963'
.'656e73655f6e756d','25303764','6373756d','23','73756d6d6172'
.'795f74797065','636f6e74656e745f74797065','5f696d6167657572'
.'6c','75726c5f696d616765','5f75695f7469746c65','7469746c656'
.'26172','5f75695f666f6f746572','5f75726c5f68656c70','75726c'
.'5f68656c70','7075626c69736865645f616c6c','496e746572666163'
.'65203a204e6f2074656d706c6174652063656c6c207761732073706563'
.'696669656421','496e74657266616365203a20546865207365636f6e6'
.'420617267756d656e74206d75737420626520612048415348207265666'
.'572656e636521','6d656e756261725f61636c','6d656e75626172',''
.'5f6f6e6c79','5f63757365725f6964','696e74657266616365','3c2'
.'12d2d','2076','20284275696c643a20','70726f645f6964','70726'
.'f675f6275696c64','4c6963656e73652023','207e20','4578656375'
.'74652074696d653a2025303164207365636f6e6473','2d2d3e','6461'
.'7461646972','6e6f7772697465','64656d6f5f6d657373616765','7'
.'3657475705f74616273','7461625f6e756d','7461625f6e616d65',''
.'7461625f756e73656c6563746564','7461625f73656c6563746564',''
.'5f6865616465725f746162','7461625f626172','7461625f6c697374',
'4334','54656d706c617465203a20546865207365636f6e64206172677'
.'56d656e74206d75737420626520612048415348207265666572656e636'
.'5206f7220756e646566696e656421','696e636c75646573','6173646'
.'6','75726c','696d675f616c69676e','61727469636c655f65646974'
.'6f72','696d6167655f616c69676e6d656e74','7269676874','696d6'
.'75f75726c','696d675f63617074696f6e','696d675f686569676874',
'696d675f7769647468','696d675f6e6f63617074696f6e','3c6d6574'
.'61206e616d653d2267656e657261746f722220636f6e74656e743d22',
'2c20687474703a2f2f7777772e696e746572616374697665746f6f6c73'
.'2e636f6d223e','3c212d2d204c617374205570646174656420','2077'
.'69746820','20627920696e746572616374697665746f6f6c732e636f6'
.'d202d2d3e','5f5f4449455f5f','5f5f5741524e5f5f','656d61696c'
.'5f6e6f74696669636174696f6e5f656e61626c6564','6e6f746966696'
.'36174696f6e5f6576656e7473','2c','656d61696c','6576656e745f'
.'6e616d6573','2d2d2d','7374617475735f6e616d6573','70656e646'
.'96e67','76697369626c65','757365725f66756c6c6e616d65','6576'
.'656e74','6172745f636174','75726c5f7468697370616765','61727'
.'45f66696c656e616d65','6d61696c5f73656e6465725f656d61696c',
'6d61696c5f73656e6465725f6e616d65','656d61696c2f6e6f7469667'
.'92e747874','54686520656d61696c2074656d706c617465206e6f7469'
.'66792e74787420697320696d70726f7065726c7920666f726d61747465'
.'642e','436f6e74656e742d547970653a20746578742f706c61696e',''
.'656d61696c5f616c6c5f63617473','656d61696c5f63617473','656d'
.'61696c5f6e6f74696669636174696f6e5f6576656e7473','6e6f74696'
.'669636174696f6e735f746f5f6669656c64','3b20','6361745f65726'
.'17365','6361745f636f6e6669726d5f6572617365','637573746f6d5'
.'f75695f736176655f75706c6f616473203a2063616e277420736176652'
.'075706c6f616465642066696c6520','5f75695f6267636f6c6f72','6'
.'267636f6c6f72','2e2e2f646174612f','2e2e2f646174612f66696c6'
.'56c6f636b2e6c6f636b','256220256f2c202559202d2025483a254d3a'
.'2553','25622025652c202559','6e6f5f7765625f736572766572','5'
.'343524950545f4e414d45','6d6f645f7065726c','4d4f445f5045524'
.'c','616c6c6f775f6d6f645f7065726c','63676975726c','63676966'
.'696c65','2e2e2f74656d706c61746573','74656d706c617465646972'
.'32','2e2e2f74656d706c617465732f696e74657266616365','74656d'
.'706c61746564697233','2e2e2f5f736f757263655f696d61676573',''
.'69','506c6561736520696e7374616c6c207468652070726f6772616d2'
.'066697273742062792072756e6e696e672061646d696e2e636769','20'
.'3a20','5f70726f675f6e616d65','75695f6267636f6c6f72','53657'
.'276657220746f6f206275737921','41727469636c65732063616e6e6f'
.'74206265206163636573736564206f7220736176656420726967687420'
.'6e6f772e20536f6d656f6e6520656c736520697320747279696e672074'
.'6f20736176652074686569722061727469636c652c206f722074686520'
.'73797374656d20697320696e20746865206d69647374206f662072652d'
.'7075626c697368696e67206f7220617263686976696e67206172746963'
.'6c65732e20506c6561736520776169742061206d6f6d656e7420616e64'
.'207468656e2074727920616761696e2e','6d6163667470','7075626c'
.'697368','6e6f68656c70','4e6f2048656c7020417661696c61626c65',
'536f7272792c206e6f2068656c702069732063757272656e746c792061'
.'7661696c61626c6520666f722074686973206170706c69636174696f6e'
.'2e2020506c6561736520636f6e7461637420796f75722073797374656d'
.'2061646d696e6973747261746f7220666f7220617373697374616e6365'
.'2e','4e6f20737563682066696c65206f72206469726563746f7279',''
.'5065726d697373696f6e2064656e696564','75695f7469746c65','20'
.'6f6e436c69636b3d2277696e646f772e636c6f736528293b2220','6e6'
.'5737465645f6c6f636b73','3c212d2d20457865637574652074696d65'
.'3a2025303164207365636f6e6473202d2d3e','3c212d2d20506f77657'
.'2656420627920696e746572616374697665746f6f6c732e636f6d20286'
.'96e666f40696e746572616374697665746f6f6c732e636f6d29202d2d3'
.'e'
);for(@z){$_=pack('H*',$_)}}use Socket;use Time::Local;use 
Fcntl qw(:DEFAULT :flock);%ab=();%ac=();%ad=();%ae=();%af=();
%ag=();%ah=();%ai=();$ab{$z[0]}=$z[1];$ab{$z[2]}=$z[3];$ab{$z[4]}
=$z[5];$ab{$z[6]}=20;@aj[0,1,2,3,9]=($z[7],$z[8],$z[9],$z[10],$z[11]);
$SIG{__DIE__}=\&ak;srand;$|=1;$^T=time();&al;sub qh{;}MAIN:;
&am();my$an=length$ag{$z[12]}?int$ag{$z[12]}:undef;if($an){
$ae{$z[13]}{$z[14]}="archive$an.dat";}my%ao;my$ap;($ag{$z[15]})
=($ag{$z[15]}=~/(\d+)/)if$ag{$z[15]};$ao{$z[16]}=$ag{$z[15]};
my($aq,$ar);$aq=sprintf($z[17],$ag{$z[18]},$ag{$z[19]},$ag{$z[20]}
)if($ag{$z[18]}&&$ag{$z[19]}&&$ag{$z[20]});$ar=sprintf($z[17],
$ag{$z[21]},$ag{$z[22]},$ag{$z[23]})if($ag{$z[21]}&&$ag{$z[22]}
&&$ag{$z[23]});$ad{$z[24]}=$ac{$z[25]};$ad{$z[26]}=$ac{$z[27]}
.$ac{$z[28]}.$z[29].$ac{$z[30]};$ad{$z[31]}=$ac{$z[32]}.$z[29]
.$ac{$z[30]};$ad{$z[33]}=$ac{$z[34]}.$z[29].$ac{$z[30]};$ad{$z[35]}
=$ac{$z[36]}.$z[29].$ac{$z[30]};$ad{$z[37]}=$ac{$z[38]}.$z[29]
.$ac{$z[30]};$ad{$z[39]}=&as($ab{$z[40]},&at($ac{$z[39]}))if
($ac{$z[39]});$ad{$z[41]}=$ac{$z[41]};if($ag{$z[15]}){$ad{$z[42]}
=$ac{$z[32]}.$ag{$z[15]}.$z[29].$ac{$z[30]};;$ad{$z[43]}=$ac{$z[44]}
.$ag{$z[15]}.$z[29].$ac{$z[30]};}else{$ad{$z[42]}=$ad{$z[31]};
$ad{$z[43]}=$ad{$z[33]};}if(!keys%ag){$ap=sub{my$au=shift;return 
if$au->{$z[45]};$ad{$z[46]}.=$z[47].$au->{$z[48]}.$z[49].$au->{$z[50]};
};&av($ae{$z[15]},$ap);&av($ae{$z[12]},sub{my$an=shift;$ad{$z[51]}
.=$z[47].$an->{$z[48]}.$z[49].$an->{$z[50]};});print"Content-type: text/html\n\n";
print&aw($z[52],{},$z[53],'',$ac{$z[54]});exit;}$ag{$z[55]}
||=$z[56];$ag{$z[57]}||=10;$ag{$z[58]}||=1;my($ax);foreach$ax
(sort keys%ag){$ad{"in_$ax"}=$ag{$ax};$ad{$z[59]}.="in_$ax"
." = ".$ad{"in_$ax"}."<br>";}my%ay;my$az;foreach$az('',$z[60],
$z[61],$z[62]){opendir AC,$ab{$z[63]}.$z[64].$az;%ay=(%ay,map
{$az.$_,1}grep{not-d"$ab{'templatedir1'}/$az$_"}readdir(AC));
closedir AC;}unless($ay{$ag{$z[55]}}){&ak($z[65]);}&aw($ag{$z[55]},
{},$z[53],'',$ac{$z[54]});my(%ba,%bb,%bc,%bd,%be,%bf,%bg,%bh);
$ap=sub{my%au=%{shift()};$ba{$au{$z[48]}}=$au{$z[50]};$bf{$au{$z[48]}}
=$au{$z[66]};$bc{$au{$z[48]}}=$au{$z[45]};$bb{$au{$z[48]}}=
$au{$z[67]}?"$ac{'url_upload'}$au{'ufile_image'}":"$ac{'url_image'}spacer.gif";
$bd{$au{$z[48]}}=$au{$z[68]};$be{$au{$z[48]}}=$au{$z[69]};if
($au{$z[70]}){$bh{$au{$z[48]}}{$z[27]}=$au{$z[27]};$bh{$au{$z[48]}}{$z[71]}
=$au{$z[71]};}else{$bh{$au{$z[48]}}{$z[27]}=$ac{$z[27]};$bh{$au{$z[48]}}{$z[71]}
=$ac{$z[71]};}$ad{$z[46]}.=$z[47].$au{$z[48]}.$z[49].$au{$z[50]};
if($au{$z[48]}){my$bi=$au{$z[72]}?$au{$z[73]}:$ac{$z[74]}.$au{$z[48]};
$bg{$au{$z[48]}}=$ac{$z[27]}.$bi.$z[29].$ac{$z[30]};}else{$bg{$au{$z[48]}}
=$ad{$z[26]};}};&av($ae{$z[15]},$ap);if($ag{$z[15]}){$ad{$z[75]}
=$bg{$ag{$z[15]}};}else{$ad{$z[75]}=$ad{$z[26]};}&av($ae{$z[12]},
sub{my$an=shift;$ad{$z[51]}.=$z[47].$an->{$z[48]}.$z[49].$an->{$z[50]};
});my@bj;if($ag{$z[76]}){@bj=split(/[\s,]+/,$ag{$z[76]});foreach
(@bj){$_=~s/art_field/spare/ig;$_=~s/art_//ig;}}else{foreach
($z[50],$z[77],$z[78],map{$z[79].$_}1..$ab{$z[6]}){push(@bj,$_);
}}my$bk;$ap=sub{my$bl=shift;return unless($bl->{$z[15]});return 
if($bl->{$z[80]}!=2);return if($bc{$bl->{$z[15]}});return if
($ag{$z[15]}&&$ag{$z[15]}!=$bl->{$z[15]});my$bm=sprintf($z[17],
@{$bl}{qw/year mon day/});if($aq&&$ar){return unless($bm>=$aq
&&$bm<=$ar);}elsif($aq){return unless($bm>=$aq);}elsif($ar)
{return unless($bm<=$ar);}my$bn;my$bo=($af{$z[81]}{$z[82]}?
'':$z[83]).quotemeta($ag{$z[84]});foreach(@bj){$bn++if($bl->{$_}
=~m/$bo/i);}return if(defined$ag{$z[84]}&&not$bn);$ao{$z[85]}++;
if($ao{$z[85]}>=$ag{$z[58]}&&$ao{$z[85]}<$ag{$z[58]}+$ag{$z[57]})
{my($bp,$bq);foreach$bp(keys%{$bl}){$bq->{$z[86].$bp}=$bl->{$bp};
}$bq->{$z[87]}=~s|\n|<br />\n|g if$bl->{$z[88]};$bq->{$z[89]}
=~s|\n|<br />\n|g if$bl->{$z[90]};for(1..$ab{$z[6]}){$bq->{$z[91]
.$_}=~s|\n|<br />\n|g if$bl->{$z[92].$_};}my@br=($bl->{$z[18]},
$bl->{$z[19]}-1,$bl->{$z[20]},$bl->{$z[93]}+($bl->{$z[94]}eq
$z[95]?12:0),$bl->{$z[96]});$bq->{$z[97]}=&as($ab{$z[98]},@br);
$bq->{$z[99]}=&as($ab{$z[100]},@br);$bq->{$z[16]}=$bl->{$z[15]};
$bq->{$z[101]}=$ba{$bl->{$z[15]}};$bq->{$z[102]}=$bb{$bl->{$z[15]}};
$bq->{$z[103]}=$bd{$bl->{$z[15]}};$bq->{$z[104]}=$be{$bl->{$z[15]}};
$bq->{$z[105]}=$bh{$bl->{$z[15]}}{$z[27]}.($ac{$z[106]}&&$bl->{$z[107]}
?$ac{$z[108]}.$bl->{$z[107]}:$ac{$z[108]}.$bl->{$z[48]}).$z[29]
.$ac{$z[30]};$bq->{$z[42]}=$ac{$z[32]}.$bl->{$z[15]}.$z[29]
.$ac{$z[30]};$bq->{$z[43]}=$ac{$z[44]}.$bl->{$z[15]}.$z[29]
.$ac{$z[30]};$bq->{$z[109]}=$bg{$bl->{$z[15]}};$bq->{$z[110]}
=$bh{$bl->{$z[15]}}{$z[27]}.($ac{$z[106]}&&$bl->{$z[107]}?$bl->{$z[107]}
:$ac{$z[111]}.$bl->{$z[48]}).$z[29].$ac{$z[30]};if(defined$an)
{if($ac{$z[112]}){$bq->{$z[110]}=$ac{$z[113]}.$z[64].$an.$z[64]
.$bq->{$z[114]};}else{$bq->{$z[110]}=$ac{$z[113]}.$z[115].$an
.$z[116].$bq->{$z[114]};}}if($bl->{$z[117]}==3){$bq->{$z[118]}
="http://$bl->{'link'}"unless($bl->{$z[118]}=~m|^\w+://|);$bq->{$z[110]}
=$bl->{$z[118]}}if($bl->{$z[117]}==4){$bq->{$z[110]}=$bh{$bl->{$z[15]}}{$z[71]}
.$bl->{$z[119]};}foreach(1..25){$bq->{$z[120].$_}=$bh{$bl->{$z[15]}}{$z[71]}
.$bl->{"ufile_image$_"};$bq->{$z[121].$_}=$bl->{$z[121].$_};
$bq->{$z[69].$_}=$bl->{$z[69].$_};$bq->{$z[68].$_}=$bl->{$z[68]
.$_};}$bq->{$z[87]}=&bs($bq->{$z[87]},$bq,'');$bq->{$z[89]}
=&bs($bq->{$z[89]},$bq,'');foreach(1..$ab{$z[6]}){if($bq->{$z[91]
.$_}=~/\*{3}image(\d+)(:\w+)?\*{3}/s){$bq->{$z[122].$_}=&bs($bq->{$z[91]
.$_},$bq,'');}else{$bq->{$z[122].$_}=$bq->{$z[91].$_};}}my$bt
=($z[123],$z[124],$z[125],$z[126])[$bl->{$z[117]}-1];$ao{$z[127]}
.=&bu($bt,$bq,($bk++% 2==0)?'':$z[128]);}};&av($ae{$z[13]},
$ap);if(!$ao{$z[127]}){$ao{$z[127]}=&bv($z[129],{});$ao{$z[85]}
=0;}else{if($ag{$z[58]}>1){my$bw=$ag{$z[58]}-$ag{$z[57]};$bw
=1 if$bw<1;$ao{$z[130]}=&bv($z[130],{$z[131]=>$ad{$z[132]}.
$z[133].&bx({%ag,$z[58]=>$bw})});}elsif(defined$ab{$z[134]}{$z[135]}{$z[136]})
{$ao{$z[130]}=&bv($z[136],{});}if($ao{$z[85]}>=$ag{$z[58]}+
$ag{$z[57]}){my$by=$ag{$z[58]}+$ag{$z[57]};$ao{$z[137]}=&bv($z[137],
{$z[138]=>$ad{$z[132]}.$z[133].&bx({%ag,$z[58]=>$by})});}elsif
(defined$ab{$z[134]}{$z[135]}{$z[139]}){$ao{$z[137]}=&bv($z[139],
{});}}$ao{$z[140]}=&bz($ao{$z[85]}/$ag{$z[57]});$ao{$z[141]}
=&bz($ag{$z[58]}/$ag{$z[57]});$ao{$z[142]}=$ag{$z[58]};$ao{$z[143]}
=&ca($ag{$z[58]}+$ag{$z[57]}-1,$ao{$z[85]});if($ag{$z[15]})
{$ao{$z[101]}=$ba{$ag{$z[15]}};$ao{$z[144]}=&as($ab{$z[40]},
&at($bf{$ag{$z[15]}}))if$bf{$ag{$z[15]}};$ao{$z[102]}=$bb{$ag{$z[15]}};
$ao{$z[104]}=$be{$ag{$z[15]}}||1;$ao{$z[103]}=$bd{$ag{$z[15]}}
||1;}else{$ao{$z[101]}=$ac{$z[41]};$ao{$z[144]}=&as($ab{$z[40]},
&at($ac{$z[39]}))if$ac{$z[39]};}print"Content-type: text/html\n\n";
print&aw($ag{$z[55]},\%ao,$z[53],'',$ac{$z[54]});exit;sub al
{my$cb=$0;$cb=~s/.*[\\\/]//;my@cc=($0,$ENV{$z[145]});my$cd=
(grep(/$cgifile$/i&&s/^(.*)[\\\/].*/$1/,@cc))[0];$cd||=(($^O=~/mswin/i?`cd`:`pwd`)=~/(.*)/)[0];
$cd=~s/\\/\//g;if(!$cd){die("Can't determine cgi directory!\n");
}$ae{$z[13]}={$z[50]=>$z[13],$z[146]=>$z[147],$z[148]=>$z[149],
$z[14]=>$z[150],$z[76]=>$z[151].$z[152].$z[153].$z[154].$z[155].
$z[156].$z[157].$z[158].$z[159].$z[160].$z[161].$z[162].$z[163]
.$z[164].$z[165].$z[166].$z[167].$z[168].$z[169],$z[81]=>$z[50],
$z[170]=>$z[171],$z[172]=>\&ce,$z[173]=>[[$z[174],\&cf],[$z[175],
\&cg],],};$ae{$z[176]}={$z[50]=>$z[13],$z[146]=>$z[177],$z[148]
=>$z[178],$z[14]=>$z[179],$z[76]=>$ae{$z[13]}{$z[76]},$z[81]
=>$ae{$z[13]}{$z[81]},$z[170]=>$ae{$z[13]}{$z[170]},$z[173]
=>[[$z[175],\&cg],],};$ae{$z[15]}={$z[50]=>$z[15],$z[146]=>
$z[180],$z[148]=>$z[181],$z[14]=>$z[182],$z[76]=>$z[183].$z[184].
$z[185].$z[186].$z[187].$z[188],$z[81]=>$z[50],$z[170]=>$z[189],
$z[172]=>\&ch,$z[173]=>[[$z[174],\&ci],[$z[175],\&cj],],};$ae{$z[12]}
={$z[50]=>$z[12],$z[146]=>$z[190],$z[148]=>$z[191],$z[14]=>
$z[192],$z[76]=>$z[193],$z[81]=>$z[50],$z[170]=>$z[194],$z[173]
=>[[$z[175],\&ck],],};$ae{$z[195]}={$z[50]=>$z[195],$z[148]
=>$z[196],$z[14]=>$z[197],$z[76]=>$z[198],$z[81]=>$z[199],$z[170]
=>$z[50],$z[173]=>[[$z[174],\&cl],[$z[175],\&cm],],};$ae{$z[200]}
={$z[50]=>$z[200],$z[14]=>$z[201],$z[76]=>$ae{$z[195]}{$z[76]},
};$ae{$z[202]}={$z[50]=>$z[202],$z[148]=>$z[203],$z[14]=>$z[204],
$z[76]=>$z[205].$z[206].$z[207].$z[208].$z[209].$z[210].$z[211]
.$z[212].$z[213].$z[214].$z[215].$z[216].$z[217].$z[218].$z[219]
.$z[220].$z[221].$z[222].$z[223].$z[224].$z[225].$z[226].$z[227]
.$z[228],};1;;sub mi{my$ae=$_[0];my($cn)="$ab{'datadir'}$ae->{'datafile'}";
my(@co);if(ref($ae)ne$z[229]){die"DB_Count : The first argument must be a HASH reference!\n";
}if(!$ae->{$z[14]}){die"DB_Count : No datafile defined in database definition (\%DBDef)!\n";
}unless(-e$cn){return(0);}&cp;open(AB,"<$cn")||&cq("DB_Count : Can't open '$cn'");
@co=grep/^\d/,<AB>;close(AB);&cr;my$bk=@co;return$bk||0;}sub 
mz{my$ae=$_[0];if(ref($ae)ne$z[229]){die$z[230]."\n";}if(defined($_[1])
&&ref($_[1])ne$z[229]){die$z[231]."\n";}if(!$_[2]){die$z[232]."\n";
}my($cn)="$ab{'datadir'}$ae->{'datafile'}";my(@bj)=split(/ /,$ae->{$z[76]});
my($ao)=$_[1]if defined($_[1]);my($cs)=grep{$bj[$_]eq$_[2]}
(0..$#bj);my($ct)=$_[3];my($cu)=$_[4];my(@co);my(@cv);unless
(-e$cn){return(0);}if(-e$cn){&cp;open(AB,"<$cn")||&cq("DB_Seek : Can't open '$cn'");
@co=<AB>;close(AB);&cr;}foreach(@co){/^(\d+)\¡/;($1&&$1>=$cu)
||next;s/[^¡]+$//;undef%$ao if defined($ao);@cv=split(/\¡/);
next if($cv[$cs]ne$ct);if(defined($ao)){for(0..$#bj){$ao->{$bj[$_]}
=$cv[$_];$ao->{$bj[$_]}=~s/¿([A-F0-9]{2})/pack($z[233],hex($1))/egix;
}}return 1;}return 0;}sub av{my$ae=$_[0];my($cn)="$ab{'datadir'}$ae->{'datafile'}";
my(@bj)=split(/ /,$ae->{$z[76]});unless($ae->{$z[234]}){for
(0..$#bj){$ae->{$z[234]}{$bj[$_]}=$_;}}my($ap)=$_[1];my($ao)
=$_[2]||{};my($cw)=$_[3];my(@co);my(@cv);my($cx,$cy);my$cz;
if(ref($ae)ne$z[229]){die$z[235]."\n";}if(ref($_[1])ne$z[236]
&&$_[1]){die$z[237]."\n";}if(ref($_[2])ne$z[229]&&$_[2]){die
$z[238]."\n";}if(!defined&$ap){die$z[239]."\n";}if(!$ae->{$z[14]})
{die$z[240]."\n";}unless(-e$cn){return(0);}&cp;open(AB,"<$cn")
||&cq("DB_List : Can't open '$cn'");@co=<AB>;close(AB);&cr;
@co=grep/^\d/,@co;&da($ae,\@co,$cw);if($ae->{$z[170]}){my($db,$dc);
foreach(split(/ /,$ae->{$z[170]})){if(s/#//g){$cx=$z[241];}
else{$cx='';}if(s/-//g){$cy=$z[242];}else{$cy='';}if(!defined
$ae->{$z[234]}{$_}){die($z[243]."'$_'!\n");}$dc.="$cy$ae->{'fieldn'}{$_}$cx ";
}@co=&dd($z[244],$dc,\@co);}foreach(@co){s/[^¡]+$//;undef%$ao;
@cv=split(/\¡/);for$cz(0..$#bj){$ao->{$bj[$cz]}=$cv[$cz];$ao->{$bj[$cz]}
=~s/¿([A-F0-9]{2})/pack($z[233],hex($1))/egix;}&$ap($ao);}}
sub mw{my($ae)=$_[0];my($de)=$_[1];my($df)=int$_[2]||1;my($dg)
=int$_[3];my($dh)=$_[4];my($di)=$_[5];my($cx,$cy);my($dj,$dk,$cz);
my($ao)={};if(ref($ae)ne$z[229]){die$z[245]."\n";}if(ref($_[1])
ne$z[236]&&$_[1]){die$z[246]."\n";}if(!defined&$de){die$z[247]."\n";
}if(!$ae->{$z[14]}){die$z[248]."\n";}my($cn)="$ab{'datadir'}$ae->{'datafile'}";
my(@bj)=split(/ /,$ae->{$z[76]});unless($ae->{$z[234]}){for
(0..$#bj){$ae->{$z[234]}{$bj[$_]}=$_;}}my($dl,$dm,$dn,$dp,$dq)
=(0,0,0,0,0);my(@co);my(@cv);unless(-e$cn){return(0,0,0,0,0,0);
}&cp;open(AB,"<$cn")||&cq("DB_List : Can't open '$cn'");@co
=<AB>;close(AB);&cr;@co=grep/^\d/,@co;&da($ae,\@co,$dh);$dn
=scalar@co;&da($ae,\@co,$di);$dm=scalar@co;if($ae->{$z[170]})
{my($db,$dc);foreach(split(/ /,$ae->{$z[170]})){if(s/#//g){
$cx=$z[241];}else{$cx='';}if(s/-//g){$cy=$z[242];}else{$cy='';
}if(!defined$ae->{$z[234]}{$_}){die($z[249]."'$_'!\n");}$dc
.="$cy$ae->{'fieldn'}{$_}$cx ";}@co=&dd($z[244],$dc,\@co);}
$dk=($df*$dg)-($dg-1);$dj=$df*$dg;if($dj>$#co){$dj=$#co+1;}
for($dk..$dj){$_=$co[$_-1];s/[^\¡]+$//;undef%$ao;@cv=split(/\¡/);
for$cz(0..$#bj){$ao->{$bj[$cz]}=$cv[$cz];$ao->{$bj[$cz]}=~s/¿([A-F0-9]{2})/pack($z[233],hex($1))/egix;
}&$de($ao);}$dg||=1;$dl=int($dm/$dg);if($dm%$dg){$dl++;}if(($df-1)
<1||($df-1)>$dl){$dp=$dl;}else{$dp=$df-1;}if(($df+1)>$dl){$dq
=1;}else{$dq=$df+1;}if(!$dl){$df=$dp=$dq=0;}return($dl,$dm,
$dn,$df,$dp,$dq);}sub og{my$ae=$_[0];if(ref($ae)ne$z[229]){
die"DB_ListSave : The first argument must be a HASH reference!\n";
}if(ref($_[1])ne$z[236]&&$_[1]){die"DB_ListSave : The second argument must be a CODE reference!\n";
}if(ref($_[2])eq$z[229]){die"DB_ListSave : Use of an output hash reference is depricated.  Argument order has been changed.\n";
}my($cn)="$ab{'datadir'}$ae->{'datafile'}";my(@bj)=split(/ /,$ae->{$z[76]});
unless($ae->{$z[234]}){for(0..$#bj){$ae->{$z[234]}{$bj[$_]}
=$_;}}my($ap)=$_[1];my($cw)=$_[2];my($dr)=$_[3];my($ao)=$_[4]
||{};my(@co,$ds,%dt);my(@cv,$cx,$cy,$cz);unless(-e$cn){return(0);
}&cp;open(AB,"<$cn")||&cq("DB_List : Can't open '$cn'");@co
=<AB>;close(AB);if($co[1]=~m/#(\d+)/){$ds=$1;}else{foreach(@co)
{/^\d/||next;$dt{(split(/\¡/))[0]}=1;}$ds=(sort{$b<=>$a}keys
%dt)[0];}@co=grep/^\d/,@co;my$du=&dv($ae,\@co,$cw);if($dr&&
$ae->{$z[170]}){my($db,$dc);foreach(split(/ /,$ae->{$z[170]}))
{if(s/#//g){$cx=$z[241];}else{$cx='';}if(s/-//g){$cy=$z[242];
}else{$cy='';}if(!defined$ae->{$z[234]}{$_}){die($z[250]."'$_'!\n");
}$dc.="$cy$ae->{'fieldn'}{$_}$cx ";}@co=&dd($z[244],$dc,\@co);
}foreach(@co){if(!$du->{$z[251]}&&!$du->{(/^(\d+)/)[0]}){next;
}s/[^¡]+$//;undef%$ao;@cv=split(/\¡/);for$cz(0..$#bj){$ao->{$bj[$cz]}
=$cv[$cz];$ao->{$bj[$cz]}=~s/¿([A-F0-9]{2})/pack($z[233],hex($1))/egix;
}&$ap($ao);if($ao->{num}){$_="$cv[$cz]¡";for$cz(1..$#bj){my($dw)
=$ao->{$bj[$cz]};$dw=~s/[\x1a\r\n\¡\¿]/sprintf($z[252],ord($&))/egx;
$_.="$dw¡";}$_.="\n";}else{undef$_;}}open(AB,">$cn.tmp$$")or
&cq("DB_ListSave : Can't open '$cn.tmp$$' for writing");print 
AB qq|#!$^X\n|or&cq("DB_ListSave : Can't write section 1 header to '$cn.tmp$$'");
print AB qq|#$ds\n|or&cq("DB_ListSave : Can't write section 2 header to '$cn.tmp$$'");
print AB$z[253]."\n".$z[254]."\n"or&cq("DB_ListSave : Can't write section 3 header to '$cn.tmp$$'");
foreach(@co){/^\d/||next;s/[^¡]+$//;print AB"$_\n"or&cq("DB_ListSave: Can't write to $cn.tmp$$");
}close(AB)or&cq("DB_ListSave : Can't close $cn.tmp$$");rename("$cn.tmp$$",$cn)
or&cq("DB_ListSave : Can't rename '$cn.tmp$$' to '$cn'.");&cr;
}sub ef{my$ae=$_[0];if(ref($ae)ne$z[229]){die$z[255]."\n";}
if(ref($_[1])ne$z[229]){die$z[256]."\n";}my($cn)="$ab{'datadir'}$ae->{'datafile'}";
my(@bj)=split(/ /,$ae->{$z[76]});my($ag)=$_[1];my($dx)=int$_[2];
my(@co);my(@cv);my(%dt);my($dy,$cz,$ds);&cp;if(-e$cn){open(AB,"<$cn")
||&cq("DB_Add : Can't open '$cn'");@co=<AB>;close(AB);}if($co[1]
=~m/#(\d+)/){$ds=$1;}else{foreach(@co){/^\d/||next;$dt{(split(/\¡/))[0]}
=1;}$ds=(sort{$b<=>$a}keys%dt)[0];}if($dx&&$dt{$dx}){&cr;return
&dz(@_);}elsif($dx){$dy=$dx;}else{$dy=$ds=$ds+1;}$ag{$z[257]}
=$dy;open(AB,">$cn.tmp$$")or&cq("DB_Add : Can't open '$cn.tmp$$' for writing");
print AB qq|#!$^X\n|or&cq("DB_Add : Can't write section 1 header to '$cn.tmp$$'");
print AB qq|#$ds\n|or&cq("DB_Add : Can't write section 2 header to '$cn.tmp$$'");
print AB$z[253]."\n".$z[254]."\n"or&cq("DB_Add : Can't write section 3 header to '$cn.tmp$$'");
foreach(@co){/^\d/||next;s/[^¡]+$//;print AB"$_\n"or&cq("DB_Add : Can't copy record to $cn.tmp$$ : $!\n");
}my($ea)="$dy¡";for$cz(1..$#bj){my($dw)=$ag->{$bj[$cz]};$dw
=~s/[\x1a\r\n\¡\¿]/sprintf($z[252],ord($&))/egx;$ea.="$dw¡";
}print AB"$ea\n"or&cq("DB_Add : Can't add new record to $cn.tmp$$");
close(AB)or&cq("DB_Add : Can't close $cn.tmp$$");rename("$cn.tmp$$",$cn)
or&cq("DB_Add : Can't rename '$cn.tmp$$' to '$cn'.");&cr;return
$dy;}sub mj{my$ae=$_[0];my($eb,$ec,$ea)=caller;if(ref($ae)ne
$z[229]){die$z[258]."\n";}if(ref($_[1])ne$z[229]){die$z[259]."\n";
}if(!$_[2]){die$z[260]."caller: $ea\n";}my($cn)="$ab{'datadir'}$ae->{'datafile'}";
my(@bj)=split(/ /,$ae->{$z[76]});my($ao)=$_[1];my($dt)=int$_[2];
my(@co);my(@cv);my($cz);unless(-e$cn){return(0);}if(-e$cn){
&cp;open(AB,"<$cn")||&cq("DB_Load : Can't open '$cn'");@co=
<AB>;close(AB);&cr;}foreach(@co){/^$dt\¡/||next;s/[^¡]+$//;
undef%$ao;@cv=split(/\¡/);for$cz(0..$#bj){$ao->{$bj[$cz]}=$cv[$cz];
$ao->{$bj[$cz]}=~s/¿([A-F0-9]{2})/pack($z[233],hex($1))/egix;
}return 1;}return 0;}sub ml{my$ae=$_[0];if(ref($ae)ne$z[229])
{die$z[261]."\n";}if(!$_[1]){die$z[262]."\n";}my($cn)="$ab{'datadir'}$ae->{'datafile'}";
my(@bj)=split(/ /,$ae->{$z[76]});my($dt)=int$_[1];my(%dj);my($ed)
=0;for(1..$#_){$dj{$_[$_]}++;}my(@co,$ds,%dt);unless(-e$cn)
{return(0);}&cp;if(-e$cn){open(AB,"<$cn")||&cq("DB_Del : Can't open '$cn'");
@co=<AB>;close(AB);}if($co[1]=~m/#(\d+)/){$ds=$1;}else{foreach
(@co){/^\d/||next;$dt{(split(/\¡/))[0]}=1;}$ds=(sort{$b<=>$a
}keys%dt)[0];}open(AB,">$cn.tmp$$")or&cq("DB_Del : Can't open '$cn.tmp$$' for writing");
print AB qq|#!$^X\n|or&cq("DB_Del : Can't write section 1 header to '$cn.tmp$$'");
print AB qq|#$ds\n|or&cq("DB_Del : Can't write section 2 header to '$cn.tmp$$'");
print AB$z[253]."\n".$z[254]."\n"or&cq("DB_Del : Can't write section 3 header to '$cn.tmp$$'");
foreach(@co){/^(\d+)\¡/||next;if($dj{$1}){$ed++;next;}s/[^¡]+$//;
print AB"$_\n"or&cq("DB_Del : Can't copy record to $cn.tmp$$ : $!\n");
}close(AB)or&cq("DB_Del : Can't close $cn.tmp$$");rename("$cn.tmp$$",$cn)
or&cq("DB_Del : Can't rename '$cn.tmp$$' to '$cn'.");&cr;return
$ed;}sub dz{my$ae=$_[0];if(ref($ae)ne$z[229]){die$z[263]."\n";
}if(ref($_[1])ne$z[229]){die$z[264]."\n";}if(!$_[2]){die$z[265]."\n";
}my($cn)="$ab{'datadir'}$ae->{'datafile'}";my(@bj)=split(/ /,$ae->{$z[76]});
my($ag)=$_[1];my($dt)=int$_[2];my($ee)=0;my(@co);my(@cv);my($cz,$ao,$ds,%dt);
if(!-e$cn){return&ef(@_);}&cp;open(AB,"<$cn")||&cq("DB_Save : Can't open '$cn'");
@co=<AB>;close(AB);if($co[1]=~m/#(\d+)/){$ds=$1;}else{foreach
(@co){/^\d/||next;$dt{(split(/\¡/))[0]}=1;}$ds=(sort{$b<=>$a
}keys%dt)[0];}open(AB,">$cn.tmp$$")or&cq("DB_Save : Can't open '$cn.tmp$$' for writing");
print AB qq|#!$^X\n|or&cq("DB_Save : Can't write section 1 header to '$cn.tmp$$'");
print AB qq|#$ds\n|or&cq("DB_Save : Can't write section 2 header to '$cn.tmp$$'");
print AB$z[253]."\n".$z[254]."\n"or&cq("DB_Save : Can't write section 3 header to '$cn.tmp$$'");
foreach(@co){/^\d/||next;if(/^$dt\¡/){my($ea)="$dt¡";for$cz
(1..$#bj){my($dw)=$ag->{$bj[$cz]};$dw=~s/[\x1a\r\n\¡\¿]/sprintf($z[252],ord($&))/egx;
$ea.="$dw¡";}print AB"$ea\n"or&cq("DB_Save : Can't save modified record to $cn.tmp$$");
$ee++;next;}s/[^¡]+$//;print AB$_,"\n"or&cq("DB_Save : Can't copy record to $cn.tmp$$");
}close(AB)or&cq("DB_Save : Can't close $cn.tmp$$");rename("$cn.tmp$$",$cn)
or&cq("DB_Save : Can't rename '$cn.tmp$$' to '$cn'.");&cr;unless($ee)
{return&ef(@_);}}sub cp{my$eg=$af{$z[266]}||5;&eh($z[267],$eg);
}sub cr{my$eg=$af{$z[266]}||5;&ei($eg);}sub eu{my($ae,$ej,$ek)
=@_;my(@el,@em);unless($ae->{$z[234]}){my(@bj)=split(/ /,$ae->{$z[76]});
for(0..$#bj){$ae->{$z[234]}{$bj[$_]}=$_;}}foreach(@{$ek}){my
($en,$eo,$ep)=@{$_};next if$ep eq'';if(ref($ep)eq$z[268]){foreach
(@$ep){s/[\x1a\r\n\¡\¿]/sprintf($z[252],ord($&))/egx;$_=quotemeta($_);
}}else{$ep=~s/[\x1a\r\n\¡\¿]/sprintf($z[252],ord($&))/egx;$ep
=quotemeta($ep);}$eo=uc$eo;my$eq=$ae->{$z[234]}{$en};unless
(defined$eq){&ak($z[269].$en.$z[270].&er($ek));}if($eo eq$z[271])
{push@el,"/$ep/i";push@em,"\$f[$eq] =~ /$ep/i";}elsif($eo eq
$z[272]){push@em,"\$f[$eq] ne /$ep/i";}elsif($eo eq$z[273])
{push@el,"/¡$ep¡/i";push@em,"\$f[$eq] eq q/$ep/";}elsif($eo 
eq$z[274]||$eo eq$z[275]||$eo eq$z[276]||$eo eq$z[277]||$eo 
eq$z[278]){push@em,"\$f[$eq] $eo $ep";}elsif($eo eq$z[279])
{my($es,$et)=@{$ep};push@em,"\$f[$eq] >= $es && \$f[$eq] <= $et";
}elsif($eo eq$z[280]){my($es,$et)=@{$ep};push@em,"!(\$f[$eq] >= $es && \$f[$eq] <= $et)";
}elsif($eo eq$z[281]){push@em,$z[282].join($z[283],map{"\$f[$eq] eq q/$_/"
}@{$ep}).$z[284];}elsif($eo eq$z[285]){push@em,$z[286].join($z[283],
map{"\$f[$eq] eq q/$_/"}@{$ep}).$z[284];}else{&ak($z[287].$eo
.$z[270].&er($ek));}}unshift(@em,$z[288])if@em;return(\@el,
\@em);}sub da{my($ae,$rec_nopack,$ek)=@_;my($el,$em)=&eu($ae,
$rec_nopack,$ek);return unless(@$el||@$em);my$ev=$z[289].join($z[290],
@$el,@$em).$z[291];&ew($ev);eval$ev;&ew($@);}sub dv{my($ae,
$rec_nopack,$ek)=@_;my($el,$em)=&eu($ae,$rec_nopack,$ek);return
({$z[251]=>1})unless(@$el||@$em);my%match_nopack;my$ev=$z[292]
.join($z[290],@$em).$z[293];&ew($ev);eval$ev;&ew($@);return(\%match_nopack);
}sub cq{my($ex)=(@_);my($ey)=$!;if($ey eq''){$ey="Unknown error. Maybe disk quota exceeded?";
}&ak($z[294],"$ex : $ey\n");}1;;sub pt{local(*AB);my($ez)=$_[0];
my(@fa,$fb,%fc);$fb=\%fc;if(!$_[0]){die"INI_Load : No ini file was specified!\n";
}if(!-e$_[0]){die"INI_Load : The ini file '$_[0]' could not be found!\n";
}open(AB,"<$ez")||die("INI_Load : Could open ini file! $!\n");
@fa=<AB>;close(AB);foreach(@fa){/^\s*#/m&&next;if(/^\s*\[/m)
{$fb=\%fc;foreach(/\[(.+?)\]/g){$fb=\%{$fb->{$_}};}next;}my
$fd=index($_,$z[295]);if($fd>0){my$fe=substr($_,0,$fd);my$ep
=substr($_,$fd+1);foreach($fe,$ep){s/^\s+//;s/\s+$//;}$fe=~
/[^a-zA-Z\/0-9_\-]/&&die("INI_Load : Invalid key '$fe' in ini file '$ez'!\n");
defined$fb->{$fe}&&die("INI_Load : Key '$fe' defined twice in ini file '$ez'!\n");
$fb->{$fe}=$ep;}elsif($fd==-1){my$fe=$_;for($fe){s/^\s+//;s/\s+$//;
}if(!length$fe){next;}defined$fb->{$fe}&&die("INI_Load : Key '$fe' defined twice in ini file '$ez'!\n");
$fb->{$fe}=1;}}return%fc;}sub er{my$fb=$_[0];my$ff=$_[1];my
$fg=$_[2]||$z[296];my$ao;if(ref($fb)eq$z[229]){foreach(sort 
keys%{$fb}){if(ref($fb->{$_})){$ao.=&er($fb->{$_},"$ff\{$_}");
}else{$ao.="\$$fg$ff"."{$_} = $fb->{$_}\n";}}}elsif(ref($fb)
eq$z[268]){for(0..$#{$fb}){if(ref($fb->[$_])){$ao.=&er($fb->[$_],"$ff\[$_]");
}else{$ao.="\$$fg$ff"."[$_] = $fb->[$_]\n";}}}return$ao;}sub 
az{my($fh,$fi)=@_;my(%fj);local(*AC);if(!-e$fh){$!=$z[297].$fh.$z[298];
return(0);}if($fi&&$fi ne$z[299]&&$fi ne$z[300]){die($z[301]."$fi\n");
}opendir(AC,$fh);foreach(grep(!/^\.+$/,readdir(AC))){if($fi 
eq$z[299]){$fj{$_}++if-f"$fh/$_";}elsif($fi eq$z[300]){$fj{$_}++
if-d"$fh/$_";}else{$fj{$_}++;}}closedir(AC);return%fj;}sub 
ew{my$fk;my$cz;while(my($ez,$ea,$fl)=(caller($cz++))[1,2,3])
{$ez=~s/^.*[\/\\]//;$fl=~s/^main:://;unless($fl=~s/__ANON__/(anonymous)/)
{$fl=$z[302].$fl;}$fk.=qq!$ez ($ea)¡called $fl¡¡!;}$fk=~s/\\/\\\\/g;
$fk=~s/'/\\'/g;$fk=~s/¡/\\n/g;$ab{$z[303]}.=qq|<a href="javascript:alert('$fk')"><font color="#BBEEFF">&gt;</font></a><font color="#66CCFF">|;
$ab{$z[303]}.=join("\n<br>",map{&fm($_)}@_)."</font>\n<br>";
}sub qi{my($fn,$fo)=@_;local(*AD);local(*AE);open(AD,"<$fn")
||die($z[304]."$fn : $!\n");open(AE,">$fo")||die($z[305]."$fo : $!\n");
binmode(AD);binmode(AE);print AE<AD>;close(AD);close(AE);}sub 
pu{my($fp)=$_[0];my($fe,$ep,$fq,@fr,$fs,%fc);my($ez,$fh,$ft);
my($fu);binmode(STDIN);if($fp&&($ENV{$z[306]}||length$ENV{$z[307]})
>$fp){die($z[308]."$fp bytes\n");}($fu)=$ENV{$z[309]}=~/boundary=(?:"?)(\S+?)(?:"?)$/;
if($ENV{$z[310]}eq$z[311]&&$ENV{$z[309]}=~m|^multipart/form-data|)
{my$fs;read(STDIN,$fs,$ENV{$z[306]});foreach(split(/\n/,$fs))
{if(/^--$fu--/){$fs.="--$fu";last;}else{$fs.=$_;}}@fr=split(/--$fu/,$fs);
foreach$fq(@fr){unless($fq=~/^(\r\n|\n)Content-Disposition/)
{next;}($fe,$ep)=$fq=~/^(?:\r\n|\n)(.*?)(?:\r\n|\n){2}(.*?)(?:\r\n|\n)$/s;
($fh)=$fe=~/filename="([^"]+)"/;($fe)=$fe=~/name="([^"]+)"/;
($ez)=$fh=~/([^\/\\]+)$/;($ft)=$fh=~/\.(\w+)$/;if(!$fh){$fe
=~s/\r\n/\n/g;$ep=~s/\r\n/\n/g;$fe=~s/\x00//g;$ep=~s/\x00//g;
}$fc{$fe}=$ep;$fc{$fe.$z[312]}=$fh;$fc{$fe.$z[313]}=$ez;$fc{$fe.$z[314]}
=$ft;}}else{if($ENV{$z[310]}eq$z[311]){read(STDIN,$fs,$ENV{$z[306]});
}elsif($ENV{$z[310]}eq$z[315]){$fs=$ENV{$z[307]};}@fr=split(/&/,
$fs);foreach$fq(@fr){($fe,$ep)=split(/=/,$fq);$fe=~tr/+/ /;
$ep=~tr/+/ /;$fe=~s/%([A-F0-9]{2})/pack($z[233],hex($1))/egi;
$ep=~s/%([A-F0-9]{2})/pack($z[233],hex($1))/egi;$fe=~s/\r\n/\n/g;
$ep=~s/\r\n/\n/g;$fe=~s/\x00//g;$ep=~s/\x00//g;if($fe=~/_multi$/)
{push@{$fc{$fe}},$ep;}else{$fc{$fe}=$ep;}}}foreach(keys%fc)
{if(/^(.*)(\.x|\.y)$/){$fc{$1}=$z[316];}}return%fc;}sub nq{
my($fv)=$_[0];my($fw,$fx)=split(/@/,$fv);if($fv eq''){return 
0;}if($fv=~/[^A-Za-z0-9-_\.\@]/){return 0;}if($fw!~/^([\w\-]+[\w\-\.])*[\w\-]+$/)
{return 0;}if($fx!~/^([\w\-]+[\w\-\.])*[\w\-]+\.[A-Za-z]{2,8}$/)
{return 0;}return 1;}sub qj{my($fy,$fz)=@_;unless($fy eq$z[317]
||$fy eq$z[318]||$fy eq$z[319]||$fy eq$z[320]){return undef;
}$fz=~s/[^\d]//g;my@ga=split//,$fz;unless(($fy eq$z[317]&&$ga[0]
==4)||($fy eq$z[318]&&$ga[0]==5)||($fy eq$z[319]&&$ga[0]==3)
||($fy eq$z[320]&&$ga[0]==6)){return undef;}unless(($fy eq$z[317]
&&($#ga==12||$#ga==15))||($fy eq$z[318]&&$#ga==15)||($fy eq
$z[319]&&$#ga==14)||($fy eq$z[320]&&$#ga==15)){return undef;
}my$gb;for(my$fd=($#ga+1)% 2;$fd<=$#ga;$fd+=2){if($ga[$fd]<
5){$ga[$fd]*=2;}else{$ga[$fd]=($ga[$fd]* 2)-9}}foreach(@ga)
{$gb+=$_;}unless($gb% 10==0){return undef;}return 1;}sub gi
{local(*AB);my($ez,%fc,$gc,$gd);%fc=%{$_[1]}if$_[1];my%ge;%ge
=($z[321]=>0,$z[322]=>0,$z[323]=>0,$z[53]=>0);foreach(split(/ /,$_[2]))
{if(undef$ge{$_}){die($z[324]."'$_'\n");}$ge{$_}=1;}if(!$_[0])
{die$z[325]."\n";}if(ref($_[1])ne$z[229]){die$z[326]."\n";}
if((!$ge{$z[322]}||!$ab{$z[134]}{$z[322]}{$_[0]})){if(-e"$_[0]")
{$ez=$_[0];}else{foreach(grep/^templatedir/,sort keys%ab){if
(-e"$ab{$_}/$_[0]"){$ez="$ab{$_}/$_[0]";last;}}if(!$ez){die
$z[327]."'$_[0]'".$z[328]."\n";}}}if($ge{$z[322]}&&$ab{$z[134]}{$z[322]}{$_[0]})
{$gc=$ab{$z[134]}{$z[322]}{$_[0]};}else{open(AB,"<$ez")||die
$z[329]."$ez! $!\n";binmode(AB)if($ez=~/gif$/i||$ez=~/jpg$/i);
read(AB,$gc,-s AB);close(AB);}if($ge{$z[323]}){return$gc;}if
($ge{$z[53]}){$ab{$z[330]}||=$ENV{$z[331]};$ab{$z[330]}||die("Template: webroot isn't defined!<br>\n");
while($gc=~/<!--#include file="(.*?)" -->/g){my$gf=$1;if(($gf
=~m!^/!)||(!$_[3])){$gf="$ab{'webroot'}/$gf";}else{my@gg=split
$z[64],$ez;my$gg=join$z[64],@gg[0..$#gg-1];$gf="$gg/$gf";}my
$gh=&gi($gf,$_[1],$_[2],$z[332]);$gc=~s/<!--#include file=".*?" -->/$gh/;
}}if(!$ge{$z[322]}||!$ab{$z[134]}{$z[322]}{$_[0]}){foreach$gd
($gc=~m/<!-- templatecell\s?:\s?([\w\.]+) -->/g){$ab{$z[134]}{$z[135]}{$1}=$2 
if($gc=~m/<!-- templatecell\s?:\s?($gd) -->(?:\r\n|\n)?(.*?)<!-- \/templatecell\s?:\s? \1 -->/is);
}$gc=~s/<!-- templatecell\s?:\s?([\w\.]+) -->(?:\r\n|\n)?(.*?)<!-- \/templatecell\s?:\s? \1 -->//gis;
if($ge{$z[322]}){$ab{$z[134]}{$z[322]}{$_[0]}=$gc;}}$gc=~s/<!-- template insert\s?:\s?(.*?) -->/$1/gi;
$gc=~s[\$(\w+?)(_ue|_he|_nbsp|_je)?\$][my$ep=defined$ad{$1}
?$ad{$1}:$fc{$1};if($2 eq$z[333]){$ep=&gj($ep);}if($2 eq$z[334])
{$ep=&gk($ep);}if($2 eq$z[335]){$ep=&gk($ep);$ep=~s/ /&nbsp;/g;
}if($2 eq$z[336]){$ep=&gl($ep);}$ep;]ge;return$gc;}sub bv{if
(!$_[0]){die$z[337]."\n";}if(!defined$ab{$z[134]}{$z[135]}{$_[0]})
{die$z[338]."'$_[0]'".$z[339]."\n";}if(ref($_[1])ne"HASH"){
die$z[340]."\n";}local(*AB);my(%fc);%fc=%{$_[1]}if$_[1];my($gc)
=$ab{$z[134]}{$z[135]}{$_[0]};$gc=~s/<!-- templatecell\s?:\s?([\w\.]+) -->(?:\r\n|\n)?(.*?)<!-- \/templatecell\s?:\s? \1 -->//gs;
$gc=~s/<!-- template insert\s?:\s?(.*?) -->/$1/gi;$gc=~s[\$(\w+?)(_ue|_he|_nbsp|_je)?\$][
my$ep=defined$ad{$1}?$ad{$1}:$fc{$1};if($2 eq$z[333]){$ep=&gj($ep);
}if($2 eq$z[334]){$ep=&gk($ep);}if($2 eq$z[335]){$ep=&gk($ep);
$ep=~s/ /&nbsp;/g;}if($2 eq$z[336]){$ep=&gl($ep);}$ep;]ge;return
$gc;}sub qk{my($ag)=$_[0];my(@gm)=(($z[319]..$z[341],$z[342]..$z[343],0..9),$z[344],$z[64]);
my($ao)=unpack($z[345],$ag);$ao=~s/(\d{6}|\d+$)/$gm[ord(pack$z[345],"00$1")]/ge;
while(length($ao)%4){$ao.=$z[295];}return$ao;}sub ql{my($ag)
=$_[0];my(%gm);my($ao);my$cz;for(($z[319]..$z[341],$z[342]..$z[343],0..9),$z[344],$z[64]){
$gm{$_}=$cz++}$ag=$_[0]||return$z[346];$ag=~s/[^A-Za-z0-9+\/]//g;
$ag=~s/[A-Za-z0-9+\/]/unpack'B*',chr($gm{$&})/ge;$ag=~s/\d\d(\d{6})/$1/g;
$ag=~s/\d{8}/$ao.=pack($z[345],$&)/ge;return$ao;}sub gj{my($gn)
=$_[0];$gn=~s/([^A-Za-z0-9\*\.\@\_\-])/uc sprintf($z[347],ord($1))/egx;
$gn=~tr/ /+/;return$gn;}sub hf{my($gn)=$_[0];$gn=~tr/+/ /;$gn
=~s/%([A-F0-9]{2})/pack($z[233],hex($1))/egi;return$gn;}sub 
mv{my($go);my($fe,$ep,$gp,$fh,$gq,$gr)=@_;my($gs);if($fe eq
''){die($z[348]."\n");}if($gp&&$gp ne int($gp)){die($z[349]."\n");
}$ah{$fe}=$ep;if($gp){my($gt,$gu,$gv,$gw,$gx,$gy,$gz,$ha)=gmtime($gp);
($gt,$gu,$gv,$gw)=map{$_<10?$z[350].$_:$_}($gt,$gu,$gv,$gw);
$gs=join('',(qw(Sun Mon Tue Wed Thu Fri Sat Sun))[$gz],", $gw-",(qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec))[$gx],$z[242],1900+$gy,
" $hb$hc$gt GMT");}if($fe){$fe=&gj($fe);}if($ep){$ep=&gj($ep);
}if($gp){$go.=$z[351]."$gs; ";}if($fh){$go.=$z[352]."$fh; ";
}if($gq){$go.=$z[353]."$gq; ";}if($gr){$go.=$z[354];}print$z 
[355]."$fe=$ep; $go\n";}sub pv{my($hd,$fe,$ep,%he);foreach$hd
(split(/; /,$ENV{$z[356]})){($fe,$ep)=split(/=/,$hd);foreach($fe,$ep)
{$_=&hf($_);}$he{$fe}=$ep;}return%he;}sub as{my$hg=$_[0]||die("DateString: The first parameter must be a date or time format string\n");
$hg=~/\%/||die("DateString: The first parameter must contain a date format marker '%'\n");
my$hh=$_[1];my($gy,$gx,$gw,$hi,$gu,$gt,$gz,$ha);my@hj=(0,0,1,0,0,0);
my$hk=$_[-1]=~/^GMT$/i;pop(@_)if$hk;if(scalar(@_)>=3){die("DateString: Too many arguments\n")
if scalar(@_)>7;my$hl;foreach$hl(1..scalar(@_)-1){$hj[$hl-1]
=$_[$hl];}($gy,$gx,$gw,$hi,$gu,$gt)=@hj;if($gw>28){($gy,$gx,
$gw)=&hm($gy,$gx,$gw);}$hh=$hk?&hn($gt,$gu,$hi,$gw,$gx,$gy)
:&ho($gt,$gu,$hi,$gw,$gx,$gy);}else{}($gt,$gu,$hi,$gw,$gx,$gy,
$gz,$ha)=($hk?gmtime($hh):localtime($hh));my$hp;if(exists($ab{DateString}{rhNames}))
{$hp=$ab{DateString}{rhNames};}else{$hp={$z[94]=>exists($af{$z[357]}{ampm})
?[split(/,/,$af{$z[357]}{ampm})]:[qw(AM PM)],$z[358]=>exists($af{$z[357]}{ordinals})
?[split(/,/,$af{$z[357]}{ordinals})]:[$z[359],$z[360],$z[361],
$z[362],$z[363],$z[364],$z[365],$z[366],$z[367],$z[368],$z[369],
$z[370],$z[371],$z[372],$z[373],$z[374],$z[375],$z[376],$z[377],
$z[378],$z[379],$z[380],$z[381],$z[382],$z[383],$z[384],$z[385],
$z[386],$z[387],$z[388],$z[389],$z[390]],$z[391]=>exists($af{$z[357]}{week_full})
?[split(/,/,$af{$z[357]}{week_full})]:[qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday)],
$z[392]=>exists($af{$z[357]}{week_abbr})?[split(/,/,$af{$z[357]}{week_abbr})]
:[qw(Sun Mon Tue Wed Thu Fri Sat)],$z[393]=>exists($af{$z[357]}{month_full})
?[split(/,/,$af{$z[357]}{month_full})]:[qw(January February March April May June July August September October November December)],
$z[394]=>exists($af{$z[357]}{month_abbr})?[split(/,/,$af{$z[357]}{month_abbr})]
:[qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)],};$ab{DateString}{rhNames}
=$hp;}my($hq,$hr)=(0,1);my$hs={$z[395]=>$z[395],$z[342]=>$hp->{week_abbr}[$gz],
$z[319]=>$hp->{week_full}[$gz],$z[396]=>$hp->{month_abbr}[$gx],
$z[397]=>$hp->{month_full}[$gx],$z[398]=>$z[399],$z[233]=>$z[400],
$z[401]=>sprintf($z[402],$gw),$z[320]=>$z[403],$z[404]=>sprintf($z[405],
$gw),$z[406]=>$hp->{month_abbr}[$gx],$z[407]=>sprintf($z[402],
$hi),$z[408]=>sprintf($z[402],$hi% 12||12),$z[409]=>sprintf($z[410],$ha
+1),$z[411]=>sprintf($z[405],$hi),$z[412]=>sprintf($z[405],
$hi% 12||12),$z[413]=>sprintf($z[402],$gx+1),$z[318]=>sprintf($z[402],
$gu),$z[241]=>"\n",$z[414]=>$hp->{ordinals}[$gw],$z[415]=>$hp->{ampm}[$hi
>=12?1:0],$z[416]=>lc($hp->{ampm}[$hi>=12?1:0]),$z[417]=>int($gx
/3)+1,$z[418]=>$z[419],$z[420]=>$z[421],$z[422]=>$hh,$z[423]
=>sprintf($z[402],$gt),$z[424]=>"\t",$z[425]=>$z[426],$z[427]
=>&ht($hq,$gz,$ha),$z[428]=>$gz,$z[429]=>&ht($hr,$gz,$ha),$z[430]
=>$z[403],$z[431]=>$z[426],$z[432]=>sprintf($z[402],$gy% 100),
$z[433]=>sprintf($z[434],$gy+1900),$z[341]=>'',$z[343]=>'',
};$hg=&hu($hs,$hg);return$hg;}sub hu{my($hs,$hg)=@_;$hg=~s/%(O?[%a-zA-Z])/&hv($hs,
$1)/sgeox;return$hg;}sub hv{my$hw=$_[1];return(exists($_[0]->{$hw}))
?($_[0]->{$hw}=~/\%/&&$hw ne$z[395]?&hu($_[0],$_[0]->{$hw})
:$_[0]->{$hw}):"\%$hw";}sub ht{my($hx,$gz,$ha)=@_;$gz=($gz+
7-$hx)% 7;return int(($ha-$gz+13)/7-1);}sub hm{my($gy,$gx,$hy)
=@_;return@_ if$hy<=28;my$hz;if($gx==1){if(($gy% 4==0)&&(!($gy
% 100==0)||($gy% 400==0))){$hz=29;}else{$hz=28;}}elsif($gx==
3||$gx==5||$gx==8||$gx==10){$hz=30;}else{$hz=31;}return($gy,
$gx,$hy<$hz?$hy:$hz);}sub qm{my$ia=$_[0];my$ib=$_[1]||die("DateString: The second argument must time()\n");
my$AF=$_[2];if($ib ne int($ib)){die($z[435]."\n");}my($gt,$gu,$gv,$hy,$gx,$gy,$gz);
if($AF){($gt,$gu,$gv,$hy,$gx,$gy,$gz)=gmtime($ib);}else{($gt,$gu,$gv,$hy,$gx,$gy,$gz)
=localtime($ib);}if($ib=~tr/://){($gy,$gx,$hy,$gv,$gu,$gt,$gz)
=split(/:/,$ib);$gy-=1900;$gx-=1;foreach($gy,$gx,$hy,$gv,$gu,$gt,$gz)
{$_||=0;}}my(%gz,%ic,%gx,%id);my@gx=($z[436],$z[437],$z[438],$z[439],$z[440],$z[441],$z[442],$z[443],$z[444],$z[445],$z[446],$z[447]);
my@id=($z[448],$z[449],$z[450],$z[451],$z[440],$z[452],$z[453],$z[454],$z[455],$z[456],$z[457],$z[458]);
my@gz=($z[459],$z[460],$z[461],$z[462],$z[463],$z[464],$z[465]);
my@ic=($z[466],$z[467],$z[468],$z[469],$z[470],$z[471],$z[472]);
foreach(@gz){$gz{lc$_}++;}foreach(@ic){$ic{lc$_}++;}foreach
(@gx){$gx{lc$_}++;}foreach(@id){$id{lc$_}++;}$ia=~s/\b[A-Za-z]{3,9}\b/
if($gz{lc$&}){if(uc($&)eq$&){uc$gz[$gz];}elsif(lc($&)eq$&){
lc$gz[$gz];}else{ucfirst lc$gz[$gz];}}elsif($ic{lc$&}){if(uc($&)
eq$&){uc$ic[$gz];}elsif(lc($&)eq$&){lc$ic[$gz];}else{ucfirst 
lc$ic[$gz];}}elsif($gx{lc$&}){if(uc($&)eq$&){uc$gx[$gx];}elsif
(lc($&)eq$&){lc$gx[$gx];}else{ucfirst lc$gx[$gx];}}elsif($id{lc
$&}){if(uc($&)eq$&){uc$id[$gx];}elsif(lc($&)eq$&){lc$id[$gx];
}else{ucfirst lc$id[$gx];}}else{$&;}/ge;$ia=~s/\d{1,4}\b/if
(length$&==4){$gy+1900;}elsif(length$&<=2){if(substr($&,0,1)
eq 0){sprintf($z[402],$hy);}else{$hy;}}else{$&;}/ge;$ia=~s/(\d{1,2})(st|nd|rd|th)/
if($hy==1||$hy==21||$hy==31){$hy.$z[473];}elsif($hy==2||$hy
==22){$hy.$z[474];}elsif($hy==3||$hy==23){$hy.$z[475];}else
{$hy.$z[476];}/gei;$ia=~s/YYYY/sprintf($z[434],$gy+1900)/gei;
$ia=~s/YY/sprintf($z[402],$gy%100)/gei;$ia=~s/MO\b/sprintf($z[402],$gx+1)/gei;
$ia=~s/DD/sprintf($z[402],$hy)/gei;$ia=~s/SS/sprintf($z[402],$gt)/gei;
$ia=~s/MM/sprintf($z[402],$gu)/gei;$ia=~s/HH/sprintf($z[402],$gv)/gei;
return$ia;}sub dd{my($ie,$dc,$arrayref_nopack)=@_;my(@f_nopack,$db,$ig,
$ih,$ii,$cz);my($cx,$cy);$cz=0;foreach(split(/ /,$dc)){if(s/\#//g)
{$cx=1;}elsif(s/n//g){$cx=1;}else{$cx=0;}if(s/\-//g){$cy=$z[477];
}elsif(s/\+//g){$cy='';}else{$cy='';}s/[^0-9]//gs;push(@f_nopack,$_);
if($cx){$db+=15;$ih.=$z[478];$ii.=qq|$cy sprintf('%015s',int(substr(\$str[$cz]*100,0,15))),|;
}else{$db+=50;$ih.=$z[479];$ii.="$cy substr(\$str[$cz],0,50),";
}$cz++;}$ig.=qq|return map { substr(\$_,$db) } sort map {\n|;
$ig.=qq|  my \@str = (split(/\\$ie/,lc \$_))[\@f_nopack];\n|;
$ig.=qq|  sprintf("$ih\%s" ,$ii\$_);\n|;$ig.=qq|  } \@\$arrayref_nopack;\n|;
eval$ig;}sub gl{my$ij=shift;$ij=~s/\\/\\\\/g;$ij=~s/'/\\'/g;
$ij=~s/\n/\\n/g;$ij=~s/\r/\\r/g;$ij=~s/\000//g;$ij=~s/-->/--'+'>/g;
$ij=~s!</script>!</scr'+'ipt>!g;return$ij;}sub fm{my$ik=shift;
$ik=~s/&/&amp;/g;$ik=~s/"/&quot;/g;$ik=~s/</&lt;/g;$ik=~s/>/&gt;/g;
return$ik;}sub gk{my$ik=shift;$ik=~s/&([^\w#]|$)/&amp;$1/g;
$ik=~s/"/&quot;/g;$ik=~s/</&lt;/g;$ik=~s/>/&gt;/g;return$ik;
}sub qn{my$ik=shift;$ik=~s/</&lt;/g;$ik=~s/>/&gt;/g;return$ik;
}sub bx{my$il=shift;my%im=map{$_,1}@_;return join($z[302],map
{$im{$_}?():&gj($_).$z[295].&gj($il->{$_})}keys%{$il});}sub 
qo{my$il=shift;my%im=map{$_,1}@_;return join("\n",map{$im{$_}
?():$z[480].&fm($_).$z[481].&fm($il->{$_}).$z[49]}keys%{$il});
}sub ms{$_=$_[0];/\.gif$/i&&return(&in($_[0]));(/\.jpeg$/i||
/\.jpg$/i)&&return(&io($_[0]));/\.png$/i&&return(&ip($_[0]));
undef;}sub ip{my($ec)=@_;my($iq);open(PNG,$ec)||return(undef,
undef,"PNG - Couldn't Open $ec");binmode(PNG);seek(PNG,12,0);
read(PNG,$iq,4);if($iq ne"IHDR"){close PNG;return(undef,undef,
"PNG - Missing Image Header - $iq");}read(PNG,$iq,8);close 
PNG;return unpack("NN",$iq);}sub io{my($ec)=@_;my($iq,$ir,$is,
$it,$iu);open(JPEG,$ec)||return(undef,undef,"JPEG - Couldn't Open $ec");
binmode(JPEG);read(JPEG,$iq,2);while(1){read(JPEG,$ir,4);($is,
$it,$iu)=unpack("a a n",$ir);if($is ne"\xFF"){close JPEG;return(undef,
undef,"JPEG - Marker not Found");}if((ord($it)>=0xC0)&&(ord($it)
<=0xC3)){read(JPEG,$iq,5);close(JPEG);my($iv,$iw)=unpack("xnn",
$iq);return($iw,$iv);}else{read(JPEG,$iq,$iu-2);}}}sub je{my
($ix,$iy)=@_;my($iz);read($ix,$iz,$iy);while(1){if(eof($ix))
{close AG;return(undef);}read($ix,$iz,1);last if ord($iz)==
0;read($ix,$iz,ord($iz));}1;}sub in{my($ec)=@_;my($iq,$fi,$ja,
$jb,$iw,$jc,$iv,$jd);open(AG,$ec)||return(undef,undef,"GIF - Couldn't Open $ec");
binmode(AG);read(AG,$fi,6);read(AG,$iq,7);if(length($iq)!=7)
{close AG;return(undef,undef,"GIF - Corrupted Header");}($iw)
=unpack("x4 C",$iq);if($iw&0x80){$ja=3*(2**(($iw&0x07)+1));
read(AG,$jb,$ja);if(!$jb){close AG;return(undef,undef,"GIF - Corrupted Colour Map");
}}while(1){if(eof(AG)){close AG;return(undef,undef,"GIF - EOF at BlockStart");
}read(AG,$iq,1);($iw)=unpack("C",$iq);if($iw==0x2c){read(AG,
$iq,8);if(length($iq)!=8){close AG;return(undef,undef,"GIF - Missing Image Header");
}($iw,$jc,$iv,$jd)=unpack("x4 C4",$iq);close(AG);return($iw
+$jc* 256,$iv+$jd* 256);}if($iw==0x21){read(AG,$iq,1);($iw)
=unpack("C",$iq);if($iw==0xF9){read(AG,$iq,6);}elsif($iw==0xFE)
{&je(\*AG,0)||return(undef,undef,"GIF - Bad Block - skip=0");
}elsif($iw==0x01){&je(\*AG,13)||return(undef,undef,"GIF - Bad Block - skip=13");
}elsif($iw==0xFF){&je(\*AG,12)||return(undef,undef,"GIF - Bad Block - skip=12");
}else{close AG;return(undef,undef,"GIF - Unknown Block Extension");
}}else{close AG;return(undef,undef,"GIF - Unknown Block Type");
}}}sub qp{return($_[0]=~/(.+)/s)[0]||$_[0];}sub qs{my$jf;foreach
(split/\n/,shift){s!\\!\\\\!g;s!\"!\\\"!g;s!</!<\\/!g;$jf.=
qq|document.write("$_\\n");\n|;}return$jf;}sub qt{my$jg=$_[0];
my$jh=$_[1];my$ji=$_[2];my@jj;my$bt;my$jk=scalar@{$jg};my$jl
=int($jk/$cols)+int(int($jk/$cols)<($jk/$cols));foreach(@{$jg})
{if(++$bt>$jl){$bt=1;}push(@{$jj[$bt]},$_);}if(defined$ji){
foreach(0..$#jj){while(scalar@{$jj[$_]}<$jh){push(@{$jj[$_]},
$ji);}}}shift@jj;return@jj;}sub nc{my($jm,%jn,$AH);$jm=$_[0];
%jn=%{$_[1]};$AH="\x0D\x0A";local(*AI);if(!defined&jo){die("SMTP_sendmail: Couldn't find required subroutine 'SMTP_parseheader'\n");
}if(!defined&jp){die("SMTP_sendmail: Couldn't find required subroutine 'SMTP_debug'\n");
}if(!defined&jq){die("SMTP_sendmail: Couldn't find required subroutine 'SMTP_readline'\n");
}if(!defined&jr){die("SMTP_sendmail: Couldn't find required subroutine 'SMTP_pop3auth'\n");
}if(!defined&js){die("SMTP_sendmail: Couldn't find required subroutine 'FH_readline'\n");
}if(!defined&jt){die("SMTP_sendmail: Couldn't find required subroutine 'FH_can_read'\n");
}foreach(keys%{$ab{$z[482]}}){defined$jn{$_}&&next;$jn{$_}=
$ab{$z[482]}{$_};}my($fx,$ju,$jv,$jw,$ew);$fx=$jn{$z[483]};
$ju=$jn{$z[484]}||25;$jv=$jn{$z[485]}||$z[486];$jw=$jn{$z[487]}
||30;$ew=$jn{$z[488]}||0;$jw+=time()if$jw<10**8&&$jw>0;if($fx
=~s/:(\d+)//){$ju=$1;}if(!$fx){$ab{$z[489]}="No SMTP host specified.\n";
return 0;}if(!$ju){$ab{$z[489]}="No SMTP port specified.\n";
return 0;}my($jx,@jy)=&jo($jm);$jm=~tr/\r//d;$jm=~s/\n/\r\n/gs;
$jm=~s/^\s*bcc\s*:.*\n//mgi;if($jn{$z[490]}){&jr(\%jn)||return 
0;}my($jz)=gethostbyname($fx)||do{$ab{$z[489]}="Could not connect to SMTP server. Unknown host $fx\n";
return 0;};socket(AI,PF_INET,SOCK_STREAM,0)||do{$ab{$z[489]}
="Could not connect to SMTP server.  No Socket: $!\n";return 
0;};connect(AI,pack"SnA4x8",PF_INET,$ju,$jz)||do{if($!eq"Unknown error")
{$ab{$z[489]}="Could not connect to SMTP server.  SMTP server does not exist or is not responding.\n";
return 0;}else{$ab{$z[489]}="Could not connect to SMTP server.  Connect failed: $!\n";
return 0;}};select(AI);$|=1;select(STDOUT);binmode(AI);my$ka
=&jq(\*AI,$jw)||do{$ab{$z[489]}="Timed out waiting for SMTP server to respond.\n";
return 0;};if($ew){&jp($ka);}if(substr($ka,0,3)ne"220"){$ab{$z[489]}
="An unknown error occured.  Server response: $ka\n";return 
0;}print AI"HELO $jv",$AH;if($ew){&jp("HELO $jv",$AH);}$ka=
&jq(\*AI,$jw)||do{$ab{$z[489]}="Timed out waiting for SMTP server to respond.\n";
return 0;};if($ew){&jp($ka);}if(substr($ka,0,3)ne"250"){$ab{$z[489]}
="An unknown error occured.  Server response: $ka\n";return 
0;}print AI"MAIL FROM:<$jx>",$AH;if($ew){&jp("MAIL FROM:<$jx>",
$AH);}$ka=&jq(\*AI,$jw)||do{$ab{$z[489]}="Timed out waiting for SMTP server to respond.\n";
return 0;};if($ew){&jp($ka);}if(substr($ka,0,3)ne"250"){$ab{$z[489]}
="An unknown error occured.  Server response: $ka\n";return 
0;}my$jy;foreach$jy(@jy){print AI"RCPT TO:<$jy>",$AH;if($ew)
{&jp("RCPT TO:<$jy>",$AH);}$ka=&jq(\*AI,$jw)||do{$ab{$z[489]}
="Timed out waiting for SMTP server to respond.\n";return 0;
};if($ew){&jp($ka);}if(substr($ka,0,2)eq"55"){$ab{$z[489]}=
"The server won't accept mail for '$jy'.  Server response: $ka\n";
return 0;}if(substr($ka,0,2)ne"25"){$ab{$z[489]}="An unknown error occured.  Server response: $ka\n";
return 0;}}print AI"DATA",$AH;if($ew){&jp("DATA",$AH);}$ka=
&jq(\*AI,$jw)||do{$ab{$z[489]}="Timed out waiting for SMTP server to respond.\n";
return 0;};if($ew){&jp($ka);}if(substr($ka,0,3)ne"354"){$ab{$z[489]}
="An unknown error occured.  Server response: $ka\n";return 
0;}$jm=~s/^\./\.\./gm;print AI$jm,$AH;if($ew){&jp($jm,$AH);
}print AI".",$AH;if($ew){&jp(".",$AH);}$ka=&jq(\*AI,$jw)||do
{$ab{$z[489]}="Timed out waiting for SMTP server to respond.\n";
return 0;};if($ew){&jp($ka);}if(substr($ka,0,3)ne"250"){$ab{$z[489]}
="An unknown error occured.  Server response: $ka\n";return 
0;}print AI"QUIT",$AH;if($ew){&jp("QUIT",$AH);}close(AI);return 
1;}sub jo{my($jm,$bo,$kb,$kc,$ea);$jm=$_[0];$jm=~tr/\r//d;$bo
=$z[491];$bo.=$z[492];if($jm=~m/^(.*?)\n\n(.*)$/s){($kb,$kc)
=($1,$2);}else{die("SMTP_parseheader: couldn't find email header!\n");
}my($jx,@jy);foreach$ea(split(/\n/,$kb)){foreach(qw(from to cc bcc))
{if($ea=~/^\s*$_\s*:/i){my$kd=$_;foreach($ea=~m/($bo)/g){if
($kd eq$z[493]){$jx=$_;}else{push@jy,$_;}}}}}$jx||die("SMTP_parseheader: couldn't find from: address in mail header\n");
$#jy>=0||die("SMTP_parseheader: couldn't find to: address in mail header\n");
return($jx,@jy);}sub jq{my$AJ=$_[0];my$jw=int($_[1]);if(!$jw)
{die("SMTP_readline: no timeout value specified!\n");}if($jw
<10**8){die("SMTP_readline: timeout value must be in time() format!Rec'd: $jw\n");
}fileno($AJ)||die("SMTP_readline: invalid filehandle or filehandle not open!\n");
my($ea,$ke);while(!$ea||substr($ea,3,1)eq$z[242]){$ea=&js($AJ,$jw);
$ke.=$ea;}return$ke;}sub jp{my$ex=join'',@_;$ex=~s/\s+$//m;
my$kf=localtime();local*AK;if(!$ex){$kf="";$ex="\n";}if($ex
=~/^From:/i){$ex="[email content]";}if($ex=~/^PASS /i){$ex=
"PASS (not shown)";}$ex=~s/</&lt;/g;$ex=~s/>/&gt;/g;$ex=~s/\r\n|\n/<br>\n/g;
print"<p>$ex<br>\n\n";}sub jr{my($jm,%jn,$AH);%jn=%{$_[0]};
$AH="\x0D\x0A";local(*AI);if(!$jn{$z[494]}){die("SMTP_pop3auth: POP3 username not defined'\n");
}if(!$jn{$z[495]}){die("SMTP_pop3auth: POP3 password not defined'\n");
}if($ab{$z[496]}{$z[497]}){return 1;}my($fx,$ju,$fw,$kg,$jw,$ew);
$fx=$jn{$z[498]}||$jn{$z[483]};$ju=$jn{$z[499]}||110;$fw=$jn{$z[494]};
$kg=$jn{$z[495]};$jw=$jn{$z[500]}||$jn{$z[487]}||30;$ew=$jn{$z[488]}
||0;$jw+=time()if$jw<10**8&&$jw>0;if($fx=~s/:(\d+)//){$ju=$1;
}my($jz)=gethostbyname($fx)||do{$ab{$z[489]}="Could not connect to POP3 server. Unknown host $fx\n";
return 0;};socket(AI,PF_INET,SOCK_STREAM,0)||do{$ab{$z[489]}
="Could not connect to POP3 server.  No Socket: $!\n";return 
0;};connect(AI,pack"SnA4x8",PF_INET,$ju,$jz)||do{if($!eq"Unknown error")
{$ab{$z[489]}="Could not connect to POP3 server.  POP3 server does not exist or is not responding.\n";
return 0;}else{$ab{$z[489]}="Could not connect to POP3 server.  Connect failed: $!\n";
return 0;}};select(AI);$|=1;select(STDOUT);binmode(AI);my$ka
=&js(\*AI,$jw)||do{$ab{$z[489]}="Timed out waiting for POP3 server to respond.\n";
return 0;};if($ew){&jp($ka);}if(uc(substr($ka,0,3))ne"+OK")
{$ab{$z[489]}="An unknown error occured.  Server response: $ka\n";
return 0;}print AI"USER $fw",$AH;if($ew){&jp("USER $fw",$AH);
}$ka=&js(\*AI,$jw)||do{$ab{$z[489]}="Timed out waiting for POP3 server to respond.\n";
return 0;};if($ew){&jp($ka);}if(substr($ka,0,3)ne"+OK"){$ab{$z[489]}
="The server didn't accept the login info for '$fw'.  Server response: $ka\n";
return 0;}print AI"PASS $kg",$AH;if($ew){&jp("PASS $kg",$AH);
}$ka=&js(\*AI,$jw)||do{$ab{$z[489]}="Timed out waiting for POP3 server to respond.\n";
return 0;};if($ew){&jp($ka);}if(substr($ka,0,3)ne"+OK"){$ab{$z[489]}
="The server didn't accept the login info for '$fw'.  Server response: $ka\n";
return 0;}print AI"QUIT",$AH;if($ew){&jp("QUIT",$AH);}close(AI);
$ab{$z[496]}{$z[497]}=1;return 1;}sub jt{my$AJ=$_[0];my$jw=
$_[1]||$z[350];my($kh,$ki,$kj,$kk,$kl,$km,$kn);fileno($AJ)||
die("fh_can_read: invalid filehandle or filehandle not open!\n");
vec($kh,fileno($AJ),1)=1;$kn=select($ki=$kh,undef,undef,$jw);
return vec($ki,fileno($AJ),1);}sub js{my$AJ=$_[0];my$jw=int($_[1]);
if(!$jw){die("FH_readline: no timeout value specified!\n");
}if($jw<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($ea,$ko);while($jw>=time()){&jt(\*AI,0.25)||next;sysread(\*AI,$ko,
1)||last;$ea.=$ko;if($ko eq"\x0A"){last;}}return$ea;}sub ky
{my$kp=$ab{$z[501]}{$z[502]}||={};my$kq=int++$kp->{$z[48]};
my$fe="FH$kq";return eval"local *$fe";}sub eh{return unless
($af{$z[503]});my$kp=$ab{$z[501]}{$z[504]}||={};$kp->{$z[505]}
||=[];my($kr,$jw)=@_;$kr||=$z[267];$jw||=0;if($kr ne$z[267]
and$kr ne$z[506]){&ak("lock: invalid lock type: '$kr'");}my
$ks;if(@{$kp->{$z[505]}}>0){$ks=$kp->{$z[505]}[-1];}if($ks 
eq$z[267]){$kr=$ks;}if($ks eq$kr){push(@{$kp->{$z[505]}},$kr);
return 1;}my$kt;if($ks eq$z[506]and$kr eq$z[267]){&ak("lock: cannot upgrade a 'shared' lock to an 'exclusive' lock");
}$kt=&ku('',$kr,$jw);if($kt){push(@{$kp->{$z[505]}},$kr);}return
$kt;}sub ei{return unless($af{$z[503]});my$kp=$ab{$z[501]}{$z[504]}
||={};$kp->{$z[505]}||=[];my($jw)=@_;$jw||=0;unless(@{$kp->{$z[505]}}
>0){&ak($z[507])}my$ks=pop(@{$kp->{$z[505]}});return if(@{$kp->{$z[505]}}
>0 and$kp->{$z[505]}[-1]eq$ks);if(@{$kp->{$z[505]}}==0){&kv('');
}}sub ku{my$kp=$ab{$z[501]}{$z[504]}||={};my($kw,$kr,$jw)=@_;
my$kx;if($kw){$kx="$ab{'datadir'}$kw.lock";}else{$kx=$ab{$z[508]};
}if(not exists$kp->{$z[509]}{$kw}){$kp->{$z[509]}{$kw}{$z[107]}
=$kx;$kp->{$z[509]}{$kw}{$z[510]}=&ky();sysopen($kp->{$z[509]}{$kw}{$z[510]},
$kp->{$z[509]}{$kw}{$z[107]},O_RDWR|O_CREAT)||&ak($z[508],"error opening $kr file lock $kp->{'lockinfo'}{$kw}{'filename'}: $!\n");
}else{&ak("_lock_flock: already a lock for semaphore '$kw'");
}my$kz;if($kr eq$z[506]){$kz=LOCK_SH;}if($kr eq$z[267]){$kz
=LOCK_EX;}if($jw>0){$kz|=LOCK_NB;}my$la=time()+$jw;until(flock($kp->{$z[509]}{$kw}{$z[510]},
$kz)){if(time()<$la){sleep(1);}else{close($kp->{$z[509]}{$kw}{$z[510]});
&ak($z[511]);}}return 1;}sub kv{my$kp=$ab{$z[501]}{$z[504]}
||={};my($kw)=@_;unless(flock($kp->{$z[509]}{$kw}{$z[510]},
LOCK_UN)){&ak($z[508],"error releasing a flock() on file lock $kp->{'lockinfo'}{$kw}{'filename'}: $!\n");
}unless(close($kp->{$z[509]}{$kw}{$z[510]})){&ak($z[508],"error closing file lock $kp->{'lockinfo'}{$kw}{'filename'}: $!\n");
}delete$kp->{$z[509]}{$kw};return 1;}sub qu{my$fh=shift;$fh
=~s|\\|/|g;if($fh=~m|^/|){return$fh;}if($fh=~m|^\w:/|){return
$fh;}return&lb($ab{$z[512]}.$z[64].$fh);}sub lb{my$fh=shift;
$fh=~s|\\|/|g;1 while$fh=~s|[^/]*/\.\./||;return$fh;}sub qv
{my($ld,@jn)=@_;$ld=~s/\s+//g;$ld=uc$ld;my$le;my$lf=-1;my$lg;
foreach$lg(split(/,/,$ld)){$lf++;my$lh=shift@jn;my$li=$lg=~
s/\[|\]//g;if($lg eq$z[513]){@jn=();last;}next if($li and not 
defined$lh);next if($lg eq$z[514]and defined$lh);next if($lg
=~/\bVALUE\b/and not ref($lh)and defined($lh));next if(uc(ref
$lh)=~/\b$lg\b/);next if($lg=~/\bINT\b/and$lh!~/[^0-9\.\e\-]/i 
and$lh==int($lh));$le.=", "if$le;$le.="\$_[$lf] must be ";$le
.="either "if$li;$le.=$lg;$le.=" or undefined"if$li;$le.=" ARG: $lh.";
}if(@jn){$lf++;$le.=", "if$le;$le.="extra argument(s) \@_["
.($lf)." .. ".($lf+$#jn)."]";}return 1unless$le;my$fl=(caller(1))[3];
$fl=~s/^main:://;&ak("Invalid arguments passed to $fl".": $le");
}1;;sub lr{my($lj,$lk)=@_;foreach(@{$lj->{$z[173]}}){my($ll,
$fl)=@{$_};if(!defined&{$fl}&&!defined&{$ab{$z[515]}{$ll}})
{die("The action '$ll' defined as a handler for db '$lj->{'name'}' does not have a custom handler or a default handler");
}if((!$lk&&$ag{$lj->{$z[50]}.$z[516].$ll})||$lk eq$ll){if(defined
&{$fl}){&{$fl}($lj);exit;}else{&{$ab{$z[515]}{$ll}}($lj);exit;
}}}if($lk){die"Unable to execute forced action '$lk' on db '$lj->{'name'}'";
}}sub qy{my$lj=shift;my$ao=&lm($lj);&ln($lj,$ao);}sub qz{my
$lj=shift;my$ao=&lo($lj);&lp($lj,$ao);&lq($z[517],$ao);exit;
}sub ra{my$lj=shift;if(!$ac{$z[518]}){&lr($lj,$z[174]);}my$ao
=&ls($lj);&lq($z[518],$ao);exit;}sub rb{my$lj=shift;my$ao=&lt($lj);
&lu($lj,$ao);}sub rc{my$lj=shift;&cp;my$lv=&lw($lj);my$lx=&ly($lj,
$lv);&lz($lj,$lv);&ma($lj,$lv);&cr;&mb($lj,$lx);&mc($lj);}sub 
rd{my$lj=shift;my($dh,$di);my$md={$z[57]=>$af{$z[519]}{$z[57]},
$z[520]=>1,$z[84]=>'',};$md=&me($lj,$md);foreach(split(/\s+/,$lj->{$z[81]}))
{push(@$di,[$_,$z[271],$md->{$z[84]}]);}my$ap=sub{my$mf=shift;
if(!defined$mf->{$z[521]}&&$mf->{$z[19]}){my$ib=&ho(0,0,0,$mf->{$z[20]},$mf->{$z[19]}-1,$mf->{$z[18]});
$mf->{$z[521]}=&as($ab{$z[98]},$ib);}$mf->{$z[522]}=&as($ab{$z[40]},int($mf->{$z[522]}))
if$mf->{$z[522]};$mf->{$z[66]}=&as($ab{$z[40]},int($mf->{$z[66]}))
if$mf->{$z[66]};$ad{$z[523]}=$ad{$z[523]}eq$z[524]?$z[525]:
$z[524];return&bv($z[123],$mf);};my$ao=&mg($lj,$ap,$md,$dh,
$di);&mh($ao);}sub lm{my$lj=shift;$ad{$z[526]}=$lj->{$z[146]};
$ad{$z[527]}=$lj->{$z[50]};&gi($lj->{$z[148]},{});my($ao)={};
if($lj->{$z[528]}&&&mi($lj)>=$lj->{$z[528]}){&lq($z[529],$lj);
}my($hy,$gx,$gy)=(localtime(&at($^T)))[3,4,5];$gx++;$gy+=1900;
$ao->{"day_$hy".$z[530]}=$z[531];$ao->{"mon_$gx".$z[530]}=$z[531];
$ao->{"year_$gy".$z[530]}=$z[531];foreach(split(/ /,$lj->{$z[76]}))
{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 ln{my($lj,$ao)=@_;if($ab{$z[134]}{$z[135]}{$z[535]})
{&lq($z[535],$ao);}else{&lq($z[517],$ao);}exit;}sub lo{my$lj
=shift;$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}=$lj->{$z[50]};
&gi($lj->{$z[148]},{});my($kq)=int$ag{$lj->{$z[50]}.$z[536]};
my$ao={};&mj($lj,$ao,$kq)||&ak($z[537],$kq);return$ao;}sub 
lp{my($lj,$ao)=@_;foreach(split(/ /,$lj->{$z[76]})){if(/^ufile/
&&!$ao->{$_}){$ao->{$_}=$z[532];}}foreach(keys%{$ao}){$ao->{$_}
=&gk($ao->{$_});}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%mk;&mj($ae{$z[195]},\%mk,$ao->{$z[533]})
if$ao->{$z[533]};$ao->{$z[533]}=$mk{$z[50]}||"unknown user";
&mj($ae{$z[195]},\%mk,$ao->{$z[534]})if$ao->{$z[534]};$ao->{$z[534]}
=$mk{$z[50]}||"unknown user";return$ao;}sub ls{my$lj=shift;
$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}=$lj->{$z[50]};&gi($lj->{$z[148]},
{});my($kq)=int($ag{$lj->{$z[50]}.$z[540]})||int($ag{$z[48]});
my($ao)={};&mj($lj,$ao,$kq)||&ak($z[537],$kq);return$ao;}sub 
lt{my$lj=shift;$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}=$lj->{$z[50]};
&gi($lj->{$z[148]},{});my($kq)=$ag{$z[48]}||$ag{$lj->{$z[50]}.$z[540]};
my$ao={};&cp();&mj($lj,$ao,$kq)||&ak($z[537],$kq);&ml($lj,$kq)
||die($z[541].$kq);&cr();foreach(split(/ /,$lj->{$z[76]})){
if(/^ufile/&&$ao->{$_}){if(-e"$ac{'dir_upload'}/$ao->{$_}")
{unlink("$ac{'dir_upload'}/$ao->{$_}");}}}if(defined&{$lj->{$z[172]}})
{&{$lj->{$z[172]}}($kq,$z[174],$ao);}return$ao;}sub lu{my($lj,
$ao)=@_;if(!$ac{$z[542]}){&lr($lj,$z[175]);}&lq($z[543],$ao);
exit;}sub lw{my$lj=shift;$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}
=$lj->{$z[50]};&gi($lj->{$z[148]},{});my($kq)=int($ag{$z[48]});
my$lv={};if($lj->{$z[528]}){my($bk)=&mi($lj);if($kq&&$bk>$lj->{$z[528]})
{&lq($z[529],$lj);}elsif(!$kq&&$bk>=$lj->{$z[528]}){&lq($z[529],$lj);
}}if($kq){&mj($lj,$lv,$kq)||die("ui_save : Can't find record #$kq");
}return($lv);}sub ly{my($mf)=$_[0]->{$z[50]}||die($z[544]);
my($kq)=int($ag{$z[48]});my(%mf)=%{$_[1]||{}};my(%ez,%ft,$en,%lx,%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");
}%ez=&az($ac{$z[545]});foreach(split(/ |\,/,$ac{$z[546]})){
$ft{$_}++if$_;}foreach$en(split(/ /,$_[0]->{$z[76]})){if($en
!~/^ufile/){next;}if($ag{$en}){if($ac{$z[547]}&&length($ag{$en})
>$ac{$z[548]}*1000){my$mm=length($ag{$en});$lx{$z[549]}.=qq|$ag{$en."_file"} ($mm bytes, file too large)<br>\n|;
$ag{$en}=$mf{$en};next;}if(!$ft{lc$ag{$en.$z[314]}}){$lx{$z[549]}
.=qq|$ag{$en."_file"} ('$ag{$en.'_ext'}' files not accepted)<br>\n|;
$ag{$en}=$mf{$en};next;}if($mf{$en}&&$ez{$mf{$en}}){unlink("$ac{'dir_upload'}/$mf{$en}");
}my($mn);my($mo)=lc$ag{$en.$z[313]};my($mp)=lc$ag{$en.$z[314]};
my($mq)=$z[550];$mo=~s/\.[^\.]*$//g;$mo=~s/[^a-z0-9_\-]/_/g;
$mp=~s/[^a-z0-9_\-]/_/g;$mn="$mo.$mp";if(-e"$ac{'dir_upload'}/$mn")
{do{$mq=sprintf($z[410],++$mq);$mn=$mo."_$mq.$mp";}while(-e
"$ac{'dir_upload'}/$mn");}open(AB,">$ac{'dir_upload'}/$mn")
||die($z[551]."$mn $!\n");binmode AB;print AB$ag{$en};close(AB);
if($mn=~/\.(gif|jpg|jpeg|png)$/i){my($jc,$jd,$mr)=&ms("$ac{'dir_upload'}/$mn");
if(($ac{$z[552]}&&$jd>$ac{$z[552]})||($ac{$z[553]}&&$jc>$ac{$z[553]}))
{unlink("$ac{'dir_upload'}/$mn");$lx{$z[549]}.=qq|$ag{$en."_file"} (${jd}x$jc, image too big)<br>\n|;
$ag{$en}=$mf{$en};next;}}$ag{$en}=$mn;}elsif($ag{$en.$z[313]})
{if($mf{$en}&&$ez{$mf{$en}}){unlink("$ac{'dir_upload'}/$mf{$en}");
}$mf{$en}='';}else{$ag{$en}=$mf{$en};}}return\%lx;}sub lz{my
($lj,$lv)=@_;my($kq)=int($ag{$z[48]});$ag{$z[522]}=$kq?$lv->{$z[522]}
:$^T;$ag{$z[533]}=$kq?$lv->{$z[533]}:$ai{$z[48]};$ag{$z[554]}
=$kq?$lv->{$z[554]}:$ai{$z[48]};$ag{$z[66]}=$^T;$ag{$z[534]}
=$ai{$z[48]};my$mt;foreach$mt($lj->{$z[76]}=~/\bufile([^ ]*)\b/g)
{if($lj->{$z[76]}=~/\bimagewidth\Q$mt\E\b/){($ag{$z[555].$mt},
$ag{$z[556].$mt})=&ms($ac{$z[545]}.$ag{$z[557].$mt});}}}sub 
ma{my($lj,$lv)=@_;my($kq)=int($ag{$z[48]});if($kq){&dz($lj,
\%ag,$kq);}else{$ag{$z[48]}=&ef($lj,\%ag,$kq);}if(defined&{$lj->{$z[172]}})
{&{$lj->{$z[172]}}($ag{$z[48]},$z[558],$lv);}}sub mb{my($lj,
$lx)=@_;if(keys%{$lx}){undef$ac{$z[548]}if!$ac{$z[547]};$lx->{$z[48]}
=$ag{$z[48]};$lx->{$z[559]}=&bv($z[559],\%ac)if$ac{$z[548]};
$lx->{$z[560]}=&bv($z[560],\%ac)if$ac{$z[552]};$lx->{$z[561]}
=&bv($z[561],\%ac)if$ac{$z[553]};$lx->{$z[562]}=&bv($z[562],
{$z[546]=>$ac{$z[546]}?$ac{$z[546]}:$z[563]});&lq($z[564],$lx);
exit;}}sub mc{my($lj)=@_;if(!$ac{$z[565]}){&lr($lj,$z[175]);
}&lq($z[566],\%ag);exit;}sub mh{my$ao=shift;&lq($z[175],$ao);
exit;}sub me{my($lj,$md)=@_;$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}
=$lj->{$z[50]};if(ref($lj)ne$z[229]){die$z[567]."\n";}&gi($lj->{$z[148]},
{});if($ag{$lj->{$z[50]}.$z[568]}){my$mu={};while($ah{$lj->{$z[50]}.$z[569]}
=~/(.*?)\t(.*?)\t/g){$mu->{$1}=$2;}$md->{$z[57]}=$ag{$z[570]}
||$mu->{$z[57]};}else{while($ah{$lj->{$z[50]}.$z[569]}=~/(.*?)\t(.*?)\t/g)
{$md->{$1}=$2;}foreach(keys%{$md}){if(defined$ag{$z[516].$_})
{if($_ ne$z[57]&&$_ ne$z[520]){$md->{$z[520]}=1;}$md->{$_}=
$ag{$z[516].$_};}}}&mv($lj->{$z[50]}.$z[569],join("\t",map{
$_,$md->{$_}}keys%{$md})."\t");foreach(keys%{$md}){$ad{$z[516]
.$_}=$md->{$_};$ad{$z[516].$_.$z[516].$md->{$_}.$z[530]}=$z[531];
}return$md;}sub mg{my($lj,$ap,$md,$dh,$di)=@_;my%ao;my$jf=sub
{$ao{$z[571]}.=&{$ap}(@_);};($ao{$z[572]},$ao{$z[573]},$ao{$z[574]},
$ao{$z[575]},$ao{$z[576]},$ao{$z[577]})=&mw($lj,$jf,$md->{$z[520]},
$md->{$z[57]},$dh,$di);unless($ao{$z[571]}){if($ab{$z[134]}{$z[135]}{$z[578]}
&&scalar grep{$_ ne$z[57]&&$_ ne$z[520]&&$md->{$_}ne''}keys
%{$md}){$ao{$z[571]}=&bv($z[578],{});}else{$ao{$z[571]}=&bv($z[129],
{});}}return\%ao;}sub cm{my$lj=shift;my($dh,$di);my$md={$z[57]
=>$af{$z[519]}{$z[57]},$z[520]=>1,$z[84]=>'',};$md=&me($lj,
$md);foreach(split(/\s+/,$lj->{$z[81]})){push(@$di,[$_,$z[271],
$md->{$z[84]}]);}my$ap=sub{my$mf=shift;$mf->{$z[579]}=$aj[$mf->{$z[580]}];
if(!defined$mf->{$z[521]}&&$mf->{$z[19]}){my$ib=&ho(0,0,0,$mf->{$z[20]},$mf->{$z[19]}-1,$mf->{$z[18]});
$mf->{$z[521]}=&as($ab{$z[98]},$ib);}$mf->{$z[522]}=&as($ab{$z[40]},int($mf->{$z[522]}))
if$mf->{$z[522]};$mf->{$z[66]}=&as($ab{$z[40]},int($mf->{$z[66]}))
if$mf->{$z[66]};$ad{$z[523]}=$ad{$z[523]}eq$z[524]?$z[525]:
$z[524];return&bv($z[123],$mf);};my$ao=&mg($lj,$ap,$md,$dh,
$di);&mh($ao);}sub re{my$lj=shift;&cp();my$lv=&lw($lj);my$lx
=&ly($lj,$lv);&lz($lj,$lv);my%mx;if(&mz($lj,\%mx,$z[581],$ag{$z[581]}))
{if($mx{$z[48]}!=$lv->{$z[48]}){&cr();&lq($z[582],\%ag);}}if
($ag{$z[48]}==$ai{$z[48]}&&$ag{$z[580]}<9){&cr();&lq($z[583],
{});}&ma($lj,$lv);my%na;if(&mz($ae{$z[200]},\%na,$z[48],$ag{$z[48]}))
{&dz($ae{$z[200]},\%ag,$ag{$z[48]});}&cr();&mb($lj,$lx);&mc($lj);
}sub rf{my$lj=shift;if(!$ac{$z[518]}){&lr($lj,$z[174]);}my$ao
=&ls($lj);if($ao->{$z[48]}==$ai{$z[48]}&&$ag{$z[580]}<9){&lq($z[583],
{});}&lq($z[518],$ao);}sub cl{my$lj=shift;my$kq=$ag{$z[48]}
||$ag{$lj->{$z[50]}.$z[540]};if($kq==$ai{$z[48]}&&$ag{$z[580]}
<9){$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}=$lj->{$z[50]};
&gi($lj->{$z[148]},{});&lq($z[583],{});}&cp();&mj($ae{$z[195]},
{},$ai{$z[48]})||&nb($z[584],{});my$ao=&lt($lj);&ml($ae{$z[200]},
$kq);&cr();&lu($lj,$ao);}sub nv{my$jm=shift;if($ac{$z[585]}
eq$z[586]){my%jn=(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]});
&nc($jm,\%jn)||die("Error sending message: $ab{'error'}");}
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($jx)=&jo($jm);open(AL,"|$ac{'mail_sendmail'} -f $jx -t")
||die"Can't open $ac{'mail_sendmail'} : $!";print AL$jm;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 rg{my($fi)=$_[0];my($nd)=$ag{$z[597]}||die("browse: you must pass a name/value for the 'fieldname'!\n");
my(%ao,$fj);if($fi ne$z[598]&&$fi ne$z[599]){die("browse: the first argument must be either 'dir' or 'file'!\n");
}if($ag{$z[600]}){&ne($z[601].$z[602].$ab{$z[0]}.$z[603]);}
if($ag{$z[604]}){&ne($z[605].$z[602].$ab{$z[0]}.$z[603]);}if
($ag{$z[598]}){&ne($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]};
}&gi("_browse_$fi.html",{});my$nf="/";$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'}$nf$ag{'mkdir_name'}",0777)){
$ad{$z[611]}=$z[614].$!;}if($ad{$z[611]}){$ad{$z[611]}=&bv($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'}$nf$ag{'mkfile_name'}"){$ad{$z[616]}
=$z[619];}elsif(!open(AB,">$ag{'cdir'}$nf$ag{'mkfile_name'}"))
{$ad{$z[616]}=$z[620].$!;}close(AB);if($ad{$z[616]}){$ad{$z[616]}
=&bv($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||$nf);$ao{$z[623]}=&gj($ao{$z[622]});
$ao{$z[175]}.=&bv($z[622],\%ao)if($ao{$z[598]}=~m!.+(\\|/)!);
if(!-e$ao{$z[598]}){$ao{$z[489]}=$z[624];}elsif(!-r$ao{$z[598]})
{$ao{$z[489]}=$z[625];}if($ao{$z[489]}){print"Content-type: text/html\n\n"
unless($ab{$z[626]}++);$ao{$z[175]}.=&bv($z[489],\%ao);print
&gi($z[627],\%ao);exit;}opendir(AC,"$ao{'dir2'}");my@fj=sort
{lc$a cmp lc$b}grep(!/^\.+$/,readdir(AC));closedir(AC);my($az);
foreach$az(@fj){-d"$ao{'dir'}$nf$az"||next;$ao{$z[50]}=$az;
$ao{$z[628]}="$ao{'dir'}$nf$az";$ao{$z[628]}=~s/$nf+/$nf/g;
$ao{$z[629]}=&gj($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[175]}.=&bv($z[598],\%ao);
$fj++;}my($ez);foreach$ez(@fj){-d"$ao{'dir'}$nf$ez"&&next;$ao{$z[50]}
=$ez;$ao{$z[628]}="$ao{'dir'}$nf$ez";($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'}$nf$ez")
{$ao{$z[175]}.=&bv($z[599],\%ao);}else{$ao{$z[175]}.=&bv($z[633],\%ao);
}$fj++;}if(!$fj){$ao{$z[175]}.=&bv($z[634],{});}print"Content-type: text/html\n\n"
unless($ab{$z[626]}++);print&gi("_browse_$fi.html",\%ao);exit;
}sub rh{my($kb,$ke);if($ENV{$z[307]}=~/^[\w\-]+\.gif$/){$kb
=$z[635]."\n\n";}elsif($ENV{$z[307]}=~/^[\w\-]+\.jpg$/){$kb
=$z[636]."\n\n";}else{return;}$ke=&gi($ENV{$z[307]},{},$z[323]);
if($ke){binmode(STDOUT);print$kb ;print$ke ;exit;}}sub at{my
$ib=$_[0]||die("time_adj: first argument must be time()\n");
if($ac{$z[637]}eq$z[535]){$ib+=$ac{$z[638]}*60*60;}if($ac{$z[637]}
eq$z[639]){$ib-=$ac{$z[638]}*60*60;}if($ac{$z[640]}eq$z[535])
{$ib+=$ac{$z[641]}*60;}if($ac{$z[640]}eq$z[639]){$ib-=$ac{$z[641]}*60;
}return$ib;}sub ri{my($ap,$ng,$nh,$ni,%na);my(%ao,%nj);if(!$ag{$z[642]}
&&!$ah{$z[581]}){&nb(undef,\%ao);}if($ag{$z[642]}){($ng,$nh)
=(lc$ag{$z[581]},lc$ag{$z[643]});if(!$ng&&!$nh){&nb($z[584],
\%ao);}if(!$ng||!$nh){&nb($z[584],\%ao);}$ap=sub{if(lc$nj{$z[581]}
eq$ng&&lc$nj{$z[643]}eq$nh){$ni=$nj{$z[48]};}};&av($ae{$z[195]},
$ap,\%nj);if(!$ni){&nb($z[584],\%ao);}&mj($ae{$z[195]},\%nj,
$ni);$nj{$z[522]}=$^T;$nj{$z[66]}=$^T;&dz($ae{$z[200]},\%nj,
$ni);}else{($ng,$nh)=(lc$ah{$z[581]},lc$ah{$z[643]});if(!$ng
||!$nh){&nb($z[644],\%ao);}$ap=sub{if(($af{$z[645]}&&$nj{$z[66]}
<$^T-60*$af{$z[645]})||$nj{$z[66]}<$^T-60*60*24){&ml($ae{$z[200]},
$nj{$z[48]});}elsif(lc$nj{$z[581]}eq$ng&&lc$nj{$z[643]}eq$nh)
{$ni=$nj{$z[48]};}};&av($ae{$z[200]},$ap,\%nj);if(!$ni){&nb($z[644],
\%ao);}&mj($ae{$z[200]},\%nj,$ni);$nj{$z[66]}=$^T;&dz($ae{$z[200]},
\%nj,$ni);}&mv($z[581],$ng);&mv($z[643],$nh);return%nj;}sub 
nb{if(!$ab{$z[626]}++){print$z [646]."\n\n";}my($ex)=$_[0];
my(%ao)=%{$_[1]||{}};&gi($z[647],{});foreach(keys%ao){$ao{$_}
=&fm($ao{$_});}if($ex&&!$ab{$z[134]}{$z[135]}{$ex}){die($z[648]."'$ex' isn't defined!\n");
}if($ex){$ao{$z[549]}=&bv($ex,\%ao);}print&bv($z[649],{});if
($ex){print&bv($z[650],\%ao);}else{print&bv($z[642],\%ao);}
print&bv($z[651],{});if($ab{$z[488]}){print"<p>";print"<pre>$ab{'debug_output'}</pre>"
if($ab{$z[303]});}&nk();exit;}sub rj{&gi($z[647],{});&mv($z[581],'');
&mv($z[643],'');$ac{$z[652]}=~s/^\s+|\s+$//g;if($ac{$z[652]}
&&$ENV{$z[307]}=~/logoff/i){print"Content-type: text/html\n\n";
print qq|<html><head><title></title>\n|;print qq|<meta http-equiv="Refresh" content="0;URL=$ac{'url_logoff'}">\n|;
print qq|</head>\n|;print qq|<body bgcolor="#ffffff"></body>\n|;
print qq|</html>\n|;exit;}&nb();}sub nz{&gi($ae{$z[202]}->{$z[148]},
{});&mj($ae{$z[202]},\%ac,1);foreach(keys%ac){if(!/\W/&&$ac{$_}
!~/\W/){$ac{$_."_$ac{$_}".$z[538]}=$z[539];$ac{$_."_$ac{$_}".$z[530]}
=$z[531];}}$ac{$z[653]}=&as($ab{$z[40]},$^T);$ac{$z[638]}||=
0;$ac{$z[641]}||=0;$ac{$z[654]}=&as($ab{$z[40]},&at($^T));foreach
(keys%ENV){$ac{"env_".lc($_)}=$ENV{$_};}$ac{$z[655]}=$^O;$ac{$z[656]}
=$];$ac{$z[657]}||="not available";$ac{$z[658]}||=$ac{$z[659]};
$ac{$z[660]}=$ab{$z[512]};foreach(grep/^env_/,keys%ac){$ac{$_}
=~s/(\W)(\w)/$1<wbr>$2/g;}foreach(keys%ac){$ac{$_.$z[333]}=
&gj($ac{$_})if/^dir/;$ac{$_}=~s/"/&quot;/g;}if($^O!~/win32/i
&&!$ac{$z[596]}&&defined$ab{$z[134]}{$z[135]}{$z[661]}){foreach
($z[662],$z[663],$z[664],$z[665],$z[666],$z[667],$z[668]){if
(-e$_){$ad{$z[669]}.=&bv($z[661],{$z[628]=>$_});}}}my$nl=$z[670];
$nl=$z[671]if($ac{$z[671]});foreach(1..10){$nl="tab$_"if($ag{"setup_tab$_"}
&&defined$ab{$z[134]}{$z[135]}{"tab$_"});}&lq($nl,\%ac);exit;
}sub rk{$ab{$z[672]}=$z[673];my(%ao,$nm);if($ag{$z[674]}){&gi($z[675],
{});$ao{$z[676]}=&bv($z[677],\%ao);$ao{$z[678]}=$z[679];my@nn
=qw(mail_smtp mail_sender_email mail_sender_name mail_mailer mail_sendmail mail_pop3auth mail_pop3 mail_pop3user mail_pop3pass);
@ao{@nn}=@ag{@nn};print"Content-Type: text/html\n\n";print&gi($z[675],
\%ao);exit;}if(length($ag{$z[680]})){&np($z[681],$z[682])unless
&nq($ag{$z[680]});}else{&np($z[683],$z[684]);}my$nr;open(AJ,
"<$ab{'templatedir1'}/email/email_test.txt")||&np($z[685],"Unable to open test email template.");
read(AJ,$nr,-s AJ);close(AJ);my($ns,$nt);if($nr=~/^\s*Subject: *([^\r\n]*?)(\r\n|\r|\n)\s*Body: *([^ ].*)$/si)
{$ns=$1;$nt=$3;}else{&np($z[686],"email_test.txt is improperly formatted.  Should have subject: and body:");
}if($ag{$z[585]}eq$z[595]){@ac{qw(mail_mailer mail_sendmail)}
=@ag{qw(mail_mailer mail_sendmail)};}else{@ac{qw(mail_mailer mail_smtp mail_pop3auth mail_pop3 mail_pop3user mail_pop3pass)}
=@ag{qw(mail_mailer mail_smtp mail_pop3auth mail_pop3 mail_pop3user mail_pop3pass)};
}my$nu=qq|From: "$ag{'mail_sender_name'}" <$ag{'mail_sender_email'}>\nTo: "$ag{'mailto'}" <$ag{'mailto'}>\nSubject: $ns\nContent-Type: text/plain\n|
;$@=();eval{&nv("$nu\n$nt")};if($@){&np($z[687],join($z[688],
$@));}else{&np($z[689]);}}sub np{my($fi,$jf)=@_;my%ao;my%nw
=($z[683]=>[$z[690],$z[691],$z[692]],$z[681]=>[$z[690],$z[691],
$z[693]],$z[685]=>[$z[694],$z[691],$z[695]],$z[686]=>[$z[694],
$z[691],$z[696]],$z[687]=>[$z[694],$z[691],$z[697]],$z[689]
=>[$z[694],$z[698],$z[699]]);&gi($z[675],{});$ao{$z[549]}=$jf;
if($nw{$fi}[0]eq$z[690]){$ao{$z[700]}=&bv($z[700],{});}$ao{$z[676]}
=&bv($nw{$fi}[1],\%ao);$ao{$z[678]}=$nw{$fi}[2];print"Content-Type: text/html\n\n";
print&gi($z[675],\%ao);exit;}sub rl{&nx($z[701].$z[602].$ab{$z[0]}.$z[702]);
&gi($ae{$z[202]}->{$z[148]},{});&ny;if(!$ac{$z[565]}){&nz;}
my$nl=$z[703];foreach(1..10){$nl="saved_tab$_"if($ag{"setup_tab$_"}
&&defined$ab{$z[134]}{$z[135]}{"saved_tab$_"});}&lq($nl,{});
exit;}sub ny{my($lx);if(defined$ag{$z[704]}){$ag{$z[704]}=~
s/\s+//g;if(defined&oa){if(!&oa($ag{$z[704]})){$lx=$z[705];
}if(!$ag{$z[704]}){$lx=$z[706];}}if(!$ag{$z[707]}){$lx=$z[708];
}if(!$ag{$z[709]}){$lx=$z[710];}if($lx){$ad{$z[489]}=$lx;$ad{$z[711]}
=$ag{$z[709]};$ad{$z[712]}=$ag{$z[707]};$ad{$z[713]}=$ag{$z[704]};
&lq($z[714],\%ad)}$ac{$z[709]}=$ag{$z[709]};$ac{$z[707]}=$ag{$z[707]};
$ad{$z[715]}=int sprintf($z[716],&oa($ag{$z[704]}));$ab{$z[717]}
=&ob();if(defined&oc&&$ac{$z[704]}ne$ag{$z[704]}){&oc;}}foreach
(qw(uploadmax lhour_offset lmin_offset)){if(exists$ag{$_}){
$ag{$_}=int($ag{$_});}}foreach(qw(upload_height upload_width))
{if(exists$ag{$_}){$ag{$_}&&=int($ag{$_});}}foreach(grep{/_default_to$/i
}keys%ag){my($od,$eq)=/^((.*)_default_to)$/;if($ag{$od}=~/^null$/i)
{$ag{$od}='';}$ag{$eq}||=$ag{$od};}foreach(qw(publish_index publish_basename publish_fileext))
{$ag{$_}=~s/^\.+//;$ag{$_}=~s/\.+$//;}foreach(keys%ag){if((/^dir_/
||/^url_/)&&not/^url_logoff$/){if(!$ag{$_}){next;}$ag{$_}=~
tr|\\|/|;if(/^url_/&&index($ag{$_},$z[133])>=0){next;}if(/^url_/
&&index($ag{$_},$z[718])>=0){next;}if(substr($ag{$_},-1,1)ne
$z[64]){$ag{$_}.=$z[64];}}}my$oe=$ac{$z[719]};my$of=$ac{$z[720]};
&mj($ae{$z[202]},\%ac,1);foreach(sort keys%ac){$ac{$_}=$ag{$_}
if defined$ag{$_};}&dz($ae{$z[202]},\%ac,1);$ad{$z[721]}=$ac{$z[722]};
foreach(keys%ac){$ad{$z[516].$_}=$ac{$_}if/^ui_/;}$ad{$z[711]}
=$ac{$z[709]};$ad{$z[712]}=$ac{$z[707]};$ad{$z[713]}=$ac{$z[704]};
$ad{$z[723]}=$ac{$z[724]};$ad{$z[725]}=$ac{$z[651]};$ad{$z[726]}
=$ac{$z[727]};foreach(grep/^dir_/,keys%ac){$ac{$_}="$ab{'cgidir'}/$ac{$_}"
if index($ac{$_},$z[29])==0;$ac{$_}=~tr|\\|/|;1 while$ac{$_}
=~s|/[^/]+/\.\.||;}if(($oe ne$ac{$z[719]}||$of ne$ac{$z[720]})
&&($ac{$z[719]}||$ac{$z[720]})){&og($ae{$z[13]},sub{my$bl=shift;
if($ac{$z[719]}&&$bl->{$z[88]}){$bl->{$z[77]}=~s/\n/<br \/>/g;
undef$bl->{$z[88]};}if($ac{$z[720]}&&$bl->{$z[90]}){$bl->{$z[78]}
=~s/\n/<br \/>/g;undef$bl->{$z[90]};}});}&am();}sub rm{&ny;
foreach(keys%ae){my$oh=$ae{$_}{$z[172]};if(defined&{$oh}){&{$oh}();
}}&lq($z[728],{});}sub lq{my($gd)=$_[0];my($ao)=$_[1];unless
($gd){die($z[729]."\n");}if(ref($_[1])ne$z[229]){die$z[730]."\n";
}my(%ao);if(!$ab{$z[626]}++){print$z [646]."\n\n";}&gi($z[647],
{});print&bv($z[649],{});for(1..9){if($ai{$z[580]}>=$_&&$ab{$z[134]}{$z[135]}{$z[731].$_})
{$ao{$z[732]}.=&bv($z[731].$_,{});}if($ai{$z[580]}==$_&&$ab{$z[134]}{$z[135]}{$z[731].$_.$z[733]})
{$ao{$z[732]}.=&bv($z[731].$_.$z[733],{});}}$ad{$z[734]}="$ai{'name'} ($aj[$ai{'acl'}])";
$ao{$z[78]}=&bv($gd,$ao);print&bv($z[735],\%ao);print&bv($z[651],
{});if($ab{$z[488]}>=2){print"<p><font color=white><b>Stack Trace</b><br>";
my$cz=0;while(my($ez,$ea,$fl)=(caller($cz++))[1,2,3]){print 
qq!<p>($fl) called from ($ez) line ($ea)<BR>\n!;}}if($ab{$z[488]})
{print"<p>";print"<pre>$ab{'debug_output'}</pre>"if($ab{$z[303]});
}&nk();exit;}sub nk{print$z [736]."\n";print$ad {$z[723]}.$z[737]
.$ab{$z[4]}.$z[738].$ab{$z[739]}.$z[29].$ab{$z[740]}.")\n";
print$z [741].$ad{$z[715]}.$z[742].$ad{$z[711]}.$z[742].$ad{$z[712]}
."\n";printf($z[743]."\n",time()-$^T);print$z [744]."\n";}sub 
rn{my(@fj)=map"$ab{'datadir'}$ae{$_}{'datafile'}",keys%ae;my(@oi)
=($ab{$z[745]});my($az,$ez,$oj);foreach$az(sort@oi){if($az 
eq""){next;}if(!-d$az||!-w$az){$oj.="$az\n";}}foreach$ez(sort
@fj){$ez=~s/\\/\//g;1 while$ez=~s!/[^/]+/\.\./!/!;if(-f$ez&&
!-w$ez){$oj.="$ez\n";}}if($oj){&ak($z[746],$oj);}}sub nx{return 
unless$af{$z[609]};my$jm=shift;&nb($z[747],{$z[549]=>$jm});
}sub ne{return unless$af{$z[609]};my$jm=shift;$jm=&gj($jm);
print"Content-type: text/html\n\n";print qq|<script><!--\nopener.document.location='$ab{'cgiurl'}?demo_break=$jm';\nwindow.close();\n// --></script>\n|
;exit;}sub ro{&gi($ae{$z[202]}{$z[148]},{});my%ok;my$ol;foreach
$ol(keys%{$ab{$z[748]}}){my%ao=($z[749]=>$ol,$z[750]=>$ab{$z[748]}{$ol}
);$ok{$ol}[0]=&bv($z[751],\%ao);$ok{$ol}[1]=&bv($z[752],\%ao);
}foreach$ol(keys%{$ab{$z[748]}}){my$om=join'',map{$ok{$_}[$ol
==$_?1:0]}sort keys%{$ab{$z[748]}};$ad{$z[753].$ol}=&bv($z[754],
{$z[755]=>$om});}}1;;sub rp{my$on=shift||die("ip2num : no ip or host specified!\n");
my($a,$b,$oo,$op,$kq);if($on=~/[^0-9\.]/){my$jz=gethostbyname("$on.")
||die("ip2num: Can't find IP for host '$on'!\n");($a,$b,$oo,$op)
=unpack($z[756],$jz);}else{($a,$b,$oo,$op)=split(/\./,$on);
}$kq+=$op*(256**0);$kq+=$oo*(256**1);$kq+=$b*(256**2);$kq+=
$a*(256**3);return$kq;}sub rq{my$kq=shift||die("num2ip : no number specified!\n");
my($a,$b,$oo,$op);$a=($kq/256**3)% 256;$b=($kq/256**2)% 256;
$oo=($kq/256**1)% 256;$op=($kq/256**0)% 256;return join$z[29],
$a,$b,$oo,$op;}sub rr{my$ib=shift||time();$ib-=(localtime($ib))[6]
* 60*60*24;$ib-=(localtime($ib))[2]* 60*60;$ib-=(localtime($ib))[1]
* 60;$ib-=(localtime($ib))[0]* 1;return$ib;}sub rs{my$ib=shift
||time();$ib-=(localtime($ib))[2]* 60*60;$ib-=(localtime($ib))[1]
* 60;$ib-=(localtime($ib))[0]* 1;return$ib;}sub rt{my$gt=int 
shift;my$gu=int($gt/60);my$gv=int($gu/60);$gu%=60;$gt%=60;return 
sprintf("%01d:%02d:%02d",$gv,$gu,$gt);}sub ru{my$kq=reverse 
int shift;$kq=~s/(...)\B/$1,/g;return reverse$kq;}sub bz{my
$kq=shift;if($kq==int($kq)){return$kq;}elsif($kq<0){return 
int$kq;}else{return int($kq)+1;}}sub rv{my$kq=shift;if($kq==
int($kq)){return$kq;}elsif($kq<0){return int($kq)-1;}else{return 
int$kq;}}sub ca{return(sort{$a<=>$b}@_)[0];}sub rw{return(sort
{$a<=>$b}@_)[-1];}1;;sub aw{local(*AB);my($ez,%fc,$gc,$gd);
%fc=%{$_[1]}if$_[1];my$oq=$_[3];my%ge;%ge=($z[321]=>0,$z[322]
=>0,$z[323]=>0,$z[53]=>0,$z[332]=>0);foreach(split(/ /,$_[2]))
{if(undef$ge{$_}){die($z[324]."'$_'\n");}$ge{$_}=1;}unless($ge{$z[321]})
{$ge{$z[322]}=1;}if(!$_[0]){die$z[325]."\n";}if(ref($_[1])ne
$z[229]){die$z[757]."\n";}if((!$ge{$z[322]}||!$ab{$z[134]}{$z[322]}{$_[0]})
){if(-e"$_[0]"){$ez=$_[0];}else{foreach(grep/^templatedir/,
sort keys%ab){if(-e"$ab{$_}/$_[0]"){$ez="$ab{$_}/$_[0]";last;
}}if(!$ez){die$z[327]."'$_[0]'".$z[328]."\n";}}}if($ge{$z[322]}
&&$ab{$z[134]}{$z[322]}{$_[0]}){$gc=$ab{$z[134]}{$z[322]}{$_[0]};
}else{open(AB,"<$ez")||die$z[329]."$ez! $!\n";binmode(AB)if
($ez=~/gif$/i||$ez=~/jpg$/i);read(AB,$gc,-s AB);close(AB);}
if($ge{$z[323]}){return$gc;}if(!$ge{$z[322]}||!$ab{$z[134]}{$z[322]}{$_[0]})
{foreach$gd($gc=~m/<!-- templatecell\s?:\s?([\w\.]+) -->/g)
{$ab{$z[134]}{$z[135]}{"$oq$1"}=$2 if($gc=~m/<!-- templatecell\s?:\s?($gd) -->(?:\r\n|\n)?(.*?)<!-- \/templatecell\s?:\s? \1 -->/is);
}$gc=~s/<!-- templatecell\s?:\s?([\w\.]+) -->(?:\r\n|\n)?(.*?)<!-- \/templatecell\s?:\s? \1 -->//gis;
if($ge{$z[322]}){$ab{$z[134]}{$z[322]}{$_[0]}=$gc;}}if($ge{$z[53]})
{while($gc=~/<!-- template include : (.*?) -->/i){my$or=$1;
my$gf=$or;$gf=~s/\$(\w+?)\$/defined$ad{$1}?$ad{$1}:$fc{$1}/eg;
unless($gf){$gc=~s/<!-- template include : \Q$or\E -->//;next;
}if($gf=~m!^/!){;}else{if($_[4]){$gf="$_[4]$gf";}else{$gf=($ez
=~m!(.*/)!)[0].$gf;}}my$gh;if(not$ab{$z[134]}{$z[758]}{$gf}++)
{my$os;if(-e"$gf"){$os++;}else{foreach(grep/^templatedir/,sort 
keys%ab){if(-e"$ab{$_}/$gf"){$os++;last;}}}if($os){$gh=&aw($gf,
$_[1],"$_[2] inside_ssi",$z[759],$_[4]);}else{$gh="[ Program Error - Could not include file \"$gf\" via template include ]";
}}else{$gh="[ Program Error - Cyclic Include - The file '$gf' is included by itself (perhaps indirectly). Please check include files for other Include statements. ]";
}$gc=~s/<!-- template include : \Q$or\E -->/$gh/;delete$ab{$z[134]}{$z[758]}{$gf};
}}else{$gc=~s/<!-- template include : (.*?) -->//gi;}$gc=~s/<!-- template insert\s?:\s?(.*?) -->/$1/gi;
$gc=~s[\$(\w+?)(_ue|_he|_nbsp|_je)?\$][my$ep=defined$ad{$1}
?$ad{$1}:$fc{$1};if($2 eq$z[333]){$ep=&gj($ep);}if($2 eq$z[334])
{$ep=&gk($ep);}if($2 eq$z[335]){$ep=&gk($ep);$ep=~s/ /&nbsp;/g;
}if($2 eq$z[336]){$ep=&gl($ep);}$ep;]ge;return$gc;}sub bs{my
($ia,$bl,$oq)=@_;$ia=~s|<br>(\s*\*\*\*image\d+(?:\:(\w+))?\*\*\*)|<br clear="all">$1|gsi;
$ia=~s[\s*\*\*\*image(\d+)(?:\:(\w+))?\*\*\*\s*][if($2 eq$z[760])
{$bl->{$z[120].$1}}else{my%ot;$ot{$z[761]}=$2||$af{$z[762]}{$z[763]}
||$z[764];$ot{$z[765]}=$bl->{$z[120].$1};$ot{$z[766]}=$bl->{$z[121]
.$1};$ot{$z[767]}=$bl->{$z[68].$1};$ot{$z[768]}=$bl->{$z[69]
.$1};&bv($oq.($ot{$z[766]}ne''?$z[766]:$z[769]),\%ot);}]eigo;
return$ia;}sub rx{my($ao,$bl,$oq,$ou,$ov,@ow)=@_;$ao->{$z[87]}
=&bs($ou,$bl,$oq);$ao->{$z[89]}=&bs($ov,$bl,$oq);my$cz;for$cz
(1..$ab{$z[6]}){$ao->{$z[122].$cz}=&bs($ow[$cz-1],$bl,$oq);
}}sub ry{my($ao,$ou,$ov,@ow)=@_;($ao->{$z[87]}=$ou)=~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g;
($ao->{$z[89]}=$ov)=~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g;
my$cz;for$cz(1..$ab{$z[6]}){($ao->{$z[122].$cz}=$ow[$cz-1])
=~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g;}}sub rz{my$gc=shift;
my$ib=$ad{$z[39]}||&as($ab{$z[40]},$ac{$z[39]}||$^T);my$ox=
$z[770].$ab{$z[0]}.$z[771];$$gc=$z[772].$ib.$z[773].$ab{$z[0]}
.$z[774]."\n\n".$$gc;unless($$gc=~s/(<meta[^>]+>)/$ox\n$1/is)
{$$gc=~s/(<head[^>]*>)/$1\n$ox\n/i;}}sub ho{my$jf;eval{local
$SIG{$z[775]}=undef;local$SIG{$z[776]}=undef;$jf=timelocal(@_);
};if($@){$jf=0;}return$jf;}sub hn{my$jf;eval{local$SIG{$z[775]}
=undef;local$SIG{$z[776]}=undef;$jf=timegm(@_);};if($@){$jf
=0;}return$jf;}sub sa{if(!$ac{$z[777]}||(scalar(@{$ab{$z[778]}})
<1)){return;}my$bl=shift;my%oy=%{$bl};my($oz,$pa,$pb,$pc)=(1..4);
if($ab{$z[488]}){if(scalar(@{$ab{$z[778]}})>1){my%pd=map{$_,
1}("$oz,$pa","$pa,$pb","$pa,$pc");my$pe=join($z[779],sort{$a
<=>$b}@{$ab{$z[778]}});unless(exists$pd{$pe}){&ak("Invalid notification events combination: $pe");
}}}my%pf;@pf{$z[522],$z[632]}=(split(/\s*,\s*/,$af{$z[780]}{$z[781]}));
$pf{$z[522]}||=$z[522];$pf{$z[632]}||=$z[632];my@pg=($z[782],
split(/\s*,\s*/,$af{$z[780]}{$z[783]}));$pg[1]||=$z[784];$pg[2]
||=$z[785];$pg[3]||=$z[45];$pg[4]||=$z[543];my%au;&mj($ae{$z[15]},
\%au,$oy{$z[15]});my$ph=$au{$z[70]}?$au{$z[27]}:$ac{$z[27]};
my(@br,$bi);$oy{$z[786]}=$ai{$z[50]};$oy{$z[787]}=(grep/^$oz$/,
@{$ab{$z[778]}})?$pf{$z[522]}:$pf{$z[632]};$oy{$z[80]}=(grep
/^$pc$/,@{$ab{$z[778]}})?$pg[4]:$pg[$bl->{$z[80]}];foreach(keys
%oy){$oy{$z[86].$_}=$oy{$_};}foreach(1..$ab{$z[6]}){$oy{$z[122]
.$_}=$oy{$z[91].$_};}$oy{$z[24]}=$ac{$z[25]};$oy{$z[27]}=$ph;
$oy{$z[26]}=$ph.$ac{$z[28]}.$z[29].$ac{$z[30]};$oy{$z[31]}=
$ac{$z[32]}.$z[29].$ac{$z[30]};$oy{$z[33]}=$ac{$z[34]}.$z[29]
.$ac{$z[30]};$oy{$z[42]}=$ac{$z[32]}.$oy{$z[788]}.$z[29].$ac{$z[30]};
;$oy{$z[43]}=$ac{$z[44]}.$oy{$z[788]}.$z[29].$ac{$z[30]};$oy{$z[35]}
=$ac{$z[36]}.$z[29].$ac{$z[30]};$oy{$z[37]}=$ac{$z[38]}.$z[29]
.$ac{$z[30]};$oy{$z[105]}=$ph.($ac{$z[106]}&&$oy{$z[107]}?$ac{$z[108]}
.$oy{$z[107]}:$ac{$z[108]}.$oy{$z[48]}).$z[29].$ac{$z[30]};
$oy{$z[39]}=&as($ab{$z[40]},&at($ac{$z[39]}))if($ac{$z[39]});
@br=($oy{$z[18]},$oy{$z[19]}-1,$oy{$z[20]},$oy{$z[93]}+($oy{$z[94]}
eq$z[95]?12:0),$oy{$z[96]});$oy{$z[97]}=&as($ab{$z[98]},@br);
$oy{$z[99]}=&as($ab{$z[100]},@br);$oy{$z[101]}=$au{$z[50]};
$bi=$au{$z[72]}?$au{$z[73]}:$ac{$z[74]}.$oy{$z[788]};$oy{$z[109]}
=$ac{$z[27]}.$bi.$z[29].$ac{$z[30]};$oy{$z[16]}=$oy{$z[788]};
$oy{$z[41]}=$ac{$z[41]};if($bl->{$z[80]}==2){if($bl->{$z[117]}
==1){$oy{$z[789]}=$oy{$z[110]}=$ph.($ac{$z[106]}&&$oy{$z[790]}
?$oy{$z[107]}:$ac{$z[111]}.$oy{$z[114]}).$z[29].$ac{$z[30]};
}else{$oy{$z[789]}=$oy{$z[110]}=$oy{$z[109]}.$z[718].$bl->{$z[48]};
}}else{$oy{$z[789]}=$oy{$z[110]}=$oy{$z[109]};}$oy{$z[791]}
=$ac{$z[791]};$oy{$z[792]}=$ac{$z[792]}||$ac{$z[791]};my$nr;
local(*AJ);open(AJ,"<$ab{'templatedir1'}/email/notify.txt")
||&ak("Unable to open email template");read(AJ,$nr,-s AJ);close(AJ);
my($ns,$nt);if($nr=~/^\s*Subject: *([^\r\n]*?)(\r\n|\r|\n)\s*Body: *([^ ].*)$/si)
{$ns=$1;$ab{$z[134]}{$z[322]}{$z[793]}=$3;$ns=~s/\$(.*?)\$/$oy{$1}/g;
$nt=&gi($z[793],\%oy,$z[322]);}else{&ak($z[794]);}my$pi=$bl->{$z[15]};
my$pj=$z[795];my@pk;my$ap=sub{my$pl=shift;if($pl->{$z[796]}
||$pl->{$z[797]}=~/(^|,)$pi(,|$)/){if($pl->{$z[580]}==1){return;
}if(!$pl->{$z[780]}||!&nq($pl->{$z[780]})){return;}$pl->{$z[50]}
||=$pl->{$z[780]};my$pm;foreach$pm(split(/,/,$pl->{$z[798]}))
{if(grep/^$pm$/,@{$ab{$z[778]}}){push(@pk,qq|"$pl->{'name'}" <$pl->{'email'}>|);
last;}}}};&av($ae{$z[195]},$ap);if(scalar(@pk)){my$pn;if(length($af{$z[780]}{$z[799]}))
{$pn=qq|To: $af{'email'}{'notifications_to_field'}\n|;}my$po
=join($z[800],@pk);$pn.=qq|Bcc: $po|;my$nu=qq|From: "$oy{'mail_sender_name'}" <$oy{'mail_sender_email'}>\n$pn\nSubject: $ns\n$pj\n|
;&nv("$nu\n$nt");}}sub sb{my$lj=shift;if($lj->{$z[50]}eq$z[13])
{my$pp=(caller)[2];die("Don't call custom_ui_erase to erase an article!  Use art_erase instead.  Line number of caller: $pp.");
}my$pq;if($ag{$z[801]}){$pq=$ag{$z[48]};}elsif($ag{$z[802]})
{$pq=$ag{$z[802]};}my%au;&mj($ae{$z[15]},\%au,$pq);my$pr=$au{$z[70]}
?$au{$z[545]}:$ac{$z[545]};my$ao=&ps($lj,$pr);&lu($lj,$ao);
}sub ps{my$lj=shift;my$pr=shift;$pr||=$ac{$z[545]};$ad{$z[526]}
=$lj->{$z[146]};$ad{$z[527]}=$lj->{$z[50]};&gi($lj->{$z[148]},
{});my($kq)=$ag{$z[48]}||$ag{$lj->{$z[50]}.$z[540]};my$ao={};
&cp();&mj($lj,$ao,$kq)||&ak($z[537],$kq);&ml($lj,$kq)||die($z[541].$kq);
&cr();foreach(split(/ /,$lj->{$z[76]})){if(/^ufile/&&$ao->{$_})
{if(-e"$pr$ao->{$_}"){unlink("$pr$ao->{$_}");}}}if(defined&{$lj->{$z[172]}})
{&{$lj->{$z[172]}}($kq,$z[174],$ao);}return$ao;}sub sc{my($mf)
=$_[0]->{$z[50]}||die($z[544]);my($kq)=int($ag{$z[48]});my(%mf)
=%{$_[1]||{}};my$pr=$_[2]||$ac{$z[545]};my(%ez,%ft,$en,%lx,%ao);
if(!$pr){die("custom_ui_save_uploads: No upload directory has been defined in setup options or provided by caller!\n");
}if(!-d$pr){die("custom_ui_save_uploads: Upload directory '$pr' doesn't exist!\n");
}if(!-w$pr){die("custom_ui_save_uploads: Upload directory isn't writable!\n");
}%ez=&az($pr);foreach(split(/ |\,/,$ac{$z[546]})){$ft{$_}++
if$_;}foreach$en(split(/ /,$_[0]->{$z[76]})){if($en!~/^ufile/)
{next;}if($ag{$en}){if($ac{$z[547]}&&length($ag{$en})>$ac{$z[548]}*1000)
{my$mm=length($ag{$en});$lx{$z[549]}.=qq|$ag{$en."_file"} ($mm bytes, file too large)<br>\n|;
$ag{$en}=$mf{$en};next;}if(!$ft{lc$ag{$en.$z[314]}}){$lx{$z[549]}
.=qq|$ag{$en."_file"} ('$ag{$en.'_ext'}' files not accepted)<br>\n|;
$ag{$en}=$mf{$en};next;}if($mf{$en}&&$ez{$mf{$en}}){unlink("$pr$mf{$en}");
}my($mn);my($mo)=lc$ag{$en.$z[313]};my($mp)=lc$ag{$en.$z[314]};
my($mq)=$z[550];$mo=~s/\.[^\.]*$//g;$mo=~s/[^a-z0-9_\-]/_/g;
$mp=~s/[^a-z0-9_\-]/_/g;$mn="$mo.$mp";if(-e"$pr$mn"){do{$mq
=sprintf($z[410],++$mq);$mn=$mo."_$mq.$mp";}while(-e"$pr$mn");
}open(AB,">$pr$mn")||die($z[803]."$mn $!\n");binmode AB;print 
AB$ag{$en};close(AB);if($mn=~/\.(gif|jpg|jpeg|png)$/i){my($jc,$jd,$mr)
=&ms("$pr$mn");if(($ac{$z[552]}&&$jd>$ac{$z[552]})||($ac{$z[553]}
&&$jc>$ac{$z[553]})){unlink("$pr$mn");$lx{$z[549]}.=qq|$ag{$en."_file"} (${jd}x$jc, image too big)<br>\n|;
$ag{$en}=$mf{$en};next;}}$ag{$en}=$mn;}elsif($ag{$en.$z[313]})
{if($mf{$en}&&$ez{$mf{$en}}){unlink("$pr$mf{$en}");}$mf{$en}
='';}else{$ag{$en}=$mf{$en};}}return\%lx;}sub sd{my($lj,$lv,
$pr)=@_;$pr||=$ac{$z[545]};my($kq)=int($ag{$z[48]});$ag{$z[522]}
=$kq?$lv->{$z[522]}:$^T;$ag{$z[533]}=$kq?$lv->{$z[533]}:$ai{$z[48]};
$ag{$z[554]}=$kq?$lv->{$z[554]}:$ai{$z[48]};$ag{$z[66]}=$^T;
$ag{$z[534]}=$ai{$z[48]};my$mt;foreach$mt($lj->{$z[76]}=~/\bufile([^ ]*)\b/g)
{if($lj->{$z[76]}=~/\bimagewidth\Q$mt\E\b/){($ag{$z[555].$mt},
$ag{$z[556].$mt})=&ms($pr.$ag{$z[557].$mt});}}}1;;%af=&pt("$cd/config.ini");
$ad{$z[804]}=$af{$z[519]}{$z[805]}||"#336699";$ab{$z[745]}=
$af{$z[745]}||$z[806];$ab{$z[508]}=$af{$z[508]}||$z[807];$ab{$z[40]}
=$af{$z[519]}{$z[40]}||$z[808];$ab{$z[98]}=$af{$z[519]}{$z[98]}
||$z[809];$ab{$z[100]}=$af{$z[519]}{$z[100]}||$z[426];&ak($z[810])
if!$ENV{$z[811]};&ak("macftp")if"¡"ne"\xA1";&ak($z[812])if
$ENV{$z[813]}&&!$af{$z[814]};%ab=(%ab,$z[512]=>$cd,$z[815]=>
$cb,$z[816]=>$cb,$z[63]=>$z[817],$z[818]=>$z[819],$z[820]=>
$z[821],$z[626]=>0,);foreach(qw(datadir filelock templatedir1 templatedir2 templatedir3 archive))
{if(ref($ab{$_})){next;}$ab{$_}="$cd/$ab{$_}"if(index($ab{$_},$z[29])
==0);$ab{$_}=~s|\\|/|g;1 while$ab{$_}=~s|/[^/]+/\.\./|/|;}&mj($ae{$z[202]},
\%ac,1);if(!$ac{$z[822]}){&ak($z[823]);}foreach(grep/^dir_/,
keys%ac){$ac{$_}="$cd/$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[721]}
=$ac{$z[722]};$ad{$z[723]}=join$z[824],grep{$_}$ab{$z[0]},$ac{$z[724]};
$ad{$z[825]}||=$ac{$z[724]};%ag=&pu;%ah=&pv;}sub ak{my($pw)
=$ad{$z[132]};my($fi,$px,$py)=@_;my(%pz,$lx,$qa);$px=&fm($px);
$ad{$z[826]}||="#336699";%pz=($z[537]=>[("Can't find record # $px",
"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[746]=>[("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:<p><font size=1>$px</font>")],
$z[508]=>[("Warning: Persistent Filelock!","This web application uses 'file locks' to ensure than only one user can update data at a time. The program was halted while in the middle of writing/accessing data because it could not obtain a filelock. Please ask your server administrator to fix the permissions (you need read-write access on your data directory). <p>For your reference, the filelock error was: '$px'.")],
$z[511]=>[($z[827],$z[828])],$z[829]=>[("Warning: Program corrupted during upload!",
"This is usually caused by Mac FTP clients that have an \"Translate ISO characters\" setting enabled.<p>If you are using a Mac, try disabling this setting and re-uploading all the files, otherwise, contact support for assistance. ")],
$z[830]=>[("Publishing Error","The program cannot create or write to the file:<br><br><font size=1>$px</font><br><br>Please ask your server administrator to make sure the publish directory and publish file(s) are writable.")],
$z[812]=>[("Program doesn't support mod_perl","Your server is running $ENV{MOD_PERL}<br><br>This program doesn't support mod_perl.  Please ask your server administrator to disable mod_perl for this program.")],
$z[810]=>[("This program can only be run through a web server.",
"")],$z[831]=>[($z[832],$z[833])],$z[834]=>[("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:<br><br><font size=1>$px</font>")],
$z[835]=>[("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:<br><br><font size=1>$px</font>")],
$z[294]=>[("File System Error!","The program is unable to access a required file. Please contact your server administrator or technical support for assistance. <p>The error was: $px",
$qb)],);my($qc)=$ad{$z[836]}||$pz{$fi}[0]||"Program Message";
if($pz{$fi}[0]){$qa=$pz{$fi}[0];$lx=$pz{$fi}[1];}elsif($px&&
$fi){$qa=&fm($fi);$lx=$px;}else{$qa="Program Message";$lx=&fm($fi);
}if(!$pz{$fi}[1]){$lx=~s/\n/<br><br>\n/g;}if($ab{$z[488]}){
if(!$ENV{$z[811]}){$lx.="\n\nSTACK TRACE\n";}else{$lx.="<p><b>Stack Trace</b><br>";
}my$cz=0;while(my($ez,$ea,$fl)=(caller($cz++))[1,2,3]){if(!$ENV{$z[811]})
{$lx.=qq!($fl) called from ($ez) line ($ea)\n!;}else{$lx.=qq!<p>($fl) called from ($ez) line ($ea)<BR>\n!;
}}}if(!$ENV{$z[811]}){foreach($qa,$lx){s/<br>/\n/gm;s/<p>/\n\n/gm;
}foreach($qa,$lx){s/<[^>]*>//gm;}print"\n$ab{'prog_name'} v$ab{'prog_ver'}\n$qa\n$lx\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$qd=$z[837]if$py;print 
qq|<!-- \n\n $ab{'prog_name'} v$ab{'prog_ver'} (License #$ad{'license_num'})\n Copyright (C) 2002 interactivetools.com, inc., All Rights Reserved\n http://www.interactivetools.com/\n\n This product is licensed to:\n\n $ac{'reg1'}\n $ac{'reg2'}\n\n-->\n<html>\n <head>\n  <title>$qc</title>\n  <meta name="robots" content="noindex,nofollow">\n </head>\n<body bgcolor="$ad{'ui_bgcolor'}" link="#000099" vlink="#000099" alink="#000099">\n<form method=post action="$pw">\n<table border=0 cellspacing=0 cellpadding=0 width=100% height=90%><tr><td align=center>\n<table border="0" cellpadding="0" cellspacing="0" width=350><tr><td bgcolor="#000000">\n<table border="0" cellpadding="6" cellspacing="1" width=100%><tr><td bgcolor="#FFFFFF">\n <font face="ms sans serif,arial" size=2>\n <p><b>$qa</b><br><br>\n $lx\n <p><div align=right><input type="submit" $qd value="  ok  "></div>\n </font>\n</td></tr></table>\n</td></tr></table>\n</td></tr></table>\n</form></body></html>\n|
;}if($ab{$z[488]}&&$ab{$z[303]}){if(!$ENV{$z[811]}){print"$ab{'debug_output'}\n";
}else{print"<p><font color=\"#66CCFF\">";print"<pre>$ab{'debug_output'}"
if($ab{$z[303]});print"</font>";}}if($ab{$z[838]}){rmdir($ab{$z[508]})
&&undef$ab{$z[838]};}if($ENV{$z[811]}){printf($z[839]."\n",time()-$^T);
print$z [840]."\n\n";}exit;}sub bu{my($gd,$il,$qe)=@_;if(defined
$ab{$z[134]}{$z[135]}{$gd.$qe}){$gd.=$qe;}&bv($gd,$il);}sub 
am{my@qf;my$cz;foreach$cz(1..3){my$qg=$ac{"sort${cz}field"};
next unless$qg;$qg="#$qg#"if$ac{"sort${cz}numeric"};$qg="-$qg"
if$ac{"sort${cz}reverse"};push@qf,$qg;}$ae{$z[13]}{$z[170]}
=join($z[688],@qf);}
# ----------------------------------------------------------------------------
#   Programming by interactivetools.com, inc. <info@interactivetools.com>
