#!/usr/bin/perl # ---------------------------------------------------------------------------- # This software is Copyright (C) 2005, All Rights Reserved # ---------------------------------------------------------------------------- # This program is protected by local 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 the Vendor and all # other rights are reserved. # ----------------------------------------------------------------------------- # Warning : Modifying this program violates your license agreement! # ----------------------------------------------------------------------------- BEGIN{@z=('72657175697265202254696d652f48695265732e706d223b', '70726f675f766572','312e3431','70726f675f6275696c64','31','' .'73706172655f6669656c6473','457870697265642055736572','4469' .'7361626c6564','4e65772055736572','526567756c61722055736572', '41646d696e6973747261746f72','7365617263685f70726f6772616d5' .'f616374697665','76','75726c5f7075626c697368','696e74657266' .'6163652f64697361626c65645f7365617263682e68746d6c','6172636' .'8697665','617274','6461746166696c65','7365617263685f737562' .'63617473','696e636c7564655f7375626361745f61727469636c6573', '636174','6c696e65616765','6e756d','6361745f6e756d','253034' .'642530326425303264','79656172','6d6f6e','646179','79656172' .'32','6d6f6e32','64617932','66696c655f63617465676f72696573', '7075626c6973685f6361745f6c6973745f66696c65707265666978','2' .'e','7075626c6973685f66696c65657874','66696c655f686561646c6' .'96e6573','7075626c6973685f6361745f686561646c696e655f66696c' .'65707265666978','7669727475616c5f63617465676f72696573','76' .'69727475616c5f686561646c696e6573','66696c655f6763617465676' .'f72696573','66696c655f67686561646c696e6573','63617465676f7' .'2795f70756c6c646f776e','6e6f68696464656e','617263686976655' .'f70756c6c646f776e','3c6f7074696f6e2076616c75653d22','223e', '6e616d65','70617273655f737369','7365617263682f616476616e63' .'65645f7365617263682e68746d6c','74656d705f626173655f646972', '74656d705f626173655f75726c','74656d706c6174655f696e636c756' .'465','6469725f7075626c697368','74656d706c617465','73656172' .'63682f7365617263685f726573756c74732e68746d6c','70657270616' .'765','7374617274','696e5f','696e6465782f','686561646c696e6' .'5732f','7365617263682f','74656d706c61746564697231','2f','5' .'36f7272792c207468652074656d706c61746520796f752776652072657' .'1756573746564206973206e6f742061207265676973746572656420746' .'56d706c6174652e','75706461746564','68696464656e','7566696c' .'655f696d616765','696d6167656865696768745f696d616765','696d' .'61676577696474685f696d616765','7075626c6973685f73706563696' .'679','75726c5f75706c6f6164','7075625f66696c657072656669785' .'f73706563696679','7075625f66696c65707265666978','7075626c6' .'973685f6361745f66696c65707265666978','75726c5f67696e646578', '75726c5f7365617263685f63617465676f7279','6669656c6473','73' .'756d6d617279','636f6e74656e74','7370617265','737461747573', '736561726368','69676e6f72655f776f72645f626f756e64617269657' .'3','5c62','6b6579776f7264','7365617263685f6d61746368','617' .'2745f','6172745f73756d6d617279','73756d6d6172795f666f726d6' .'174','6172745f636f6e74656e74','636f6e74656e745f666f726d617' .'4','6172745f7370617265','666f726d61745f7370617265','686f75' .'72','616d706d','706d','6d696e','6172745f64617465','6461746' .'55f666f726d6174','6172745f74696d65','74696d655f666f726d617' .'4','6361745f6e616d65','6361745f62726561646372756d62','6361' .'745f696d616765','6361745f696d6167655f686569676874','636174' .'5f696d6167655f7769647468','6172745f7072696e7465725f75726c', '616c6c6f775f6172745f66696c656e616d65','66696c656e616d65','' .'7075626c6973685f6172745f7072696e7465725f66696c657072656669' .'78','75726c5f696e646578','64657461696c5f6c696e6b','7075626' .'c6973685f6172745f66696c65707265666978','7669657765725f7061' .'7468696e666f','7669657765725f75726c','6172745f6e756d','3f6' .'17263686976653d','266e756d3d','6172745f74797065','6c696e6b', '7566696c655f646f63756d656e74','6172745f696d6167655f75726c', '63617074696f6e','6172745f6669656c64','726f77','726f775f737' .'56d6d617279','726f775f6c696e6b','726f775f7566696c65','6172' .'7469636c655f6c697374','32','6e6f745f666f756e64','70726576', '707265765f75726c','5f63676975726c','3f','54656d706c617465', '63656c6c','6e6f5f70726576','6e657874','6e6578745f75726c','' .'6e6f5f6e657874','7365617263685f7470616765','7365617263685f' .'6370616765','7365617263685f6c6e756d','7365617263685f686e75' .'6d','6361745f75706461746564','6461746574696d655f666f726d61' .'74','676361745f6e616d65','676c6f62616c5f75706461746564','5' .'343524950545f46494c454e414d45','6d656e755f686561646572','4' .'1727469636c6520456469746f72','6d656e755f74656d706c617465', '5f6172745f6d656e75732e68746d6c','61727469636c652e646174','' .'6e756d206372656174656420637265617465645f627920757064617465' .'6420757064617465645f6279206d6f6e206461792079656172206e616d' .'652073756d6d61727920636f6e74656e7420','73756d6d6172795f666' .'f726d617420636f6e74656e745f666f726d61742063617420','756669' .'6c655f696d61676531207566696c655f696d61676532207566696c655f' .'696d61676533207566696c655f696d61676534207566696c655f696d61' .'676535207566696c655f696d61676536207566696c655f696d61676537' .'207566696c655f696d61676538207566696c655f696d61676539207566' .'696c655f696d616765313020','63617074696f6e312063617074696f6' .'e322063617074696f6e332063617074696f6e342063617074696f6e352' .'063617074696f6e362063617074696f6e372063617074696f6e3820636' .'17074696f6e392063617074696f6e313020','686f7572206d696e2061' .'6d706d206f776e6572206c696e6b206172745f74797065207566696c65' .'5f646f63756d656e742068696464656e20','696d6167656e616d65312' .'0696d6167656e616d653220696d6167656e616d653320696d6167656e6' .'16d653420696d6167656e616d653520696d6167656e616d653620696d6' .'167656e616d653720696d6167656e616d653820696d6167656e616d653' .'920696d6167656e616d65313020','696d61676577696474685f696d61' .'67653120696d61676577696474685f696d6167653220696d6167657769' .'6474685f696d6167653320696d61676577696474685f696d6167653420' .'696d61676577696474685f696d6167653520696d61676577696474685f' .'696d6167653620696d61676577696474685f696d6167653720696d6167' .'6577696474685f696d6167653820696d61676577696474685f696d6167' .'653920696d61676577696474685f696d616765313020','696d6167656' .'865696768745f696d6167653120696d6167656865696768745f696d616' .'7653220696d6167656865696768745f696d6167653320696d616765686' .'5696768745f696d6167653420696d6167656865696768745f696d61676' .'53520696d6167656865696768745f696d6167653620696d61676568656' .'96768745f696d6167653720696d6167656865696768745f696d6167653' .'820696d6167656865696768745f696d6167653920696d6167656865696' .'768745f696d616765313020','73746174757320','737061726531207' .'3706172653220737061726533207370617265342073706172653520737' .'0617265362073706172653720737061726538207370617265392073706' .'1726531302073706172653131207370617265313220','7374616d7020', '7566696c655f696d6167653131207566696c655f696d61676531322075' .'66696c655f696d6167653133207566696c655f696d6167653134207566' .'696c655f696d6167653135207566696c655f696d616765313620756669' .'6c655f696d6167653137207566696c655f696d6167653138207566696c' .'655f696d6167653139207566696c655f696d6167653230207566696c65' .'5f696d6167653231207566696c655f696d6167653232207566696c655f' .'696d6167653233207566696c655f696d6167653234207566696c655f69' .'6d616765323520','696d6167656e616d65313120696d6167656e616d6' .'5313220696d6167656e616d65313320696d6167656e616d65313420696' .'d6167656e616d65313520696d6167656e616d65313620696d6167656e6' .'16d65313720696d6167656e616d65313820696d6167656e616d6531392' .'0696d6167656e616d65323020696d6167656e616d65323120696d61676' .'56e616d65323220696d6167656e616d65323320696d6167656e616d653' .'23420696d6167656e616d65323520','696d61676577696474685f696d' .'616765313120696d61676577696474685f696d616765313220696d6167' .'6577696474685f696d616765313320696d61676577696474685f696d61' .'6765313420696d61676577696474685f696d616765313520696d616765' .'77696474685f696d616765313620696d61676577696474685f696d6167' .'65313720696d61676577696474685f696d616765313820696d61676577' .'696474685f696d616765313920696d61676577696474685f696d616765' .'323020696d61676577696474685f696d616765323120696d6167657769' .'6474685f696d616765323220696d61676577696474685f696d61676532' .'3320696d61676577696474685f696d616765323420696d616765776964' .'74685f696d616765323520','696d6167656865696768745f696d61676' .'5313120696d6167656865696768745f696d616765313220696d6167656' .'865696768745f696d616765313320696d6167656865696768745f696d6' .'16765313420696d6167656865696768745f696d616765313520696d616' .'7656865696768745f696d616765313620696d6167656865696768745f6' .'96d616765313720696d6167656865696768745f696d616765313820696' .'d6167656865696768745f696d616765313920696d61676568656967687' .'45f696d616765323020696d6167656865696768745f696d61676532312' .'0696d6167656865696768745f696d616765323220696d6167656865696' .'768745f696d616765323320696d6167656865696768745f696d6167653' .'23420696d6167656865696768745f696d616765323520','66696c656e' .'616d6520','73706172653133207370617265313420737061726531352' .'0737061726531362073706172653137207370617265313820737061726' .'53139207370617265323020','63617074696f6e31312063617074696f' .'6e31322063617074696f6e31332063617074696f6e3134206361707469' .'6f6e31352063617074696f6e31362063617074696f6e31372063617074' .'696f6e31382063617074696f6e31392063617074696f6e323020636170' .'74696f6e32312063617074696f6e32322063617074696f6e3233206361' .'7074696f6e32342063617074696f6e323520','666f726d61745f73706' .'172653120666f726d61745f73706172653220666f726d61745f7370617' .'2653320666f726d61745f73706172653420666f726d61745f737061726' .'53520666f726d61745f73706172653620666f726d61745f73706172653' .'720666f726d61745f73706172653820666f726d61745f7370617265392' .'0666f726d61745f7370617265313020666f726d61745f7370617265313' .'120666f726d61745f7370617265313220666f726d61745f73706172653' .'13320666f726d61745f7370617265313420666f726d61745f737061726' .'5313520666f726d61745f7370617265313620666f726d61745f7370617' .'265313720666f726d61745f7370617265313820666f726d61745f73706' .'17265313920666f726d61745f73706172653230','736f72746279','2' .'d237374616d7023','7075626c6973685f737562','6d656e755f73756' .'273','6572617365','6c697374','74656d70','43726561746520417' .'27469636c65','5f7772697465725f6d656e75732e68746d6c','74656' .'d702e646174','43617465676f727920456469746f72','5f6361745f6' .'d656e75732e68746d6c','63617465676f72792e646174','6e756d206' .'372656174656420637265617465645f627920757064617465642075706' .'4617465645f6279206e616d6520736f726465725f64657072656361746' .'56420','74656d706c6174655f66696c652061727469636c655f74656d' .'706c6174655f66696c6520686561646c696e655f74656d706c6174655f' .'66696c6520','7566696c655f696d616765207075625f66696c6570726' .'5666978207075625f66696c657072656669785f7370656369667920','' .'706572706167655f696e64657820706572706167655f686561646c696e' .'65732068696464656e207072696e7465725f74656d706c6174655f6669' .'6c6520','696d61676577696474685f696d61676520696d61676568656' .'96768745f696d616765207075625f706572706167655f7370656369667' .'920','6469725f7075626c6973682075726c5f7075626c697368207075' .'626c6973685f73706563696679206469725f75706c6f61642075726c5f' .'75706c6f616420','646973706c61795f6f6e6c7920706172656e74206' .'76c6f62616c5f6f72646572207369626c696e675f6f726465722064657' .'07468206c696e65616765','23676c6f62616c5f6f7264657223206e61' .'6d65','41726368697665204d616e61676572','5f617263686976655f' .'6d656e75732e68746d6c','617263686976652e646174','6e756d2063' .'72656174656420637265617465645f6279207570646174656420757064' .'617465645f6279206e616d6520636f756e74','236e756d23','616363' .'6f756e74','5f6163636f756e745f6d656e75732e68746d6c','616363' .'6f756e742e6461742e636769','6e756d2063726561746564206372656' .'17465645f6279207570646174656420757064617465645f6279206e616' .'d652069642070772061636c206e6f746573206361747320616c6c5f636' .'1747320656d61696c5f6361747320656d61696c5f616c6c5f636174732' .'0656d61696c5f6e6f74696669636174696f6e5f6576656e747320656d6' .'1696c','6e616d65206964','73657373696f6e','73657373696f6e2e' .'6461742e636769','7365747570','5f73657475705f6d656e75732e68' .'746d6c','73657475702e6461742e636769','6e756d207469746c6562' .'6172','20636f6e6669726d5f657261736520636f6e6669726d5f73617' .'6656420636f6e6669726d5f6572617365642073657475705f7761726e6' .'96e67','2075706c6f61646c696d69742075706c6f61646d6178207570' .'6c6f61645f6865696768742075706c6f61645f77696474682075706c6f' .'6164657874206c686f7572206c686f75725f6f6666736574206c6d696e' .'206c6d696e5f6f66667365742072656731207265673220726567332064' .'20632069','206469725f62617365206469725f75706c6f61642064697' .'25f7075626c697368','2075726c5f696d6167652075726c5f68656c70' .'2075726c5f75706c6f61642075726c5f7075626c6973682075726c5f6c' .'6f676f6666207365617263685f75726c','2064656661756c745f61757' .'46f666f726d617420616c6c6f775f68746d6c20616c6c6f775f6172745' .'f7479706573206175746f5f7075626c697368','207075626c6973685f' .'696e6465785f66696c65707265666978207075626c6973685f68656164' .'6c696e655f66696c65707265666978207075626c6973685f6361745f66' .'696c65707265666978207075626c6973685f6361745f686561646c696e' .'655f66696c65707265666978207075626c6973685f6172745f66696c65' .'707265666978207075626c6973685f6172745f7072696e7465725f6669' .'6c65707265666978207075626c6973685f6361745f6c6973745f66696c' .'65707265666978207075626c6973685f73616d706c65725f66696c6570' .'7265666978207075626c6973685f66696c65657874','207075626c697' .'3685f696e6465785f717479207075626c6973685f686561646c696e655' .'f717479207075626c6973685f6361745f717479207075626c6973685f6' .'361745f686561646c696e655f717479207075626c6973685f73616d706' .'c65725f717479','207075626c6973685f696e646578207075626c6973' .'685f686561646c696e6573207075626c6973685f636174207075626c69' .'73685f6361745f686561646c696e6573207075626c6973685f61727469' .'636c65207075626c6973685f7072696e746572207075626c6973685f6c' .'6973745f6f665f63617473207075626c6973685f73616d706c6572','2' .'07075626c6973685f7365617263685f666f726d5f66696c65707265666' .'978207075626c6973685f7365617263685f666f726d','20676361745f' .'6e616d65','20676c6f62616c5f75706461746564','20736669656c64' .'5f6e616d653120736669656c645f6e616d653220736669656c645f6e61' .'6d653320736669656c645f6e616d653420736669656c645f6e616d6535' .'20736669656c645f6e616d653620736669656c645f6e616d6537207366' .'69656c645f6e616d653820736669656c645f6e616d653920736669656c' .'645f6e616d65313020736669656c645f6e616d65313120736669656c64' .'5f6e616d653132','20736669656c645f6f726465723120736669656c6' .'45f6f726465723220736669656c645f6f726465723320736669656c645' .'f6f726465723420736669656c645f6f726465723520736669656c645f6' .'f726465723620736669656c645f6f726465723720736669656c645f6f7' .'26465723820736669656c645f6f726465723920736669656c645f6f726' .'46572313020736669656c645f6f72646572313120736669656c645f6f7' .'26465723132','20736669656c645f747970653120736669656c645f74' .'7970653220736669656c645f747970653320736669656c645f74797065' .'3420736669656c645f747970653520736669656c645f74797065362073' .'6669656c645f747970653720736669656c645f74797065382073666965' .'6c645f747970653920736669656c645f74797065313020736669656c64' .'5f74797065313120736669656c645f747970653132','207075626c697' .'3685f73796e6469636174655f66696c65707265666978207075626c697' .'3685f73796e6469636174655f717479207075626c6973685f73796e646' .'96361746520776562666565645f67656e5f616374697665','20762062' .'72616e64696e6720666f6f746572207374617469635f61726368697665' .'5f7061676573207669657765725f75726c207669657765725f70617468' .'696e666f20616c6c6f775f6172745f66696c656e616d65','207366696' .'56c645f6e616d65313320736669656c645f6e616d65313420736669656' .'c645f6e616d65313520736669656c645f6e616d65313620736669656c6' .'45f6e616d65313720736669656c645f6e616d65313820736669656c645' .'f6e616d65313920736669656c645f6e616d653230','20736669656c64' .'5f6f72646572313320736669656c645f6f72646572313420736669656c' .'645f6f72646572313520736669656c645f6f7264657231362073666965' .'6c645f6f72646572313720736669656c645f6f72646572313820736669' .'656c645f6f72646572313920736669656c645f6f726465723230','207' .'36669656c645f74797065313320736669656c645f74797065313420736' .'669656c645f74797065313520736669656c645f7479706531362073666' .'9656c645f74797065313720736669656c645f747970653138207366696' .'56c645f74797065313920736669656c645f747970653230','20736f72' .'74316669656c6420736f7274317265766572736520736f7274316e756d' .'6572696320736f7274326669656c6420736f7274327265766572736520' .'736f7274326e756d6572696320736f7274336669656c6420736f727433' .'7265766572736520736f7274336e756d65726963','2073756d6d61727' .'95f6e616d6520636f6e74656e745f6e616d652073756d6d6172795f747' .'9706520636f6e74656e745f747970652073756d6d6172795f656e61626' .'c656420636f6e74656e745f656e61626c6564','20736669656c645f65' .'6e61626c65643120736669656c645f656e61626c65643220736669656c' .'645f656e61626c65643320736669656c645f656e61626c656434207366' .'69656c645f656e61626c65643520736669656c645f656e61626c656436' .'20736669656c645f656e61626c65643720736669656c645f656e61626c' .'65643820736669656c645f656e61626c65643920736669656c645f656e' .'61626c6564313020736669656c645f656e61626c656431312073666965' .'6c645f656e61626c6564313220736669656c645f656e61626c65643133' .'20736669656c645f656e61626c6564313420736669656c645f656e6162' .'6c6564313520736669656c645f656e61626c6564313620736669656c64' .'5f656e61626c6564313720736669656c645f656e61626c656431382073' .'6669656c645f656e61626c6564313920736669656c645f656e61626c65' .'643230','207075626c6973685f68696464656e5f696e64657820656d6' .'1696c5f6e6f74696669636174696f6e5f656e61626c6564206d61696c5' .'f73656e6465725f656d61696c206d61696c5f73656e6465725f6e616d6' .'5206d61696c5f6d61696c6572206d61696c5f73656e646d61696c206d6' .'1696c5f736d7470206d61696c5f706f703361757468206d61696c5f706' .'f7033206d61696c5f706f703375736572206d61696c5f706f703370617' .'3732070617273655f737369','207365617263685f70726f6772616d5f' .'61637469766520766965775f70726f6772616d5f616374697665207373' .'695f687474705f617574685f757365726e616d65207373695f68747470' .'5f617574685f70617373776f7264','20696e636c7564655f737562636' .'1745f61727469636c6573206d61785f7375626361745f6465707468207' .'375626361745f666f726d6174','48415348','44425f5365656b203a2' .'054686520666972737420617267756d656e74206d75737420626520612' .'048415348207265666572656e636521','44425f5365656b203a205468' .'65207365636f6e6420617267756d656e74206d75737420626520612048' .'415348207265666572656e636521','44425f5365656b203a204e6f207' .'365656b206669656c64207761732073706563696669656421','43','6' .'669656c646e','44425f4c697374203a20546865206669727374206172' .'67756d656e74206d75737420626520612048415348207265666572656e' .'636521','434f4445','44425f4c697374203a20546865207365636f6e' .'6420617267756d656e74206d757374206265206120434f444520726566' .'6572656e636521','44425f4c697374203a20546865207468697264206' .'17267756d656e74206d757374206265206120484153482072656665726' .'56e636521','44425f4c697374203a20416e6f6e207375622024726f77' .'636f6465206973206e6f7420646566696e656421','44425f4c6973742' .'03a204e6f206461746166696c6520646566696e656420696e206461746' .'16261736520646566696e6974696f6e20282544424465662921','6e', '2d','44425f4c697374203a2044424465662d3e736f7274627920636f6' .'e7461696e7320756e6b6e6f776e206669656c64206e616d6520','a1', '44425f4c69737450616765203a2054686520666972737420617267756d' .'656e74206d75737420626520612048415348207265666572656e636521', '44425f4c69737450616765203a2054686520746869726420617267756d' .'656e74206d757374206265206120434f4445207265666572656e636521', '44425f4c69737450616765203a20416e6f6e2073756220246d61746368' .'636f6465206973206e6f7420646566696e656421','44425f4c6973745' .'0616765203a204e6f206461746166696c6520646566696e656420696e2' .'0646174616261736520646566696e6974696f6e2028254442446566292' .'1','44425f4c69737450616765203a2044424465662d3e736f72746279' .'20636f6e7461696e7320756e6b6e6f776e206669656c64206e616d6520', '44425f4c69737453617665203a2044424465662d3e736f727462792063' .'6f6e7461696e7320756e6b6e6f776e206669656c64206e616d6520','4' .'14c4c','bf25303278','7072696e742022436f6e74656e742d7479706' .'53a20746578742f68746d6c5c6e5c6e3c68746d6c3e3c2f68746d6c3e2' .'23b','5f5f454e445f5f','44425f416464203a2054686520666972737' .'420617267756d656e74206d75737420626520612048415348207265666' .'572656e636521','44425f416464203a20546865207365636f6e642061' .'7267756d656e74206d7573742062652061204841534820726566657265' .'6e636521','736f72646572','44425f4c6f6164203a20546865206669' .'72737420617267756d656e74206d757374206265206120484153482072' .'65666572656e636521','44425f4c6f6164203a20546865207365636f6' .'e6420617267756d656e74206d757374206265206120484153482072656' .'66572656e636521','44425f4c6f6164203a204e6f207265636f726420' .'6e756d626572207761732073706563696669656421','44425f44656c2' .'03a2054686520666972737420617267756d656e74206d7573742062652' .'0612048415348207265666572656e636521','44425f44656c203a2054' .'6865207365636f6e6420617267756d656e74206d757374206265206120' .'7265636f7264206e756d62657221','44425f53617665203a205468652' .'0666972737420617267756d656e74206d7573742062652061204841534' .'8207265666572656e636521','44425f53617665203a20546865207365' .'636f6e6420617267756d656e74206d7573742062652061204841534820' .'7265666572656e636521','44425f53617665203a204e6f207265636f7' .'264206e756d626572207761732073706563696669656421','6d61785f' .'66696c656c6f636b5f77616974','6578636c7573697665','41525241' .'59','556e6b6e6f776e206669656c642022','2220696e20636f6e6469' .'74696f6e3c62723e3c62723e','4c494b45','4e4f54204c494b45','3' .'d3d','3c','3e','3c3d','3e3d','213d','4245545745454e','4e4f' .'54204245545745454e','494e','28','207c7c20','29','4e4f54204' .'94e','2128','556e6b6e6f776e206f70657261746f722022','284066' .'203d2073706c6974282fa12f2929','6d792040663b2020407b2472656' .'35f6e6f7061636b7d203d2067726570207b20','20262620','207d204' .'07b247265635f6e6f7061636b7d3b','6d792040663b2020666f726561' .'63682028407b247265635f6e6f7061636b7d29207b202069662028','2' .'9207b20246d617463685f6e6f7061636b7b24665b305d7d2b2b3b207d2' .'07d','66696c6573797374656d','3d','766172','436f756c646e277' .'42066696e6420','21','66696c6573','64697273','646972203a205' .'56e6b6e6f776e2066696c652074797065203a20','26','64656275675' .'f6f7574707574','6370203a2063616e2774207265616420','6370203' .'a2063616e277420777269746520','434f4e54454e545f4c454e475448', '51554552595f535452494e47','52656164466f726d203a20496e70757' .'42065786365656473206d617820696e707574206c696d6974206f6620', '434f4e54454e545f54595045','524551554553545f4d4554484f44','' .'504f5354','5f70617468','5f66696c65','5f657874','474554','7' .'4727565','56','4d','41','44','6e6f2d6361636865','636163686' .'5','706c61696e','737369','54656d706c6174653a20556e6b6e6f77' .'6e2074656d706c61746520666c616720','54656d706c617465203a204' .'e6f2074656d706c6174652066696c65207761732073706563696669656' .'421','54656d706c617465203a20546865207365636f6e642061726775' .'6d656e74206d75737420626520612048415348207265666572656e6365' .'21','54656d706c617465203a2054656d706c6174652066696c6520','' .'20636f756c64206e6f7420626520666f756e6421','54656d706c61746' .'5203a20436f756c646e2774206f70656e20','5f7565','5f6865','5f' .'6e627370','5f6a65','54656d706c61746543656c6c203a204e6f2074' .'656d706c6174652063656c6c207761732073706563696669656421','5' .'4656d706c61746543656c6c203a2054656d706c6174652063656c6c20', '206973206e6f7420646566696e656421','54656d706c61746543656c6' .'c203a20546865207365636f6e6420617267756d656e74206d757374206' .'26520612048415348207265666572656e636521','5a','61','7a','2' .'b','422a','4d494d453634203a204e6f7468696e6720746f206465636' .'f6465','252525303278','536574436f6f6b6965203a20436f6f6b696' .'5206e616d65206d75737420626520737065636966696564','53657443' .'6f6f6b6965203a2045787069726520446174652069736e277420696e20' .'7365636f6e6473207573696e672074696d6528293b','30','65787069' .'7265733d','706174683d','646f6d61696e3d','7365637572653b20', '5365742d436f6f6b69653a20','485454505f434f4f4b4945','6c616e' .'6775616765','6f7264696e616c73','20307468','20317374','2032' .'6e64','20337264','20347468','20357468','20367468','2037746' .'8','20387468','20397468','31307468','31317468','31327468', '31337468','31347468','31357468','31367468','31377468','313' .'87468','31397468','32307468','32317374','32326e64','323372' .'64','32347468','32357468','32367468','32377468','32387468', '32397468','33307468','33317374','7765656b5f66756c6c','7765' .'656b5f61626272','6d6f6e74685f66756c6c','6d6f6e74685f616262' .'72','25','62','42','63','256d2f25642f25792025483a254d3a255' .'3','256120256220256520255420255a202559','64','25303264','2' .'56d2f25642f2579','65','253264','68','48','49','6a','253033' .'64','6b','6c','6d','6f','70','50','71','72','25493a254d3a2' .'553202570','52','25483a254d','73','53','74','54','25483a25' .'4d3a2553','55','77','57','78','58','79','59','25303464','4' .'4617465537472696e67203a2054696d652076616c7565206d757374206' .'26520616e20696e7465676572','4a616e','466562','4d6172','417' .'072','4d6179','4a756e','4a756c','417567','536570','4f6374', '4e6f76','446563','4a616e75617279','4665627275617279','4d61' .'726368','417072696c','4a756e65','4a756c79','417567757374', '53657074656d626572','4f63746f626572','4e6f76656d626572','4' .'46563656d626572','53756e','4d6f6e','547565','576564','5468' .'75','467269','536174','53756e646179','4d6f6e646179','54756' .'573646179','5765646e6573646179','5468757273646179','467269' .'646179','5361747572646179','7374','6e64','7264','7468','7e', '2573','252d20353073','3c696e70757420747970653d68696464656e' .'206e616d653d22','222076616c75653d22','534d54505f73656e646d' .'61696c','686f7374','706f7274','68656c6f','6c6f63616c686f73' .'74','74696d656f7574','6465627567','6572726f72','706f70335f' .'61757468','5c62283f3a5b5c775c2d5d2b5b5c775c2d5c2e5d292a5b5' .'c775c2d5d2b5c40','283f3a5b5c775c2d5d2b5b5c775c2d5c2e5d292a' .'5b5c775c2d5d2b5c2e5b412d5a612d7a5d7b322c387d5c62','66726f6' .'d','706f70335f75736572','706f70335f70617373','534d54505f70' .'6f703361757468','617574686f72697a6564','706f70335f686f7374', '706f70335f706f7274','706f70335f74696d656f7574','5f73756273', '46485f437265617465','66696c656c6f636b696e67','6c6f636b','7' .'37461636b','736861726564','756e6c6f636b3a206e6573746564206' .'6696c656c6f636b20756e64657272756e','66696c656c6f636b','6c6' .'f636b696e666f','68616e646c65','73657276657262757379','6367' .'69646972','2e2e2e','414e59','5b56414c55455d2c205b56414c554' .'55d2c205b484153485d','6d61785f7373695f726563757273696f6e5f' .'64657074685f616c6c6f776564','485454505f5353495f52454355525' .'3494f4e5f4445505448','5f25303364','7373695f687474705f61757' .'4685f757365726e616d65','7373695f687474705f617574685f706173' .'73776f7264','417574686f72697a6174696f6e','70726576656e745f' .'656e636f6465645f726573706f6e7365','4163636570742d456e636f6' .'4696e67','43616368652d436f6e74726f6c','2c20','6e6f2d747261' .'6e73666f726d','7365727665725f736964655f70617273696e67','64' .'6f5f6e6f745f65726173655f74656d705f66696c6573','416c6c6f77', '436f6e6e656374696f6e','436f6e74656e742d456e636f64696e67','' .'436f6e74656e742d4c616e6775616765','436f6e74656e742d4c656e6' .'77468','436f6e74656e742d4c6f636174696f6e','436f6e74656e742' .'d4d4435','436f6e74656e742d52616e6765','436f6e74656e742d547' .'97065','457870656374','45787069726573','486f7374','49662d4' .'d61746368','49662d4d6f6469666965642d53696e6365','49662d4e6' .'f6e652d4d61746368','49662d52616e6765','49662d556e6d6f64696' .'66965642d53696e6365','4c6173742d4d6f646966696564','4d61782' .'d466f727761726473','5445','547261696c6572','5472616e736665' .'722d456e636f64696e67','55706772616465','566961','436f6f6b6' .'965','3b20','5373692d526563757273696f6e2d4465707468','5245' .'4d4f54455f41444452','5345525645525f41444452','4c4f43414c5f' .'41444452','485454505f585f464f525741524445445f464f52','4854' .'54505f434c49454e545f4950','582d466f727761726465642d466f72', '436c69656e742d4950','5b56414c55455d','75726c','70726f746f6' .'36f6c','6469726563746f7279','66696c65','7175657279','616e6' .'3686f72','75695f73756273','5f','65646974','636f6e6669726d5' .'f6572617365','7569','706167656e756d','64617465','637265617' .'46564','5f6267636f6c6f72','23454545454646','23444444444545', '5f6d656e755f686561646572','5f6d656e755f6e616d65','6d61785f' .'7265636f726473','6572726f725f6d61785f7265636f726473','5f73' .'656c6563746564','73656c6563746564','6e6f6e65','63726561746' .'5645f6279','757064617465645f6279','616464','5f65646974','6' .'e6f7265636f7264','5f636865636b6564','636865636b6564','5f63' .'6f6e6669726d5f6572617365','6572617365203a2043616e277420666' .'96e64207265636f7264202320','6469725f75706c6f6164','636f6e6' .'669726d5f657261736564','657261736564','73617665203a2054616' .'26c65206e616d6520756e646566696e6564','75706c6f6164657874', '75706c6f61646c696d6974','75706c6f61646d6178','6d6573736167' .'65','303030','75695f736176655f75706c6f616473203a2063616e27' .'7420736176652075706c6f616465642066696c6520','75706c6f61645' .'f686569676874','75706c6f61645f7769647468','6f776e6572','69' .'6d6167657769647468','696d616765686569676874','7566696c65', '73617665','6d617873697a65','6d6178686569676874','6d6178776' .'9647468','616363657074657874','4e6f6e65','6572726f725f7570' .'6c6f61645f6e6f745f7361766564','636f6e6669726d5f7361766564', '7361766564','75695f6c697374203a205468652066697273742061726' .'7756d656e74206d75737420626520612048415348207265666572656e6' .'36521','5f6c697374616c6c','5f7374617465','5f70657270616765', '5f6c697374','5f70636f756e74','5f6d636f756e74','5f72636f756' .'e74','5f6370616765','5f6c70616765','5f6e70616765','6e6f745' .'f666f756e645f736561726368','616363657373','61636c','6964', '6572726f725f757365726e616d655f74616b656e','6572726f725f6c6' .'173745f61646d696e','6c6f67696e5f696e76616c6964','6d61696c5' .'f6d61696c6572','736d7470','6d61696c5f736d7470','534d5450', '736d74705f68656c6f','736d74705f74696d656f7574','6d61696c5f' .'706f703361757468','6d61696c5f706f7033','6d61696c5f706f7033' .'75736572','6d61696c5f706f703370617373','73656e646d61696c', '6d61696c5f73656e646d61696c','6669656c645f6e616d65','646972', '6d6b646972','546865206162696c69747920746f20637265617465206' .'e6577206469726563746f7269657320686173206265656e2072656d6f7' .'665642066726f6d206f75722064656d6f2076657273696f6e2e2020','' .'4120726567697374657265642076657273696f6e206f6620','70726f6' .'75f6e616d65','20776f756c6420616c6c6f7720796f7520746f20646f' .'20736f2e','6d6b66696c65','546865206162696c69747920746f2063' .'7265617465206e65772066696c657320686173206265656e2072656d6f' .'7665642066726f6d206f75722064656d6f2076657273696f6e2e2020', '546865206162696c69747920746f2062726f7773652061726f756e6420' .'796f75722073657276657220686173206265656e2072656d6f76656420' .'66726f6d206f75722064656d6f2076657273696f6e2e2020','6469725' .'f62617365','73646972','64656d6f','6d6b6469725f6e616d65','6' .'469725f6572726f72','4e6f206469726563746f7279206e616d652073' .'706563696669656421','4469726563746f7279206e616d65206d61792' .'06f6e6c7920636f6e7461696e20412d5a2c20612d7a2c20302d392c202' .'d206f72205f','556e61626c6520746f2063726561746520646972203a' .'20','6d6b66696c655f6e616d65','66696c655f6572726f72','4e6f2' .'066696c65206e616d652073706563696669656421','46696c65206e61' .'6d65206d6179206f6e6c7920636f6e7461696e20412d5a2c20612d7a2c' .'20302d392c202d2c205f206f72202e','46696c6520616c72656164792' .'065786973747321','556e61626c6520746f206372656174652066696c' .'65203a20','64697232','706172656e74','706172656e745f7565','' .'4469726563746f727920646f65736e277420657869737421','4469726' .'563746f72792069736e2774207265616461626c6521','636f6e74656e' .'74686561646572','5f62726f7773655f6469722e68746d6c','706174' .'68','706174685f7565','73697a65','6d74696d65','6d6f64696669' .'6564','6f74686572','6e6f66696c6573','436f6e74656e742d74797' .'0653a20696d6167652f676966','436f6e74656e742d747970653a2069' .'6d6167652f6a706567','6c686f7572','6c686f75725f6f6666736574', '6d696e7573','6c6d696e','6c6d696e5f6f6666736574','6c6f67696' .'e','7077','6c6f67696e5f65787069726564','6c6f67696e5f74696d' .'656f7574','436f6e74656e742d747970653a20746578742f68746d6c', '5f696e746572666163652e68746d6c','75695f6c6f67696e5f696e746' .'572666163653a2074656d706c61746563656c6c20','686561646572', '6c6f67696e5f6d657373616765','666f6f746572','75726c5f6c6f67' .'6f6666','3c6d65746120687474702d65717569763d225265667265736' .'82220636f6e74656e743d22303b55524c3d','7374696d65','6c74696' .'d65','656e765f7065726c5f6f73','656e765f7065726c5f766572','' .'656e765f6d6f645f7065726c','656e765f72656d6f74655f686f7374', '656e765f72656d6f74655f61646472','656e765f636769646972','73' .'656e646d61696c5f726f77','2f7573722f6c69622f73656e646d61696' .'c','2f7573722f62696e2f73656e646d61696c','2f7573722f7362696' .'e2f73656e646d61696c','2f7573722f6c6f63616c2f62696e2f73656e' .'646d61696c','2f7362696e2f73656e646d61696c','2f62696e2f7365' .'6e646d61696c','2f6574632f73656e646d61696c','73656e646d6169' .'6c5f6c697374','74616231','73657475705f7761726e696e67','636' .'c6f73655f77696e646f775f6f6e5f636f6e6669726d','73657475705f' .'746573746d61696c','5f73657475705f746573746d61696c2e68746d6' .'c','5f636f6e74656e74','6d61696c5f74657374','706167655f7469' .'746c65','54657374204d61696c','6d61696c746f','62616420656d6' .'1696c2061646472657373','496e76616c696420656d61696c20616464' .'72657373','6e6f20656d61696c2061646472657373','456d61696c20' .'61646472657373206c65667420626c616e6b2e','63616e74206f70656' .'e2074657374206d657373616765','626164206d61696c2074656d706c' .'617465','7375622073656e646d61696c206572726f72','20','6d616' .'96c207465737420737563636565646564','796573','6d61696c5f746' .'573745f6661696c6564','4572726f723a204e6f20456d61696c204164' .'6472657373','4572726f723a20496e76616c696420456d61696c20416' .'46472657373','6e6f','4572726f723a2050726f626c656d207769746' .'82054657374204d657373616765','4572726f723a2050726f62656c6d' .'20776974682054657374204d657373616765','4572726f723a2050726' .'f62656c6d2073656e64696e67204d657374204d657373616765','6d61' .'696c5f746573745f737563636565646564','54657374204d61696c205' .'37563636565646564','5f6261636b5f627574746f6e','54686520616' .'2696c69747920746f20616c746572205365747570204f7074696f6e732' .'0686173206265656e2072656d6f7665642066726f6d206f75722064656' .'d6f2076657273696f6e2e2020','20776f756c6420616c6c6f7720796f' .'7520746f206368616e676520616e79206f66207468657365206669656c' .'64732e','73617665645f74616231','6d61785f7375626361745f6465' .'707468','6465707468','72656733','496e76616c69642050726f647' .'56374204944213c62723e','596f75206d75737420656e74657220796f' .'75722050726f64756374204944213c62723e','72656732','596f7520' .'6d75737420656e74657220796f757220646f6d61696e206e616d65213c' .'62723e','72656731','596f75206d75737420656e74657220796f7572' .'20636f6d70616e79206e616d65213c62723e','5f72656731','5f7265' .'6732','5f72656733','74616239','5f6c6963656e73655f6e756d','' .'25303764','6373756d','23','73756d6d6172795f74797065','636f' .'6e74656e745f74797065','5f696d61676575726c','75726c5f696d61' .'6765','5f75695f7469746c65','7469746c65626172','5f75695f666' .'f6f746572','5f75726c5f68656c70','75726c5f68656c70','707562' .'6c69736865645f616c6c','496e74657266616365203a204e6f2074656' .'d706c6174652063656c6c207761732073706563696669656421','496e' .'74657266616365203a20546865207365636f6e6420617267756d656e74' .'206d75737420626520612048415348207265666572656e636521','6e6' .'f5f68656c70','6d656e756261725f61636c','6d656e75626172','5f' .'6f6e6c79','5f63757365725f6964','696e74657266616365','3c212' .'d2d','2076','20284275696c643a20','70726f645f6964','4c69636' .'56e73652023','207e20','457865637574652074696d653a202530316' .'4207365636f6e6473','2d2d3e','64617461646972','6e6f77726974' .'65','64656d6f5f6d657373616765','73657475705f74616273','746' .'1625f6e756d','7461625f6e616d65','7461625f756e73656c6563746' .'564','7461625f73656c6563746564','5f6865616465725f746162','' .'7461625f626172','7461625f6c697374','4334','696e736964655f7' .'37369','54656d706c617465203a20546865207365636f6e6420617267' .'756d656e74206d75737420626520612048415348207265666572656e63' .'65206f7220756e646566696e656421','696e636c75646573','617364' .'66','636c6f7365','557365722d4167656e74','6170706c696361746' .'96f6e2f782d7777772d666f726d2d75726c656e636f646564','646f6e' .'745f666f72776172645f687474705f68656164657273','20485454502' .'f312e30','3a20','696d675f616c69676e','61727469636c655f6564' .'69746f72','696d6167655f616c69676e6d656e74','7269676874','6' .'96d675f75726c','696d675f63617074696f6e','696d675f686569676' .'874','696d675f7769647468','696d675f6e6f63617074696f6e','3c' .'6d657461206e616d653d2267656e657261746f722220636f6e74656e74' .'3d22','3c212d2d204c617374205570646174656420','202d2d3e','5' .'f5f4449455f5f','5f5f5741524e5f5f','656d61696c5f6e6f7469666' .'9636174696f6e5f656e61626c6564','6e6f74696669636174696f6e5f' .'6576656e7473','2c','656d61696c','6576656e745f6e616d6573','' .'2d2d2d','7374617475735f6e616d6573','70656e64696e67','76697' .'369626c65','757365725f66756c6c6e616d65','6576656e74','7572' .'6c5f736561726368','7365617263685f75726c','7075626c6973685f' .'696e6465785f66696c65707265666978','7075626c6973685f6865616' .'46c696e655f66696c65707265666978','6172745f636174','66696c6' .'55f686561646c696e65735f6279636174','7075626c6973685f73616d' .'706c65725f66696c65707265666978','66696c655f736561726368','' .'7075626c6973685f7365617263685f666f726d5f66696c657072656669' .'78','75726c5f7468697370616765','6172745f66696c656e616d65', '6d61696c5f73656e6465725f656d61696c','6d61696c5f73656e64657' .'25f6e616d65','656d61696c2f6e6f746966792e747874','546865206' .'56d61696c2074656d706c617465206e6f746966792e747874206973206' .'96d70726f7065726c7920666f726d61747465642e','436f6e74656e74' .'2d547970653a20746578742f706c61696e','656d61696c5f616c6c5f6' .'3617473','656d61696c5f63617473','656d61696c5f6e6f746966696' .'36174696f6e5f6576656e7473','6e6f74696669636174696f6e735f74' .'6f5f6669656c64','6263635f6c6973745f736570617261746f72','63' .'61745f6572617365','6361745f636f6e6669726d5f6572617365','63' .'7573746f6d5f75695f736176655f75706c6f616473203a2063616e2774' .'20736176652075706c6f616465642066696c6520','7669727475616c5' .'f7075626c6973685f646972','7075626c6973686469725f66696c6570' .'617468','7075626c6973686469725f7669727475616c70617468','76' .'69727475616c5f6763617465676f72696573','7669727475616c5f676' .'86561646c696e6573','7669727475616c5f686561646c696e65735f62' .'79636174','7669727475616c5f736561726368','6361745f67656e65' .'726174655f62726561646372756d625f68746d6c','63617465676f727' .'95f62726561646372756d622e68746d6c','5f62726561646372756d62' .'5f6c696e6b','62726561646372756d625f6c696e6b','5f6272656164' .'6372756d625f6c696e6b5f73656c6563746564','62726561646372756' .'d625f6c696e6b5f73656c6563746564','62726561646372756d625f64' .'697669646572','676c6f62616c5f6f72646572','616c6c5f63617473', '63617473','646973706c61795f6f6e6c79','6361745f67656e657261' .'74655f62726561646372756d625f74657874','63617465676f7269657' .'3','6d61785f62726561646372756d625f6f7074696f6e5f6c656e6774' .'68','6f7074696f6e5f696e64656e746174696f6e5f737472696e67','' .'6f7074696f6e5f696e64656e746174696f6e5f737566666978','5f756' .'95f6267636f6c6f72','53657276657220746f6f206275737921','417' .'27469636c65732063616e6e6f74206265206163636573736564206f722' .'07361766564207269676874206e6f772e20536f6d656f6e6520656c736' .'520697320747279696e6720746f2073617665207468656972206172746' .'9636c652c206f72207468652073797374656d20697320696e207468652' .'06d69647374206f662072652d7075626c697368696e67206f722061726' .'3686976696e672061727469636c65732e20506c6561736520776169742' .'061206d6f6d656e7420616e64207468656e2074727920616761696e2e', '6d6163667470','7075626c697368','6d6f645f7065726c','6e6f686' .'56c70','4e6f2048656c7020417661696c61626c65','536f7272792c2' .'06e6f2068656c702069732063757272656e746c7920617661696c61626' .'c6520666f722074686973206170706c69636174696f6e2e2020506c656' .'1736520636f6e7461637420796f75722073797374656d2061646d696e6' .'973747261746f7220666f7220617373697374616e63652e','4e6f2073' .'7563682066696c65206f72206469726563746f7279','5065726d69737' .'3696f6e2064656e696564','206f6e436c69636b3d2277696e646f772e' .'636c6f736528293b2220','5343524950545f4e414d45','6267636f6c' .'6f72','2e2e2f646174612f','2e2e2f646174612f66696c656c6f636b' .'2e6c6f636b','256220256f2c202559202d2025483a254d3a2553','25' .'622025652c202559','6e6f5f7765625f736572766572','4d4f445f50' .'45524c','616c6c6f775f6d6f645f7065726c','63676975726c','636' .'76966696c65','2e2e2f74656d706c61746573','74656d706c6174656' .'4697232','2e2e2f74656d706c617465732f696e74657266616365','7' .'4656d706c61746564697233','2e2e2f5f736f757263655f696d616765' .'73','69','506c6561736520696e7374616c6c207468652070726f6772' .'616d2066697273742062792072756e6e696e672061646d696e2e636769', '5f70726f675f6e616d65','5f70726f675f766572','5f76656e646f72' .'5f6e616d65','76656e646f725f6e616d65','5f76656e646f725f7572' .'6c','76656e646f725f75726c','5f76656e646f725f6c6f636174696f' .'6e','76656e646f725f6c6f636174696f6e' );for(@z){$_=pack('H*',$_)}}BEGIN{eval$z[0];if(!$@){use vars qw($___script_start_time);$___script_start_time=Time::HiRes::time(); }};use Socket;use Time::Local;use Fcntl qw(:DEFAULT :flock); %ab=();%ac=();%ad=();%ae=();%af=();%ag=();%ah=();%ai=();$ab{$z[1]} =$z[2];$ab{$z[3]}=$z[4];$ab{$z[5]}=20;@aj[0,1,2,3,9]=($z[6],$z[7],$z[8],$z[9],$z[10]); $SIG{__DIE__}=\&ak;srand;$|=1;$^T=time();binmode(STDOUT);&al; sub um{;}MAIN:;if(!$ac{$z[11]}&&$ac{$z[12]}>=1.33){$ad{$z[13]} =$ac{$z[13]};print"Content-type: text/html\n\n";my$am=&an($z[14], {});&ao($am);exit;}&ap();my$aq=length$ag{$z[15]}?int$ag{$z[15]} :undef;if($aq){$ae{$z[16]}{$z[17]}="archive$aq.dat";}my%ar; my$as;my$at;if(length$ag{$z[18]}&&$ag{$z[18]}){$at=1;}elsif (length$ag{$z[18]}&&!$ag{$z[18]}){$at=0;}else{$at=$ac{$z[19]}; }my@au=grep{$_}map{int($_)}split(/,/,$ag{$z[20]});my@av;if($at) {my$aw=&ax($z[20]);foreach(keys%$aw){my$ay=$aw->{$_};my$az= 0;my$ba;foreach$ba(@au){my$bb=$aw->{$ba}{$z[21]};if($ay->{$z[21]} =~/^$bb/){$az=1;}}if($az){push@av,$ay->{$z[22]};}}}my%bc=map {$_,1}(@au,@av);my@bc=keys%bc;my$bd;my$be;if(scalar(@au)==1) {$ar{$z[23]}=$au[0];$be=$au[0];$bd=1;}else{$ar{$z[23]}=undef; }my($bf,$bg);$bf=sprintf($z[24],$ag{$z[25]},$ag{$z[26]},$ag{$z[27]} )if($ag{$z[25]}&&$ag{$z[26]}&&$ag{$z[27]});$bg=sprintf($z[24], $ag{$z[28]},$ag{$z[29]},$ag{$z[30]})if($ag{$z[28]}&&$ag{$z[29]} &&$ag{$z[30]});my$bh=&bi();$ad{$z[31]}=$ac{$z[32]}.$ar{$z[23]} .$z[33].$ac{$z[34]};$ad{$z[35]}=$ac{$z[36]}.$ar{$z[23]}.$z[33] .$ac{$z[34]};$ad{$z[37]}=$bh.$ad{$z[31]};$ad{$z[38]}=$bh.$ad{$z[35]}; if($bd){$ad{$z[31]}=$ac{$z[32]}.$be.$z[33].$ac{$z[34]};$ad{$z[35]} =$ac{$z[36]}.$be.$z[33].$ac{$z[34]};}else{$ad{$z[31]}=$ad{$z[39]}; $ad{$z[35]}=$ad{$z[40]};}$ad{$z[41]}=&bj($z[42],[]);if(!keys %ag){&bk($ae{$z[15]},sub{my$aq=shift;$ad{$z[43]}.=$z[44].$aq->{$z[22]}.$z[45].$aq->{$z[46]}; });my($bl,$bm);if($ac{$z[47]}){$bm=&bn($z[48],{});my$bo={$z[49] =>"$ac{'dir_publish'}",$z[50]=>"$ac{'url_publish'}",};($bl, $bm)=&bp($bm,$ac{$z[34]},$bo);}else{$bl="Content-type: text/html\n\n"; $bm=&bn($z[48],{},$z[51],undef,$ac{$z[52]});}&ao($bl,$bm);exit; }$ag{$z[53]}||=$z[54];$ag{$z[55]}||=10;$ag{$z[56]}||=1;my($bq); foreach$bq(sort keys%ag){$ad{"in_$bq"}=$ag{$bq};$ad{$z[57]} .="in_$bq"." = ".$ad{"in_$bq"}."
";}my%br;my$bs;foreach$bs ('',$z[58],$z[59],$z[60]){opendir AC,$ab{$z[61]}.$z[62].$bs; %br=(%br,map{$bs.$_,1}grep{not-d"$ab{'templatedir1'}/$bs$_" }readdir(AC));closedir AC;}unless($br{$ag{$z[53]}}){&ak($z[63]); }&bn($ag{$z[53]},{},'','',$ac{$z[52]});my(%bt,%bu,%bv,%bw,%bx, %by,%bz,%ca);$as=sub{my%cb=%{shift()};$bt{$cb{$z[22]}}=$cb{$z[46]}; $by{$cb{$z[22]}}=$cb{$z[64]};$bv{$cb{$z[22]}}=$cb{$z[65]};$bu{$cb{$z[22]}} =$cb{$z[66]}?"$ac{'url_upload'}$cb{'ufile_image'}":"$ac{'url_image'}spacer.gif"; $bw{$cb{$z[22]}}=$cb{$z[67]};$bx{$cb{$z[22]}}=$cb{$z[68]};if ($cb{$z[69]}){$ca{$cb{$z[22]}}{$z[13]}=$cb{$z[13]};$ca{$cb{$z[22]}}{$z[70]} =$cb{$z[70]};}else{$ca{$cb{$z[22]}}{$z[13]}=$ac{$z[13]};$ca{$cb{$z[22]}}{$z[70]} =$ac{$z[70]};}if($cb{$z[22]}){my$cc=$cb{$z[71]}?$cb{$z[72]} :$ac{$z[73]}.$cb{$z[22]};$bz{$cb{$z[22]}}=$ac{$z[13]}.$cc.$z[33] .$ac{$z[34]};}else{$bz{$cb{$z[22]}}=$ad{$z[74]};}};&bk($ae{$z[20]}, $as);if($bd){$ad{$z[75]}=$bz{$be};}else{$ad{$z[75]}=$ad{$z[74]}; }&bk($ae{$z[15]},sub{my$aq=shift;$ad{$z[43]}.=$z[44].$aq->{$z[22]}.$z[45].$aq->{$z[46]}; });my@cd;if($ag{$z[76]}){@cd=split(/[\s,]+/,$ag{$z[76]});foreach (@cd){$_=~s/art_field/spare/ig;$_=~s/art_//ig;}}else{foreach ($z[46],$z[77],$z[78],map{$z[79].$_}1..$ab{$z[5]}){push(@cd,$_); }}my$ce;$as=sub{my$cf=shift;return unless($cf->{$z[20]});return if($cf->{$z[80]}!=2);return if($bv{$cf->{$z[20]}});if(@bc){ my$cg;my$cb;foreach$cb(@bc){if($cb==$cf->{$z[20]}){$cg=1;}} return if!$cg;}my$ch=sprintf($z[24],@{$cf}{qw/year mon day/}); if($bf&&$bg){return unless($ch>=$bf&&$ch<=$bg);}elsif($bf){ return unless($ch>=$bf);}elsif($bg){return unless($ch<=$bg); }my$ci;my$cj=($af{$z[81]}{$z[82]}?'':$z[83]).quotemeta($ag{$z[84]}); foreach(@cd){$ci++if($cf->{$_}=~m/$cj/i);}return if(defined $ag{$z[84]}&¬$ci);$ar{$z[85]}++;if($ar{$z[85]}>=$ag{$z[56]} &&$ar{$z[85]}<$ag{$z[56]}+$ag{$z[55]}){my($ck,$cl);foreach$ck (keys%{$cf}){$cl->{$z[86].$ck}=$cf->{$ck};}$cl->{$z[87]}=~s|\n|
\n|g if$cf->{$z[88]};$cl->{$z[89]}=~s|\n|
\n|g if$cf->{$z[90]}; for(1..$ab{$z[5]}){$cl->{$z[91].$_}=~s|\n|
\n|g if$cf->{$z[92] .$_};}my@cm=($cf->{$z[25]},$cf->{$z[26]}-1,$cf->{$z[27]},$cf->{$z[93]} +($cf->{$z[94]}eq$z[95]?12:0),$cf->{$z[96]});$cl->{$z[97]}= &cn($ab{$z[98]},@cm);$cl->{$z[99]}=&cn($ab{$z[100]},@cm);$cl->{$z[23]} =$cf->{$z[20]};$cl->{$z[101]}=$bt{$cf->{$z[20]}};$cl->{$z[102]} =&co($cf->{$z[20]});$cl->{$z[103]}=$bu{$cf->{$z[20]}};$cl->{$z[104]} =$bw{$cf->{$z[20]}};$cl->{$z[105]}=$bx{$cf->{$z[20]}};$cl->{$z[106]} =$ca{$cf->{$z[20]}}{$z[13]}.($ac{$z[107]}&&$cf->{$z[108]}?$ac{$z[109]} .$cf->{$z[108]}:$ac{$z[109]}.$cf->{$z[22]}).$z[33].$ac{$z[34]}; $cl->{$z[31]}=$ac{$z[32]}.$cf->{$z[20]}.$z[33].$ac{$z[34]}; $cl->{$z[35]}=$ac{$z[36]}.$cf->{$z[20]}.$z[33].$ac{$z[34]}; $cl->{$z[110]}=$bz{$cf->{$z[20]}};$cl->{$z[111]}=$ca{$cf->{$z[20]}}{$z[13]} .($ac{$z[107]}&&$cf->{$z[108]}?$cf->{$z[108]}:$ac{$z[112]}. $cf->{$z[22]}).$z[33].$ac{$z[34]};if(defined$aq){if($ac{$z[113]}) {$cl->{$z[111]}=$ac{$z[114]}.$z[62].$aq.$z[62].$cl->{$z[115]}; }else{$cl->{$z[111]}=$ac{$z[114]}.$z[116].$aq.$z[117].$cl->{$z[115]}; }}if($cf->{$z[118]}==3){$cl->{$z[119]}="http://$cf->{'link'}" unless($cf->{$z[119]}=~m|^\w+://|);$cl->{$z[111]}=$cf->{$z[119]} }if($cf->{$z[118]}==4){$cl->{$z[111]}=$ca{$cf->{$z[20]}}{$z[70]} .$cf->{$z[120]};}foreach(1..25){$cl->{$z[121].$_}=$ca{$cf->{$z[20]}}{$z[70]} .$cf->{"ufile_image$_"};$cl->{$z[122].$_}=$cf->{$z[122].$_}; $cl->{$z[68].$_}=$cf->{$z[68].$_};$cl->{$z[67].$_}=$cf->{$z[67] .$_};}$cl->{$z[87]}=&cp($cl->{$z[87]},$cl,'');$cl->{$z[89]} =&cp($cl->{$z[89]},$cl,'');foreach(1..$ab{$z[5]}){if($cl->{$z[91] .$_}=~/\*{3}image(\d+)(:\w+)?\*{3}/s){$cl->{$z[123].$_}=&cp($cl->{$z[91] .$_},$cl,'');}else{$cl->{$z[123].$_}=$cl->{$z[91].$_};}}my$cq =($z[124],$z[125],$z[126],$z[127])[$cf->{$z[118]}-1];$ar{$z[128]} .=&cr($cq,$cl,($ce++% 2==0)?'':$z[129]);}};&bk($ae{$z[16]}, $as);if(!$ar{$z[128]}){$ar{$z[128]}=&cs($z[130],{});$ar{$z[85]} =0;}else{if($ag{$z[56]}>1){my$ct=$ag{$z[56]}-$ag{$z[55]};$ct =1 if$ct<1;$ar{$z[131]}=&cs($z[131],{$z[132]=>$ad{$z[133]}. $z[134].&cu({%ag,$z[56]=>$ct})});}elsif(defined$ab{$z[135]}{$z[136]}{$z[137]}) {$ar{$z[131]}=&cs($z[137],{});}if($ar{$z[85]}>=$ag{$z[56]}+ $ag{$z[55]}){my$cv=$ag{$z[56]}+$ag{$z[55]};$ar{$z[138]}=&cs($z[138], {$z[139]=>$ad{$z[133]}.$z[134].&cu({%ag,$z[56]=>$cv})});}elsif (defined$ab{$z[135]}{$z[136]}{$z[140]}){$ar{$z[138]}=&cs($z[140], {});}}$ar{$z[141]}=&cw($ar{$z[85]}/$ag{$z[55]});$ar{$z[142]} =&cw($ag{$z[56]}/$ag{$z[55]});$ar{$z[143]}=$ag{$z[56]};$ar{$z[144]} =&cx($ag{$z[56]}+$ag{$z[55]}-1,$ar{$z[85]});if($bd){$ar{$z[101]} =$bt{$be};$ar{$z[102]}=&co($be);$ar{$z[145]}=&cn($ab{$z[146]}, &cy($by{$be}))if$by{$be};$ar{$z[103]}=$bu{$be};$ar{$z[105]} =$bx{$be}||1;$ar{$z[104]}=$bw{$be}||1;}else{$ar{$z[101]}=$ac{$z[147]}; $ar{$z[102]}=&co(0);$ar{$z[145]}=&cn($ab{$z[146]},&cy($ac{$z[148]})) if$ac{$z[148]};}my($bl,$bm);if($ac{$z[47]}){$bm=&bn($ag{$z[53]}, \%ar);my$bo={$z[49]=>"$ac{'dir_publish'}",$z[50]=>"$ac{'url_publish'}", };($bl,$bm)=&bp($bm,$ac{$z[34]},$bo);}else{$bl="Content-type: text/html\n\n"; $bm=&bn($ag{$z[53]},\%ar,$z[51],undef,$ac{$z[52]});}&ao($bl, $bm);exit;sub ao{my$cz=join'',@_;if(-f"$ab{'cgidir'}/display_resource_usage.pl") {eval"require \"$ab{'cgidir'}/display_resource_usage.pl\""; $cz=~s/^Content-Length.*?\n//m;print$cz ;&display_resource_usage(); }else{print$cz ;}exit;}sub al{my$da=$0;$da=~s/.*[\\\/]//;my @db=($0,$ENV{$z[149]});my$dc=(grep(/$cgifile$/i&&s/^(.*)[\\\/].*/$1/,@db))[0]; $dc||=(($^O=~/mswin/i?`cd`:`pwd`)=~/(.*)/)[0];$dc=~s/\\/\//g; if(!$dc){die("Can't determine cgi directory!\n");}$ae{$z[16]} ={$z[46]=>$z[16],$z[150]=>$z[151],$z[152]=>$z[153],$z[17]=> $z[154],$z[76]=>$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[170].$z[171].$z[172].$z[173],$z[81]=>$z[46],$z[174] =>$z[175],$z[176]=>\&dd,$z[177]=>[[$z[178],\&de],[$z[179],\&df ],],};$ae{$z[180]}={$z[46]=>$z[16],$z[150]=>$z[181],$z[152] =>$z[182],$z[17]=>$z[183],$z[76]=>$ae{$z[16]}{$z[76]},$z[81] =>$ae{$z[16]}{$z[81]},$z[174]=>$ae{$z[16]}{$z[174]},$z[177] =>[[$z[179],\&df],],};$ae{$z[20]}={$z[46]=>$z[20],$z[150]=> $z[184],$z[152]=>$z[185],$z[17]=>$z[186],$z[76]=>$z[187].$z[188]. $z[189].$z[190].$z[191].$z[192].$z[193],$z[81]=>$z[46],$z[174] =>$z[194],$z[176]=>\&dg,$z[177]=>[[$z[178],\&dh],[$z[179],\&di ],],};$ae{$z[15]}={$z[46]=>$z[15],$z[150]=>$z[195],$z[152]=> $z[196],$z[17]=>$z[197],$z[76]=>$z[198],$z[81]=>$z[46],$z[174] =>$z[199],$z[177]=>[[$z[179],\&dj],],};$ae{$z[200]}={$z[46] =>$z[200],$z[152]=>$z[201],$z[17]=>$z[202],$z[76]=>$z[203], $z[81]=>$z[204],$z[174]=>$z[46],$z[177]=>[[$z[178],\&dk],[$z[179], \&dl],],};$ae{$z[205]}={$z[46]=>$z[205],$z[17]=>$z[206],$z[76] =>$ae{$z[200]}{$z[76]},};$ae{$z[207]}={$z[46]=>$z[207],$z[152] =>$z[208],$z[17]=>$z[209],$z[76]=>$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].$z[229] .$z[230].$z[231].$z[232].$z[233].$z[234].$z[235],};1;;sub od {my$ae=$_[0];my($dm)="$ab{'datadir'}$ae->{'datafile'}";my(@dn); if(ref($ae)ne$z[236]){die"DB_Count : The first argument must be a HASH reference!\n"; }if(!$ae->{$z[17]}){die"DB_Count : No datafile defined in database definition (\%DBDef)!\n"; }unless(-e$dm){return(0);}&dp;open(AB,"<$dm")||&dq("DB_Count : Can't open '$dm'"); @dn=grep/^\d/,;close(AB);&dr;my$ce=@dn;return$ce||0;}sub ou{my$ae=$_[0];if(ref($ae)ne$z[236]){die$z[237]."\n";}if(defined($_[1]) &&ref($_[1])ne$z[236]){die$z[238]."\n";}if(!$_[2]){die$z[239]."\n"; }my($dm)="$ab{'datadir'}$ae->{'datafile'}";my(@cd)=split(/ /,$ae->{$z[76]}); my($ar)=$_[1]if defined($_[1]);my($ds)=grep{$cd[$_]eq$_[2]} (0..$#cd);my($dt)=$_[3];my($du)=$_[4];my(@dn);my(@dv);unless (-e$dm){return(0);}if(-e$dm){&dp;open(AB,"<$dm")||&dq("DB_Seek : Can't open '$dm'"); @dn=;close(AB);&dr;}foreach(@dn){/^(\d+)\¡/;($1&&$1>=$du) ||next;s/[^¡]+$//;undef%$ar if defined($ar);@dv=split(/\¡/); next if($dv[$ds]ne$dt);if(defined($ar)){for(0..$#cd){$ar->{$cd[$_]} =$dv[$_];$ar->{$cd[$_]}=~s/¿([A-F0-9]{2})/pack($z[240],hex($1))/egix; }}return 1;}return 0;}sub bk{my$ae=$_[0];my($dm)="$ab{'datadir'}$ae->{'datafile'}"; my(@cd)=split(/ /,$ae->{$z[76]});unless($ae->{$z[241]}){for (0..$#cd){$ae->{$z[241]}{$cd[$_]}=$_;}}my($as)=$_[1];my($ar) =$_[2]||{};my($dw)=$_[3];my(@dn);my(@dv);my($dx,$dy);my$dz; if(ref($ae)ne$z[236]){die$z[242]."\n";}if(ref($_[1])ne$z[243] &&$_[1]){die$z[244]."\n";}if(ref($_[2])ne$z[236]&&$_[2]){die $z[245]."\n";}if(!defined&$as){die$z[246]."\n";}if(!$ae->{$z[17]}) {die$z[247]."\n";}unless(-e$dm){return(0);}&dp;open(AB,"<$dm") ||&dq("DB_List : Can't open '$dm'");@dn=;close(AB);&dr; @dn=grep/^\d/,@dn;&ea($ae,\@dn,$dw);if($ae->{$z[174]}){my($eb,$ec); foreach(split(/ /,$ae->{$z[174]})){if(s/#//g){$dx=$z[248];} else{$dx='';}if(s/-//g){$dy=$z[249];}else{$dy='';}if(!defined $ae->{$z[241]}{$_}){die($z[250]."'$_'!\n");}$ec.="$dy$ae->{'fieldn'}{$_}$dx "; }@dn=&ed($z[251],$ec,\@dn);}foreach(@dn){s/[^¡]+$//;undef%$ar; @dv=split(/\¡/);for$dz(0..$#cd){$ar->{$cd[$dz]}=$dv[$dz];$ar->{$cd[$dz]} =~s/¿([A-F0-9]{2})/pack($z[240],hex($1))/egix;}&$as($ar);}} sub os{my($ae)=$_[0];my($ee)=$_[1];my($ef)=int$_[2]||1;my($eg) =int$_[3];my($eh)=$_[4];my($ei)=$_[5];my($dx,$dy);my($ej,$ek,$dz); my($ar)={};if(ref($ae)ne$z[236]){die$z[252]."\n";}if(ref($_[1]) ne$z[243]&&$_[1]){die$z[253]."\n";}if(!defined&$ee){die$z[254]."\n"; }if(!$ae->{$z[17]}){die$z[255]."\n";}my($dm)="$ab{'datadir'}$ae->{'datafile'}"; my(@cd)=split(/ /,$ae->{$z[76]});unless($ae->{$z[241]}){for (0..$#cd){$ae->{$z[241]}{$cd[$_]}=$_;}}my($el,$em,$en,$eo,$ep) =(0,0,0,0,0);my(@dn);my(@dv);unless(-e$dm){return(0,0,0,0,0,0); }&dp;open(AB,"<$dm")||&dq("DB_List : Can't open '$dm'");@dn =;close(AB);&dr;@dn=grep/^\d/,@dn;&ea($ae,\@dn,$eh);$en =scalar@dn;&ea($ae,\@dn,$ei);$em=scalar@dn;if($ae->{$z[174]}) {my($eb,$ec);foreach(split(/ /,$ae->{$z[174]})){if(s/#//g){ $dx=$z[248];}else{$dx='';}if(s/-//g){$dy=$z[249];}else{$dy=''; }if(!defined$ae->{$z[241]}{$_}){die($z[256]."'$_'!\n");}$ec .="$dy$ae->{'fieldn'}{$_}$dx ";}@dn=&ed($z[251],$ec,\@dn);} $ek=($ef*$eg)-($eg-1);$ej=$ef*$eg;if($ej>$#dn){$ej=$#dn+1;} for($ek..$ej){$_=$dn[$_-1];s/[^\¡]+$//;undef%$ar;@dv=split(/\¡/); for$dz(0..$#cd){$ar->{$cd[$dz]}=$dv[$dz];$ar->{$cd[$dz]}=~s/¿([A-F0-9]{2})/pack($z[240],hex($1))/egix; }&$ee($ar);}$eg||=1;$el=int($em/$eg);if($em%$eg){$el++;}if(($ef-1) <1||($ef-1)>$el){$eo=$el;}else{$eo=$ef-1;}if(($ef+1)>$el){$ep =1;}else{$ep=$ef+1;}if(!$el){$ef=$eo=$ep=0;}return($el,$em, $en,$ef,$eo,$ep);}sub qf{my$ae=$_[0];if(ref($ae)ne$z[236]){ die"DB_ListSave : The first argument must be a HASH reference!\n"; }if(ref($_[1])ne$z[243]&&$_[1]){die"DB_ListSave : The second argument must be a CODE reference!\n"; }if(ref($_[2])eq$z[236]){die"DB_ListSave : Use of an output hash reference is depricated. Argument order has been changed.\n"; }my($dm)="$ab{'datadir'}$ae->{'datafile'}";my(@cd)=split(/ /,$ae->{$z[76]}); unless($ae->{$z[241]}){for(0..$#cd){$ae->{$z[241]}{$cd[$_]} =$_;}}my($as)=$_[1];my($dw)=$_[2];my($eq)=$_[3];my($ar)=$_[4] ||{};my(@dn,$er,%es);my(@dv,$dx,$dy,$dz);unless(-e$dm){return(0); }&dp;open(AB,"<$dm")||&dq("DB_List : Can't open '$dm'");@dn =;close(AB);if($dn[1]=~m/#(\d+)/){$er=$1;}else{foreach(@dn) {/^\d/||next;$es{(split(/\¡/))[0]}=1;}$er=(sort{$b<=>$a}keys %es)[0];}@dn=grep/^\d/,@dn;my$et=&eu($ae,\@dn,$dw);if($eq&& $ae->{$z[174]}){my($eb,$ec);foreach(split(/ /,$ae->{$z[174]})) {if(s/#//g){$dx=$z[248];}else{$dx='';}if(s/-//g){$dy=$z[249]; }else{$dy='';}if(!defined$ae->{$z[241]}{$_}){die($z[257]."'$_'!\n"); }$ec.="$dy$ae->{'fieldn'}{$_}$dx ";}@dn=&ed($z[251],$ec,\@dn); }foreach(@dn){if(!$et->{$z[258]}&&!$et->{(/^(\d+)/)[0]}){next; }s/[^¡]+$//;undef%$ar;@dv=split(/\¡/);for$dz(0..$#cd){$ar->{$cd[$dz]} =$dv[$dz];$ar->{$cd[$dz]}=~s/¿([A-F0-9]{2})/pack($z[240],hex($1))/egix; }&$as($ar);if($ar->{num}){$_="$dv[$dz]¡";for$dz(1..$#cd){my($ev) =$ar->{$cd[$dz]};$ev=~s/[\x1a\r\n\¡\¿]/sprintf($z[259],ord($&))/egx; $_.="$ev¡";}$_.="\n";}else{undef$_;}}open(AB,">$dm.tmp$$")or &dq("DB_ListSave : Can't open '$dm.tmp$$' for writing");print AB qq|#!$^X\n|or&dq("DB_ListSave : Can't write section 1 header to '$dm.tmp$$'"); print AB qq|#$er\n|or&dq("DB_ListSave : Can't write section 2 header to '$dm.tmp$$'"); print AB$z[260]."\n".$z[261]."\n"or&dq("DB_ListSave : Can't write section 3 header to '$dm.tmp$$'"); foreach(@dn){/^\d/||next;s/[^¡]+$//;print AB"$_\n"or&dq("DB_ListSave: Can't write to $dm.tmp$$"); }close(AB)or&dq("DB_ListSave : Can't close $dm.tmp$$");rename("$dm.tmp$$",$dm) or&dq("DB_ListSave : Can't rename '$dm.tmp$$' to '$dm'.");&dr; }sub fe{my$ae=$_[0];if(ref($ae)ne$z[236]){die$z[262]."\n";} if(ref($_[1])ne$z[236]){die$z[263]."\n";}my($dm)="$ab{'datadir'}$ae->{'datafile'}"; my(@cd)=split(/ /,$ae->{$z[76]});my($ag)=$_[1];my($ew)=int$_[2]; my(@dn);my(@dv);my(%es);my($ex,$dz,$er);&dp;if(-e$dm){open(AB,"<$dm") ||&dq("DB_Add : Can't open '$dm'");@dn=;close(AB);}if($dn[1] =~m/#(\d+)/){$er=$1;}else{foreach(@dn){/^\d/||next;$es{(split(/\¡/))[0]} =1;}$er=(sort{$b<=>$a}keys%es)[0];}if($ew&&$es{$ew}){&dr;return &ey(@_);}elsif($ew){$ex=$ew;}else{$ex=$er=$er+1;}$ag{$z[264]} =$ex;open(AB,">$dm.tmp$$")or&dq("DB_Add : Can't open '$dm.tmp$$' for writing"); print AB qq|#!$^X\n|or&dq("DB_Add : Can't write section 1 header to '$dm.tmp$$'"); print AB qq|#$er\n|or&dq("DB_Add : Can't write section 2 header to '$dm.tmp$$'"); print AB$z[260]."\n".$z[261]."\n"or&dq("DB_Add : Can't write section 3 header to '$dm.tmp$$'"); foreach(@dn){/^\d/||next;s/[^¡]+$//;print AB"$_\n"or&dq("DB_Add : Can't copy record to $dm.tmp$$ : $!\n"); }my($ez)="$ex¡";for$dz(1..$#cd){my($ev)=$ag->{$cd[$dz]};$ev =~s/[\x1a\r\n\¡\¿]/sprintf($z[259],ord($&))/egx;$ez.="$ev¡"; }print AB"$ez\n"or&dq("DB_Add : Can't add new record to $dm.tmp$$"); close(AB)or&dq("DB_Add : Can't close $dm.tmp$$");rename("$dm.tmp$$",$dm) or&dq("DB_Add : Can't rename '$dm.tmp$$' to '$dm'.");&dr;return $ex;}sub oe{my$ae=$_[0];my($fa,$fb,$ez)=caller;if(ref($ae)ne $z[236]){die$z[265]."\n";}if(ref($_[1])ne$z[236]){die$z[266]."\n"; }if(!$_[2]){die$z[267]."caller: $ez\n";}my($dm)="$ab{'datadir'}$ae->{'datafile'}"; my(@cd)=split(/ /,$ae->{$z[76]});my($ar)=$_[1];my($es)=int$_[2]; my(@dn);my(@dv);my($dz);unless(-e$dm){return(0);}if(-e$dm){ &dp;open(AB,"<$dm")||&dq("DB_Load : Can't open '$dm'");@dn= ;close(AB);&dr;}foreach(@dn){/^$es\¡/||next;s/[^¡]+$//; undef%$ar;@dv=split(/\¡/);for$dz(0..$#cd){$ar->{$cd[$dz]}=$dv[$dz]; $ar->{$cd[$dz]}=~s/¿([A-F0-9]{2})/pack($z[240],hex($1))/egix; }return 1;}return 0;}sub og{my$ae=$_[0];if(ref($ae)ne$z[236]) {die$z[268]."\n";}if(!$_[1]){die$z[269]."\n";}my($dm)="$ab{'datadir'}$ae->{'datafile'}"; my(@cd)=split(/ /,$ae->{$z[76]});my($es)=int$_[1];my(%ej);my($fc) =0;for(1..$#_){$ej{$_[$_]}++;}my(@dn,$er,%es);unless(-e$dm) {return(0);}&dp;if(-e$dm){open(AB,"<$dm")||&dq("DB_Del : Can't open '$dm'"); @dn=;close(AB);}if($dn[1]=~m/#(\d+)/){$er=$1;}else{foreach (@dn){/^\d/||next;$es{(split(/\¡/))[0]}=1;}$er=(sort{$b<=>$a }keys%es)[0];}open(AB,">$dm.tmp$$")or&dq("DB_Del : Can't open '$dm.tmp$$' for writing"); print AB qq|#!$^X\n|or&dq("DB_Del : Can't write section 1 header to '$dm.tmp$$'"); print AB qq|#$er\n|or&dq("DB_Del : Can't write section 2 header to '$dm.tmp$$'"); print AB$z[260]."\n".$z[261]."\n"or&dq("DB_Del : Can't write section 3 header to '$dm.tmp$$'"); foreach(@dn){/^(\d+)\¡/||next;if($ej{$1}){$fc++;next;}s/[^¡]+$//; print AB"$_\n"or&dq("DB_Del : Can't copy record to $dm.tmp$$ : $!\n"); }close(AB)or&dq("DB_Del : Can't close $dm.tmp$$");rename("$dm.tmp$$",$dm) or&dq("DB_Del : Can't rename '$dm.tmp$$' to '$dm'.");&dr;return $fc;}sub ey{my$ae=$_[0];if(ref($ae)ne$z[236]){die$z[270]."\n"; }if(ref($_[1])ne$z[236]){die$z[271]."\n";}if(!$_[2]){die$z[272]."\n"; }my($dm)="$ab{'datadir'}$ae->{'datafile'}";my(@cd)=split(/ /,$ae->{$z[76]}); my($ag)=$_[1];my($es)=int$_[2];my($fd)=0;my(@dn);my(@dv);my($dz,$ar,$er,%es); if(!-e$dm){return&fe(@_);}&dp;open(AB,"<$dm")||&dq("DB_Save : Can't open '$dm'"); @dn=;close(AB);if($dn[1]=~m/#(\d+)/){$er=$1;}else{foreach (@dn){/^\d/||next;$es{(split(/\¡/))[0]}=1;}$er=(sort{$b<=>$a }keys%es)[0];}open(AB,">$dm.tmp$$")or&dq("DB_Save : Can't open '$dm.tmp$$' for writing"); print AB qq|#!$^X\n|or&dq("DB_Save : Can't write section 1 header to '$dm.tmp$$'"); print AB qq|#$er\n|or&dq("DB_Save : Can't write section 2 header to '$dm.tmp$$'"); print AB$z[260]."\n".$z[261]."\n"or&dq("DB_Save : Can't write section 3 header to '$dm.tmp$$'"); foreach(@dn){/^\d/||next;if(/^$es\¡/){my($ez)="$es¡";for$dz (1..$#cd){my($ev)=$ag->{$cd[$dz]};$ev=~s/[\x1a\r\n\¡\¿]/sprintf($z[259],ord($&))/egx; $ez.="$ev¡";}print AB"$ez\n"or&dq("DB_Save : Can't save modified record to $dm.tmp$$"); $fd++;next;}s/[^¡]+$//;print AB$_,"\n"or&dq("DB_Save : Can't copy record to $dm.tmp$$"); }close(AB)or&dq("DB_Save : Can't close $dm.tmp$$");rename("$dm.tmp$$",$dm) or&dq("DB_Save : Can't rename '$dm.tmp$$' to '$dm'.");&dr;unless($fd) {return&fe(@_);}}sub dp{my$ff=$af{$z[273]}||5;&fg($z[274],$ff); }sub dr{my$ff=$af{$z[273]}||5;&fh($ff);}sub ft{my($ae,$fi,$fj) =@_;my(@fk,@fl);unless($ae->{$z[241]}){my(@cd)=split(/ /,$ae->{$z[76]}); for(0..$#cd){$ae->{$z[241]}{$cd[$_]}=$_;}}foreach(@{$fj}){my ($fm,$fn,$fo)=@{$_};next if$fo eq'';if(ref($fo)eq$z[275]){foreach (@$fo){s/[\x1a\r\n\¡\¿]/sprintf($z[259],ord($&))/egx;$_=quotemeta($_); }}else{$fo=~s/[\x1a\r\n\¡\¿]/sprintf($z[259],ord($&))/egx;$fo =quotemeta($fo);}$fn=uc$fn;my$fp=$ae->{$z[241]}{$fm};unless (defined$fp){&ak($z[276].$fm.$z[277].&fq($fj));}if($fn eq$z[278]) {push@fk,"/$fo/i";push@fl,"\$f[$fp] =~ /$fo/i";}elsif($fn eq $z[279]){push@fl,"\$f[$fp] ne /$fo/i";}elsif($fn eq$z[280]) {push@fk,"/¡$fo¡/i";push@fl,"\$f[$fp] eq q/$fo/";}elsif($fn eq$z[281]||$fn eq$z[282]||$fn eq$z[283]||$fn eq$z[284]||$fn eq$z[285]){push@fl,"\$f[$fp] $fn $fo";}elsif($fn eq$z[286]) {my($fr,$fs)=@{$fo};push@fl,"\$f[$fp] >= $fr && \$f[$fp] <= $fs"; }elsif($fn eq$z[287]){my($fr,$fs)=@{$fo};push@fl,"!(\$f[$fp] >= $fr && \$f[$fp] <= $fs)"; }elsif($fn eq$z[288]){push@fl,$z[289].join($z[290],map{"\$f[$fp] eq q/$_/" }@{$fo}).$z[291];}elsif($fn eq$z[292]){push@fl,$z[293].join($z[290], map{"\$f[$fp] eq q/$_/"}@{$fo}).$z[291];}else{&ak($z[294].$fn .$z[277].&fq($fj));}}unshift(@fl,$z[295])if@fl;return(\@fk, \@fl);}sub ea{my($ae,$rec_nopack,$fj)=@_;my($fk,$fl)=&ft($ae, $rec_nopack,$fj);return unless(@$fk||@$fl);my$fu=$z[296].join($z[297], @$fk,@$fl).$z[298];&fv($fu);eval$fu;&fv($@);}sub eu{my($ae, $rec_nopack,$fj)=@_;my($fk,$fl)=&ft($ae,$rec_nopack,$fj);return ({$z[258]=>1})unless(@$fk||@$fl);my%match_nopack;my$fu=$z[299] .join($z[297],@$fl).$z[300];&fv($fu);eval$fu;&fv($@);return(\%match_nopack); }sub dq{my($fw)=(@_);my($fx)=$!;if($fx eq''){$fx="Unknown error. Maybe disk quota exceeded?"; }&ak($z[301],"$fw : $fx\n");}1;;sub uj{local(*AB);my($fy)=$_[0]; my(@fz,$ga,%gb);$ga=\%gb;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,"<$fy")||die("INI_Load : Could open ini file! $!\n"); @fz=;close(AB);foreach(@fz){/^\s*#/m&&next;if(/^\s*\[/m) {$ga=\%gb;foreach(/\[(.+?)\]/g){$ga=\%{$ga->{$_}};}next;}my $gc=index($_,$z[302]);if($gc>0){my$gd=substr($_,0,$gc);my$fo =substr($_,$gc+1);foreach($gd,$fo){s/^\s+//;s/\s+$//;}$gd=~ /[^a-zA-Z\/0-9_\-]/&&die("INI_Load : Invalid key '$gd' in ini file '$fy'!\n"); defined$ga->{$gd}&&die("INI_Load : Key '$gd' defined twice in ini file '$fy'!\n"); $ga->{$gd}=$fo;}elsif($gc==-1){my$gd=$_;for($gd){s/^\s+//;s/\s+$//; }if(!length$gd){next;}defined$ga->{$gd}&&die("INI_Load : Key '$gd' defined twice in ini file '$fy'!\n"); $ga->{$gd}=1;}}return%gb;}sub fq{my$ga=$_[0];my$ge=$_[1];my $gf=$_[2]||$z[303];my$ar;if(ref($ga)eq$z[236]){foreach(sort keys%{$ga}){if(ref($ga->{$_})){$ar.=&fq($ga->{$_},"$ge\{$_}"); }else{$ar.="\$$gf$ge"."{$_} = $ga->{$_}\n";}}}elsif(ref($ga) eq$z[275]){for(0..$#{$ga}){if(ref($ga->[$_])){$ar.=&fq($ga->[$_],"$ge\[$_]"); }else{$ar.="\$$gf$ge"."[$_] = $ga->[$_]\n";}}}return$ar;}sub bs{my($gg,$gh)=@_;my(%gi);local(*AC);if(!-e$gg){$!=$z[304].$gg.$z[305]; return(0);}if($gh&&$gh ne$z[306]&&$gh ne$z[307]){die($z[308]."$gh\n"); }opendir(AC,$gg);foreach(grep(!/^\.+$/,readdir(AC))){if($gh eq$z[306]){$gi{$_}++if-f"$gg/$_";}elsif($gh eq$z[307]){$gi{$_}++ if-d"$gg/$_";}else{$gi{$_}++;}}closedir(AC);return%gi;}sub fv{my$gj;my$dz;while(my($fy,$ez,$gk)=(caller($dz++))[1,2,3]) {$fy=~s/^.*[\/\\]//;$gk=~s/^main:://;unless($gk=~s/__ANON__/(anonymous)/) {$gk=$z[309].$gk;}$gj.=qq!$fy ($ez)¡called $gk¡¡!;}$gj=~s/\\/\\\\/g; $gj=~s/'/\\'/g;$gj=~s/¡/\\n/g;$ab{$z[310]}.=qq|>|; $ab{$z[310]}.=join("\n
",map{&gl($_)}@_)."
\n
"; }sub un{my($gm,$gn)=@_;local(*AD);local(*AE);open(AD,"<$gm") ||die($z[311]."$gm : $!\n");open(AE,">$gn")||die($z[312]."$gn : $!\n"); binmode(AD);binmode(AE);print AE;close(AD);close(AE);}sub uk{my($go)=$_[0];my($gd,$fo,$gp,@gq,$gr,%gb);my($fy,$gg,$gs); my($gt);binmode(STDIN);if($go&&($ENV{$z[313]}||length$ENV{$z[314]}) >$go){die($z[315]."$go bytes\n");}($gt)=$ENV{$z[316]}=~/boundary=(?:"?)(\S+?)(?:"?)$/; if($ENV{$z[317]}eq$z[318]&&$ENV{$z[316]}=~m|^multipart/form-data|) {my$gr;read(STDIN,$gr,$ENV{$z[313]});foreach(split(/\n/,$gr)) {if(/^--$gt--/){$gr.="--$gt";last;}else{$gr.=$_;}}@gq=split(/--$gt/,$gr); foreach$gp(@gq){unless($gp=~/^(\r\n|\n)Content-Disposition/) {next;}($gd,$fo)=$gp=~/^(?:\r\n|\n)(.*?)(?:\r\n|\n){2}(.*?)(?:\r\n|\n)$/s; ($gg)=$gd=~/filename="([^"]+)"/;($gd)=$gd=~/name="([^"]+)"/; ($fy)=$gg=~/([^\/\\]+)$/;($gs)=$gg=~/\.(\w+)$/;if(!$gg){$gd =~s/\r\n/\n/g;$fo=~s/\r\n/\n/g;$gd=~s/\x00//g;$fo=~s/\x00//g; }$gb{$gd}=$fo;$gb{$gd.$z[319]}=$gg;$gb{$gd.$z[320]}=$fy;$gb{$gd.$z[321]} =$gs;}}else{if($ENV{$z[317]}eq$z[318]){read(STDIN,$gr,$ENV{$z[313]}); }elsif($ENV{$z[317]}eq$z[322]){$gr=$ENV{$z[314]};}@gq=split(/&/, $gr);foreach$gp(@gq){($gd,$fo)=split(/=/,$gp);$gd=~tr/+/ /; $fo=~tr/+/ /;$gd=~s/%([A-F0-9]{2})/pack($z[240],hex($1))/egi; $fo=~s/%([A-F0-9]{2})/pack($z[240],hex($1))/egi;$gd=~s/\r\n/\n/g; $fo=~s/\r\n/\n/g;$gd=~s/\x00//g;$fo=~s/\x00//g;if($gd=~/_multi$/) {push@{$gb{$gd}},$fo;}else{$gb{$gd}=$fo;}}}foreach(keys%gb) {if(/^(.*)(\.x|\.y)$/){$gb{$1}=$z[323];}}return%gb;}sub pk{ my($gu)=$_[0];my($gv,$gw)=split(/@/,$gu);if($gu eq''){return 0;}if($gu=~/[^A-Za-z0-9-_\.\@]/){return 0;}if($gv!~/^([\w\-]+[\w\-\.])*[\w\-]+$/) {return 0;}if($gw!~/^([\w\-]+[\w\-\.])*[\w\-]+\.[A-Za-z]{2,8}$/) {return 0;}return 1;}sub uo{my($gx,$gy)=@_;unless($gx eq$z[324] ||$gx eq$z[325]||$gx eq$z[326]||$gx eq$z[327]){return undef; }$gy=~s/[^\d]//g;my@gz=split//,$gy;unless(($gx eq$z[324]&&$gz[0] ==4)||($gx eq$z[325]&&$gz[0]==5)||($gx eq$z[326]&&$gz[0]==3) ||($gx eq$z[327]&&$gz[0]==6)){return undef;}unless(($gx eq$z[324] &&($#gz==12||$#gz==15))||($gx eq$z[325]&&$#gz==15)||($gx eq $z[326]&&$#gz==14)||($gx eq$z[327]&&$#gz==15)){return undef; }my$ha;for(my$gc=($#gz+1)% 2;$gc<=$#gz;$gc+=2){if($gz[$gc]< 5){$gz[$gc]*=2;}else{$gz[$gc]=($gz[$gc]* 2)-9}}foreach(@gz) {$ha+=$_;}unless($ha% 10==0){return undef;}return 1;}sub an {local(*AB);my($fy,%gb,$bm,$hb);%gb=%{$_[1]}if$_[1];my%hc;%hc =($z[328]=>0,$z[329]=>0,$z[330]=>0,$z[331]=>0);foreach(split(/ /,$_[2])) {if(undef$hc{$_}){die($z[332]."'$_'\n");}$hc{$_}=1;}if(!$_[0]) {die$z[333]."\n";}if(ref($_[1])ne$z[236]){die$z[334]."\n";} if((!$hc{$z[329]}||!$ab{$z[135]}{$z[329]}{$_[0]})){if(-e"$_[0]") {$fy=$_[0];}else{foreach(grep/^templatedir/,sort keys%ab){if (-e"$ab{$_}/$_[0]"){$fy="$ab{$_}/$_[0]";last;}}if(!$fy){die $z[335]."'$_[0]'".$z[336]."\n";}}}if($hc{$z[329]}&&$ab{$z[135]}{$z[329]}{$_[0]}) {$bm=$ab{$z[135]}{$z[329]}{$_[0]};}else{open(AB,"<$fy")||die $z[337]."$fy! $!\n";binmode(AB)if($fy=~/gif$/i||$fy=~/jpg$/i); read(AB,$bm,-s AB);close(AB);}if($hc{$z[330]}){return$bm;}if (!$hc{$z[329]}||!$ab{$z[135]}{$z[329]}{$_[0]}){foreach$hb($bm =~m//g){$ab{$z[135]}{$z[136]}{$1}=$2 if($bm=~m/(?:\r\n|\n)?(.*?)/is); }$bm=~s/(?:\r\n|\n)?(.*?)//gis; if($hc{$z[329]}){$ab{$z[135]}{$z[329]}{$_[0]}=$bm;}}$bm=~s//$1/gi; $bm=~s[\$(\w+?)(_ue|_he|_nbsp|_je)?\$][my$fo=defined$ad{$1} ?$ad{$1}:$gb{$1};if($2 eq$z[338]){$fo=&hd($fo);}if($2 eq$z[339]) {$fo=&he($fo);}if($2 eq$z[340]){$fo=&he($fo);$fo=~s/ / /g; }if($2 eq$z[341]){$fo=&hf($fo);}$fo;]ge;return$bm;}sub cs{if (!$_[0]){die$z[342]."\n";}if(!defined$ab{$z[135]}{$z[136]}{$_[0]}) {die$z[343]."'$_[0]'".$z[344]."\n";}if(ref($_[1])ne"HASH"){ die$z[345]."\n";}local(*AB);my(%gb);%gb=%{$_[1]}if$_[1];my($bm) =$ab{$z[135]}{$z[136]}{$_[0]};$bm=~s/(?:\r\n|\n)?(.*?)//gs; $bm=~s//$1/gi;$bm=~s[\$(\w+?)(_ue|_he|_nbsp|_je)?\$][ my$fo=defined$ad{$1}?$ad{$1}:$gb{$1};if($2 eq$z[338]){$fo=&hd($fo); }if($2 eq$z[339]){$fo=&he($fo);}if($2 eq$z[340]){$fo=&he($fo); $fo=~s/ / /g;}if($2 eq$z[341]){$fo=&hf($fo);}$fo;]ge;return $bm;}sub mo{my($ag)=$_[0];my(@hg)=(($z[326]..$z[346],$z[347]..$z[348],0..9),$z[349],$z[62]); my($ar)=unpack($z[350],$ag);$ar=~s/(\d{6}|\d+$)/$hg[ord(pack$z[350],"00$1")]/ge; while(length($ar)%4){$ar.=$z[302];}return$ar;}sub up{my($ag) =$_[0];my(%hg);my($ar);my$dz;for(($z[326]..$z[346],$z[347]..$z[348],0..9),$z[349],$z[62]){ $hg{$_}=$dz++}$ag=$_[0]||return$z[351];$ag=~s/[^A-Za-z0-9+\/]//g; $ag=~s/[A-Za-z0-9+\/]/unpack'B*',chr($hg{$&})/ge;$ag=~s/\d\d(\d{6})/$1/g; $ag=~s/\d{8}/$ar.=pack($z[350],$&)/ge;return$ar;}sub hd{my($hh) =$_[0];$hh=~s/([^A-Za-z0-9\*\.\@\_\-])/uc sprintf($z[352],ord($1))/egx; $hh=~tr/ /+/;return$hh;}sub hz{my($hh)=$_[0];$hh=~tr/+/ /;$hh =~s/%([A-F0-9]{2})/pack($z[240],hex($1))/egi;return$hh;}sub or{my($hi);my($gd,$fo,$hj,$gg,$hk,$hl)=@_;my($hm);if($gd eq ''){die($z[353]."\n");}if($hj&&$hj ne int($hj)){die($z[354]."\n"); }$ah{$gd}=$fo;if($hj){my($hn,$ho,$hp,$hq,$hr,$hs,$ht,$hu)=gmtime($hj); ($hn,$ho,$hp,$hq)=map{$_<10?$z[355].$_:$_}($hn,$ho,$hp,$hq); $hm=join('',(qw(Sun Mon Tue Wed Thu Fri Sat Sun))[$ht],", $hq-",(qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec))[$hr],$z[249],1900+$hs, " $hv$hw$hn GMT");}if($gd){$gd=&hd($gd);}if($fo){$fo=&hd($fo); }if($hj){$hi.=$z[356]."$hm; ";}if($gg){$hi.=$z[357]."$gg; "; }if($hk){$hi.=$z[358]."$hk; ";}if($hl){$hi.=$z[359];}print$z [360]."$gd=$fo; $hi\n";}sub ul{my($hx,$gd,$fo,%hy);foreach$hx (split(/; /,$ENV{$z[361]})){($gd,$fo)=split(/=/,$hx);foreach($gd,$fo) {$_=&hz($_);}$hy{$gd}=$fo;}return%hy;}sub cn{my$ia=$_[0]||die("DateString: The first parameter must be a date or time format string\n"); $ia=~/\%/||die("DateString: The first parameter must contain a date format marker '%'\n"); my$ib=$_[1];my($hs,$hr,$hq,$ic,$ho,$hn,$ht,$hu);my@id=(0,0,1,0,0,0); my$ie=$_[-1]=~/^GMT$/i;pop(@_)if$ie;if(scalar(@_)>=3){die("DateString: Too many arguments\n") if scalar(@_)>7;my$ig;foreach$ig(1..scalar(@_)-1){$id[$ig-1] =$_[$ig];}($hs,$hr,$hq,$ic,$ho,$hn)=@id;if($hq>28){($hs,$hr, $hq)=&ih($hs,$hr,$hq);}$ib=$ie?&ii($hn,$ho,$ic,$hq,$hr,$hs) :&ij($hn,$ho,$ic,$hq,$hr,$hs);}else{}($hn,$ho,$ic,$hq,$hr,$hs, $ht,$hu)=($ie?gmtime($ib):localtime($ib));my$ik;if(exists($ab{DateString}{rhNames})) {$ik=$ab{DateString}{rhNames};}else{$ik={$z[94]=>exists($af{$z[362]}{ampm}) ?[split(/,/,$af{$z[362]}{ampm})]:[qw(AM PM)],$z[363]=>exists($af{$z[362]}{ordinals}) ?[split(/,/,$af{$z[362]}{ordinals})]:[$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],$z[392],$z[393],$z[394],$z[395]],$z[396]=>exists($af{$z[362]}{week_full}) ?[split(/,/,$af{$z[362]}{week_full})]:[qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday)], $z[397]=>exists($af{$z[362]}{week_abbr})?[split(/,/,$af{$z[362]}{week_abbr})] :[qw(Sun Mon Tue Wed Thu Fri Sat)],$z[398]=>exists($af{$z[362]}{month_full}) ?[split(/,/,$af{$z[362]}{month_full})]:[qw(January February March April May June July August September October November December)], $z[399]=>exists($af{$z[362]}{month_abbr})?[split(/,/,$af{$z[362]}{month_abbr})] :[qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)],};$ab{DateString}{rhNames} =$ik;}my($il,$im)=(0,1);my$in={$z[400]=>$z[400],$z[347]=>$ik->{week_abbr}[$ht], $z[326]=>$ik->{week_full}[$ht],$z[401]=>$ik->{month_abbr}[$hr], $z[402]=>$ik->{month_full}[$hr],$z[403]=>$z[404],$z[240]=>$z[405], $z[406]=>sprintf($z[407],$hq),$z[327]=>$z[408],$z[409]=>sprintf($z[410], $hq),$z[411]=>$ik->{month_abbr}[$hr],$z[412]=>sprintf($z[407], $ic),$z[413]=>sprintf($z[407],$ic% 12||12),$z[414]=>sprintf($z[415],$hu +1),$z[416]=>sprintf($z[410],$ic),$z[417]=>sprintf($z[410], $ic% 12||12),$z[418]=>sprintf($z[407],$hr+1),$z[325]=>sprintf($z[407], $ho),$z[248]=>"\n",$z[419]=>$ik->{ordinals}[$hq],$z[420]=>$ik->{ampm}[$ic >=12?1:0],$z[421]=>lc($ik->{ampm}[$ic>=12?1:0]),$z[422]=>int($hr /3)+1,$z[423]=>$z[424],$z[425]=>$z[426],$z[427]=>$ib,$z[428] =>sprintf($z[407],$hn),$z[429]=>"\t",$z[430]=>$z[431],$z[432] =>&io($il,$ht,$hu),$z[433]=>$ht,$z[434]=>&io($im,$ht,$hu),$z[435] =>$z[408],$z[436]=>$z[431],$z[437]=>sprintf($z[407],$hs% 100), $z[438]=>sprintf($z[439],$hs+1900),$z[346]=>'',$z[348]=>'', };$ia=&ip($in,$ia);return$ia;}sub ip{my($in,$ia)=@_;$ia=~s/%(O?[%a-zA-Z])/&iq($in, $1)/sgeox;return$ia;}sub iq{my$ir=$_[1];return(exists($_[0]->{$ir})) ?($_[0]->{$ir}=~/\%/&&$ir ne$z[400]?&ip($_[0],$_[0]->{$ir}) :$_[0]->{$ir}):"\%$ir";}sub io{my($is,$ht,$hu)=@_;$ht=($ht+ 7-$is)% 7;return int(($hu-$ht+13)/7-1);}sub ih{my($hs,$hr,$it) =@_;return@_ if$it<=28;my$iu;if($hr==1){if(($hs% 4==0)&&(!($hs % 100==0)||($hs% 400==0))){$iu=29;}else{$iu=28;}}elsif($hr== 3||$hr==5||$hr==8||$hr==10){$iu=30;}else{$iu=31;}return($hs, $hr,$it<$iu?$it:$iu);}sub uq{my$iv=$_[0];my$iw=$_[1]||die("DateString: The second argument must time()\n"); my$AF=$_[2];if($iw ne int($iw)){die($z[440]."\n");}my($hn,$ho,$hp,$it,$hr,$hs,$ht); if($AF){($hn,$ho,$hp,$it,$hr,$hs,$ht)=gmtime($iw);}else{($hn,$ho,$hp,$it,$hr,$hs,$ht) =localtime($iw);}if($iw=~tr/://){($hs,$hr,$it,$hp,$ho,$hn,$ht) =split(/:/,$iw);$hs-=1900;$hr-=1;foreach($hs,$hr,$it,$hp,$ho,$hn,$ht) {$_||=0;}}my(%ht,%ix,%hr,%iy);my@hr=($z[441],$z[442],$z[443],$z[444],$z[445],$z[446],$z[447],$z[448],$z[449],$z[450],$z[451],$z[452]); my@iy=($z[453],$z[454],$z[455],$z[456],$z[445],$z[457],$z[458],$z[459],$z[460],$z[461],$z[462],$z[463]); my@ht=($z[464],$z[465],$z[466],$z[467],$z[468],$z[469],$z[470]); my@ix=($z[471],$z[472],$z[473],$z[474],$z[475],$z[476],$z[477]); foreach(@ht){$ht{lc$_}++;}foreach(@ix){$ix{lc$_}++;}foreach (@hr){$hr{lc$_}++;}foreach(@iy){$iy{lc$_}++;}$iv=~s/\b[A-Za-z]{3,9}\b/ if($ht{lc$&}){if(uc($&)eq$&){uc$ht[$ht];}elsif(lc($&)eq$&){ lc$ht[$ht];}else{ucfirst lc$ht[$ht];}}elsif($ix{lc$&}){if(uc($&) eq$&){uc$ix[$ht];}elsif(lc($&)eq$&){lc$ix[$ht];}else{ucfirst lc$ix[$ht];}}elsif($hr{lc$&}){if(uc($&)eq$&){uc$hr[$hr];}elsif (lc($&)eq$&){lc$hr[$hr];}else{ucfirst lc$hr[$hr];}}elsif($iy{lc $&}){if(uc($&)eq$&){uc$iy[$hr];}elsif(lc($&)eq$&){lc$iy[$hr]; }else{ucfirst lc$iy[$hr];}}else{$&;}/ge;$iv=~s/\d{1,4}\b/if (length$&==4){$hs+1900;}elsif(length$&<=2){if(substr($&,0,1) eq 0){sprintf($z[407],$it);}else{$it;}}else{$&;}/ge;$iv=~s/(\d{1,2})(st|nd|rd|th)/ if($it==1||$it==21||$it==31){$it.$z[478];}elsif($it==2||$it ==22){$it.$z[479];}elsif($it==3||$it==23){$it.$z[480];}else {$it.$z[481];}/gei;$iv=~s/YYYY/sprintf($z[439],$hs+1900)/gei; $iv=~s/YY/sprintf($z[407],$hs%100)/gei;$iv=~s/MO\b/sprintf($z[407],$hr+1)/gei; $iv=~s/DD/sprintf($z[407],$it)/gei;$iv=~s/SS/sprintf($z[407],$hn)/gei; $iv=~s/MM/sprintf($z[407],$ho)/gei;$iv=~s/HH/sprintf($z[407],$hp)/gei; return$iv;}sub ed{my($iz,$ec,$arrayref_nopack)=@_;my(@f_nopack,$eb,$ja, $jb,$jc,$dz);my($dx,$dy);$dz=0;foreach(split(/ /,$ec)){if(s/\#//g) {$dx=1;}elsif(s/n//g){$dx=1;}else{$dx=0;}if(s/\-//g){$dy=$z[482]; }elsif(s/\+//g){$dy='';}else{$dy='';}s/[^0-9]//gs;push(@f_nopack,$_); if($dx){$eb+=15;$jb.=$z[483];$jc.=qq|$dy sprintf('%015s',int(substr(\$str[$dz]*100,0,15))),|; }else{$eb+=50;$jb.=$z[484];$jc.="$dy substr(\$str[$dz],0,50),"; }$dz++;}$ja.=qq|return map { substr(\$_,$eb) } sort map {\n|; $ja.=qq| my \@str = (split(/\\$iz/,lc \$_))[\@f_nopack];\n|; $ja.=qq| sprintf("$jb\%s" ,$jc\$_);\n|;$ja.=qq| } \@\$arrayref_nopack;\n|; eval$ja;}sub hf{my$jd=shift;$jd=~s/\\/\\\\/g;$jd=~s/'/\\'/g; $jd=~s/\n/\\n/g;$jd=~s/\r/\\r/g;$jd=~s/\000//g;$jd=~s/-->/--'+'>/g; $jd=~s!!!g;return$jd;}sub gl{my$je=shift; $je=~s/&/&/g;$je=~s/"/"/g;$je=~s//>/g; return$je;}sub he{my$je=shift;$je=~s/&([^\w#]|$)/&$1/g; $je=~s/"/"/g;$je=~s//>/g;return$je; }sub ur{my$je=shift;$je=~s//>/g;return$je; }sub cu{my$jf=shift;my%jg=map{$_,1}@_;return join($z[309],map {$jg{$_}?():&hd($_).$z[302].&hd($jf->{$_})}keys%{$jf});}sub us{my$jf=shift;my%jg=map{$_,1}@_;return join("\n",map{$jg{$_} ?():$z[485].&gl($_).$z[486].&gl($jf->{$_}).$z[45]}keys%{$jf}); }sub oo{$_=$_[0];/\.gif$/i&&return(&jh($_[0]));(/\.jpeg$/i|| /\.jpg$/i)&&return(&ji($_[0]));/\.png$/i&&return(&jj($_[0])); undef;}sub jj{my($fb)=@_;my($jk);open(PNG,$fb)||return(undef, undef,"PNG - Couldn't Open $fb");binmode(PNG);seek(PNG,12,0); read(PNG,$jk,4);if($jk ne"IHDR"){close PNG;return(undef,undef, "PNG - Missing Image Header - $jk");}read(PNG,$jk,8);close PNG;return unpack("NN",$jk);}sub ji{my($fb)=@_;my($jk,$jl,$jm, $jn,$jo);open(JPEG,$fb)||return(undef,undef,"JPEG - Couldn't Open $fb"); binmode(JPEG);read(JPEG,$jk,2);while(1){read(JPEG,$jl,4);($jm, $jn,$jo)=unpack("a a n",$jl);if($jm ne"\xFF"){close JPEG;return(undef, undef,"JPEG - Marker not Found");}if((ord($jn)>=0xC0)&&(ord($jn) <=0xC3)){read(JPEG,$jk,5);close(JPEG);my($jp,$jq)=unpack("xnn", $jk);return($jq,$jp);}else{read(JPEG,$jk,$jo-2);}}}sub jy{my ($jr,$js)=@_;my($jt);read($jr,$jt,$js);while(1){if(eof($jr)) {close AG;return(undef);}read($jr,$jt,1);last if ord($jt)== 0;read($jr,$jt,ord($jt));}1;}sub jh{my($fb)=@_;my($jk,$gh,$ju, $jv,$jq,$jw,$jp,$jx);open(AG,$fb)||return(undef,undef,"GIF - Couldn't Open $fb"); binmode(AG);read(AG,$gh,6);read(AG,$jk,7);if(length($jk)!=7) {close AG;return(undef,undef,"GIF - Corrupted Header");}($jq) =unpack("x4 C",$jk);if($jq&0x80){$ju=3*(2**(($jq&0x07)+1)); read(AG,$jv,$ju);if(!$jv){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,$jk,1);($jq)=unpack("C",$jk);if($jq==0x2c){read(AG, $jk,8);if(length($jk)!=8){close AG;return(undef,undef,"GIF - Missing Image Header"); }($jq,$jw,$jp,$jx)=unpack("x4 C4",$jk);close(AG);return($jq +$jw* 256,$jp+$jx* 256);}if($jq==0x21){read(AG,$jk,1);($jq) =unpack("C",$jk);if($jq==0xF9){read(AG,$jk,6);}elsif($jq==0xFE) {&jy(\*AG,0)||return(undef,undef,"GIF - Bad Block - skip=0"); }elsif($jq==0x01){&jy(\*AG,13)||return(undef,undef,"GIF - Bad Block - skip=13"); }elsif($jq==0xFF){&jy(\*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 ut{return($_[0]=~/(.+)/s)[0]||$_[0];}sub uu{my$jz;foreach (split/\n/,shift){s!\\!\\\\!g;s!\"!\\\"!g;s!$kf){$cq=1;}push(@{$kd[$cq]},$_);}if(defined$kc){ foreach(0..$#kd){while(scalar@{$kd[$_]}<$kb){push(@{$kd[$_]}, $kc);}}}shift@kd;return@kd;}sub ox{my($kg,%bo,$AH);$kg=$_[0]; %bo=%{$_[1]};$AH="\x0D\x0A";local(*AI);if(!defined&kh){die("SMTP_sendmail: Couldn't find required subroutine 'SMTP_parseheader'\n"); }if(!defined&ki){die("SMTP_sendmail: Couldn't find required subroutine 'SMTP_debug'\n"); }if(!defined&kj){die("SMTP_sendmail: Couldn't find required subroutine 'SMTP_readline'\n"); }if(!defined&kk){die("SMTP_sendmail: Couldn't find required subroutine 'SMTP_pop3auth'\n"); }if(!defined&kl){die("SMTP_sendmail: Couldn't find required subroutine 'FH_readline'\n"); }if(!defined&km){die("SMTP_sendmail: Couldn't find required subroutine 'FH_can_read'\n"); }foreach(keys%{$ab{$z[487]}}){defined$bo{$_}&&next;$bo{$_}= $ab{$z[487]}{$_};}my($gw,$kn,$ko,$kp,$fv);$gw=$bo{$z[488]}; $kn=$bo{$z[489]}||25;$ko=$bo{$z[490]}||$z[491];$kp=$bo{$z[492]} ||30;$fv=$bo{$z[493]}||0;$kp+=time()if$kp<10**8&&$kp>0;if($gw =~s/:(\d+)//){$kn=$1;}$gw=&kq($gw);if(!$gw){$ab{$z[494]}="No SMTP host specified.\n"; return 0;}if(!$kn){$ab{$z[494]}="No SMTP port specified.\n"; return 0;}my($kr,@ks)=&kh($kg);$kg=~tr/\r//d;$kg=~s/\n/\r\n/gs; $kg=~s/^\s*bcc\s*:.*\n//mgi;if($bo{$z[495]}){&kk(\%bo)||return 0;}my($kt)=gethostbyname($gw)||do{$ab{$z[494]}="Could not connect to SMTP server. Unknown host $gw\n"; return 0;};socket(AI,PF_INET,SOCK_STREAM,0)||do{$ab{$z[494]} ="Could not connect to SMTP server. No Socket: $!\n";return 0;};connect(AI,pack"SnA4x8",PF_INET,$kn,$kt)||do{if($!eq"Unknown error") {$ab{$z[494]}="Could not connect to SMTP server. SMTP server does not exist or is not responding.\n"; return 0;}else{$ab{$z[494]}="Could not connect to SMTP server. Connect failed: $!\n"; return 0;}};select(AI);$|=1;select(STDOUT);binmode(AI);my$ku =&kj(\*AI,$kp)||do{$ab{$z[494]}="Timed out waiting for SMTP server to respond.\n"; return 0;};if($fv){&ki($ku);}if(substr($ku,0,3)ne"220"){$ab{$z[494]} ="An unknown error occured. Server response: $ku\n";return 0;}print AI"HELO $ko",$AH;if($fv){&ki("HELO $ko",$AH);}$ku= &kj(\*AI,$kp)||do{$ab{$z[494]}="Timed out waiting for SMTP server to respond.\n"; return 0;};if($fv){&ki($ku);}if(substr($ku,0,3)ne"250"){$ab{$z[494]} ="An unknown error occured. Server response: $ku\n";return 0;}print AI"MAIL FROM:<$kr>",$AH;if($fv){&ki("MAIL FROM:<$kr>", $AH);}$ku=&kj(\*AI,$kp)||do{$ab{$z[494]}="Timed out waiting for SMTP server to respond.\n"; return 0;};if($fv){&ki($ku);}if(substr($ku,0,3)ne"250"){$ab{$z[494]} ="An unknown error occured. Server response: $ku\n";return 0;}my$ks;foreach$ks(@ks){print AI"RCPT TO:<$ks>",$AH;if($fv) {&ki("RCPT TO:<$ks>",$AH);}$ku=&kj(\*AI,$kp)||do{$ab{$z[494]} ="Timed out waiting for SMTP server to respond.\n";return 0; };if($fv){&ki($ku);}if(substr($ku,0,2)eq"55"){$ab{$z[494]}= "The server won't accept mail for '$ks'. Server response: $ku\n"; return 0;}if(substr($ku,0,2)ne"25"){$ab{$z[494]}="An unknown error occured. Server response: $ku\n"; return 0;}}print AI"DATA",$AH;if($fv){&ki("DATA",$AH);}$ku= &kj(\*AI,$kp)||do{$ab{$z[494]}="Timed out waiting for SMTP server to respond.\n"; return 0;};if($fv){&ki($ku);}if(substr($ku,0,3)ne"354"){$ab{$z[494]} ="An unknown error occured. Server response: $ku\n";return 0;}$kg=~s/^\./\.\./gm;print AI$kg,$AH;if($fv){&ki($kg,$AH); }print AI".",$AH;if($fv){&ki(".",$AH);}$ku=&kj(\*AI,$kp)||do {$ab{$z[494]}="Timed out waiting for SMTP server to respond.\n"; return 0;};if($fv){&ki($ku);}if(substr($ku,0,3)ne"250"){$ab{$z[494]} ="An unknown error occured. Server response: $ku\n";return 0;}print AI"QUIT",$AH;if($fv){&ki("QUIT",$AH);}close(AI);return 1;}sub kh{my($kg,$cj,$kv,$kw,$ez);$kg=$_[0];$kg=~tr/\r//d;$cj =$z[496];$cj.=$z[497];if($kg=~m/^(.*?)\n\n(.*)$/s){($kv,$kw) =($1,$2);}else{die("SMTP_parseheader: couldn't find email header!\n"); }my($kr,@ks);foreach$ez(split(/\n/,$kv)){foreach(qw(from to cc bcc)) {if($ez=~/^\s*$_\s*:/i){my$kx=$_;foreach($ez=~m/($cj)/g){if ($kx eq$z[498]){$kr=$_;}else{push@ks,$_;}}}}}$kr||die("SMTP_parseheader: couldn't find from: address in mail header\n"); $#ks>=0||die("SMTP_parseheader: couldn't find to: address in mail header\n"); return($kr,@ks);}sub kj{my$AJ=$_[0];my$kp=int($_[1]);if(!$kp) {die("SMTP_readline: no timeout value specified!\n");}if($kp <10**8){die("SMTP_readline: timeout value must be in time() format!Rec'd: $kp\n"); }fileno($AJ)||die("SMTP_readline: invalid filehandle or filehandle not open!\n"); my($ez,$ky);while(!$ez||substr($ez,3,1)eq$z[249]){$ez=&kl($AJ,$kp); $ky.=$ez;}return$ky;}sub ki{my$fw=join'',@_;$fw=~s/\s+$//m; my$kz=localtime();local*AK;if(!$fw){$kz="";$fw="\n";}if($fw =~/^From:/i){$fw="[email content]";}if($fw=~/^PASS /i){$fw= "PASS (not shown)";}$fw=~s//>/g;$fw=~s/\r\n|\n/
\n/g; print"

$fw
\n\n";}sub kk{my($kg,%bo,$AH);%bo=%{$_[0]}; $AH="\x0D\x0A";local(*AI);if(!$bo{$z[499]}){die("SMTP_pop3auth: POP3 username not defined'\n"); }if(!$bo{$z[500]}){die("SMTP_pop3auth: POP3 password not defined'\n"); }if($ab{$z[501]}{$z[502]}){return 1;}my($gw,$kn,$gv,$la,$kp,$fv); $gw=$bo{$z[503]}||$bo{$z[488]};$kn=$bo{$z[504]}||110;$gv=$bo{$z[499]}; $la=$bo{$z[500]};$kp=$bo{$z[505]}||$bo{$z[492]}||30;$fv=$bo{$z[493]} ||0;$kp+=time()if$kp<10**8&&$kp>0;if($gw=~s/:(\d+)//){$kn=$1; }$gw=&kq($gw);my($kt)=gethostbyname($gw)||do{$ab{$z[494]}="Could not connect to POP3 server. Unknown host $gw\n"; return 0;};socket(AI,PF_INET,SOCK_STREAM,0)||do{$ab{$z[494]} ="Could not connect to POP3 server. No Socket: $!\n";return 0;};connect(AI,pack"SnA4x8",PF_INET,$kn,$kt)||do{if($!eq"Unknown error") {$ab{$z[494]}="Could not connect to POP3 server. POP3 server does not exist or is not responding.\n"; return 0;}else{$ab{$z[494]}="Could not connect to POP3 server. Connect failed: $!\n"; return 0;}};select(AI);$|=1;select(STDOUT);binmode(AI);my$ku =&kl(\*AI,$kp)||do{$ab{$z[494]}="Timed out waiting for POP3 server to respond.\n"; return 0;};if($fv){&ki($ku);}if(uc(substr($ku,0,3))ne"+OK") {$ab{$z[494]}="An unknown error occured. Server response: $ku\n"; return 0;}print AI"USER $gv",$AH;if($fv){&ki("USER $gv",$AH); }$ku=&kl(\*AI,$kp)||do{$ab{$z[494]}="Timed out waiting for POP3 server to respond.\n"; return 0;};if($fv){&ki($ku);}if(substr($ku,0,3)ne"+OK"){$ab{$z[494]} ="The server didn't accept the login info for '$gv'. Server response: $ku\n"; return 0;}print AI"PASS $la",$AH;if($fv){&ki("PASS $la",$AH); }$ku=&kl(\*AI,$kp)||do{$ab{$z[494]}="Timed out waiting for POP3 server to respond.\n"; return 0;};if($fv){&ki($ku);}if(substr($ku,0,3)ne"+OK"){$ab{$z[494]} ="The server didn't accept the login info for '$gv'. Server response: $ku\n"; return 0;}print AI"QUIT",$AH;if($fv){&ki("QUIT",$AH);}close(AI); $ab{$z[501]}{$z[502]}=1;return 1;}sub km{my$AJ=$_[0];my$kp= $_[1]||$z[355];my($lb,$ld,$le,$lf,$lg,$lh,$li);fileno($AJ)|| die("fh_can_read: invalid filehandle or filehandle not open!\n"); vec($lb,fileno($AJ),1)=1;$li=select($ld=$lb,undef,undef,$kp); return vec($ld,fileno($AJ),1);}sub kl{my$AJ=$_[0];my$kp=int($_[1]); if(!$kp){die("FH_readline: no timeout value specified!\n"); }if($kp<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($ez,$lj);while($kp>=time()){&km(\*AI,0.25)||next;sysread(\*AI,$lj, 1)||last;$ez.=$lj;if($lj eq"\x0A"){last;}}return$ez;}sub lt {my$lk=$ab{$z[506]}{$z[507]}||={};my$ll=int++$lk->{$z[22]}; my$gd="FH$ll";return eval"local *$gd";}sub fg{return unless ($af{$z[508]});my$lk=$ab{$z[506]}{$z[509]}||={};$lk->{$z[510]} ||=[];my($lm,$kp)=@_;$lm||=$z[274];$kp||=0;if($lm ne$z[274] and$lm ne$z[511]){&ak("lock: invalid lock type: '$lm'");}my $ln;if(@{$lk->{$z[510]}}>0){$ln=$lk->{$z[510]}[-1];}if($ln eq$z[274]){$lm=$ln;}if($ln eq$lm){push(@{$lk->{$z[510]}},$lm); return 1;}my$lo;if($ln eq$z[511]and$lm eq$z[274]){&ak("lock: cannot upgrade a 'shared' lock to an 'exclusive' lock"); }$lo=&lp('',$lm,$kp);if($lo){push(@{$lk->{$z[510]}},$lm);}return $lo;}sub fh{return unless($af{$z[508]});my$lk=$ab{$z[506]}{$z[509]} ||={};$lk->{$z[510]}||=[];my($kp)=@_;$kp||=0;unless(@{$lk->{$z[510]}} >0){&ak($z[512])}my$ln=pop(@{$lk->{$z[510]}});return if(@{$lk->{$z[510]}} >0 and$lk->{$z[510]}[-1]eq$ln);if(@{$lk->{$z[510]}}==0){&lq(''); }}sub lp{my$lk=$ab{$z[506]}{$z[509]}||={};my($lr,$lm,$kp)=@_; my$ls;if($lr){$ls="$ab{'datadir'}$lr.lock";}else{$ls=$ab{$z[513]}; }if(not exists$lk->{$z[514]}{$lr}){$lk->{$z[514]}{$lr}{$z[108]} =$ls;$lk->{$z[514]}{$lr}{$z[515]}=<();sysopen($lk->{$z[514]}{$lr}{$z[515]}, $lk->{$z[514]}{$lr}{$z[108]},O_RDWR|O_CREAT)||&ak($z[513],"error opening $lm file lock $lk->{'lockinfo'}{$lr}{'filename'}: $!\n"); }else{&ak("_lock_flock: already a lock for semaphore '$lr'"); }my$lu;if($lm eq$z[511]){$lu=LOCK_SH;}if($lm eq$z[274]){$lu =LOCK_EX;}if($kp>0){$lu|=LOCK_NB;}my$lv=time()+$kp;until(flock($lk->{$z[514]}{$lr}{$z[515]}, $lu)){if(time()<$lv){sleep(1);}else{close($lk->{$z[514]}{$lr}{$z[515]}); &ak($z[516]);}}return 1;}sub lq{my$lk=$ab{$z[506]}{$z[509]} ||={};my($lr)=@_;unless(flock($lk->{$z[514]}{$lr}{$z[515]}, LOCK_UN)){&ak($z[513],"error releasing a flock() on file lock $lk->{'lockinfo'}{$lr}{'filename'}: $!\n"); }unless(close($lk->{$z[514]}{$lr}{$z[515]})){&ak($z[513],"error closing file lock $lk->{'lockinfo'}{$lr}{'filename'}: $!\n"); }delete$lk->{$z[514]}{$lr};return 1;}sub uw{my$gg=shift;$gg =~s|\\|/|g;if($gg=~m|^/|){return$gg;}if($gg=~m|^\w:/|){return $gg;}return&lw($ab{$z[517]}.$z[62].$gg);}sub lw{my$gg=shift; $gg=~s|\\|/|g;1 while$gg=~s|[^/]*/\.\./||;return$gg;}sub md {my($lx,@bo)=@_;$lx=~s/\s+//g;$lx=uc$lx;my$ly;my$lz=-1;my$ma; foreach$ma(split(/,/,$lx)){$lz++;my$mb=shift@bo;my$mc=$ma=~ s/\[|\]//g;if($ma eq$z[518]){@bo=();last;}next if($mc and not defined$mb);next if($ma eq$z[519]and defined$mb);next if($ma =~/\bVALUE\b/and not ref($mb)and defined($mb));next if(uc(ref $mb)=~/\b$ma\b/);next if($ma=~/\bINT\b/and$mb!~/[^0-9\.\e\-]/i and$mb==int($mb));$ly.=", "if$ly;$ly.="\$_[$lz] must be ";$ly .="either "if$mc;$ly.=$ma;$ly.=" or undefined"if$mc;$ly.=" ARG: $mb."; }if(@bo){$lz++;$ly.=", "if$ly;$ly.="extra argument(s) \@_[" .($lz)." .. ".($lz+$#bo)."]";}return 1unless$ly;my$gk=(caller(1))[3]; $gk=~s/^main:://;&ak("Invalid arguments passed to $gk".": $ly"); }sub bp{&md($z[520],@_);my($bm,$me,$bo)=@_;$bo||={};my$mf;foreach $mf($z[49],$z[50]){unless(exists$bo->{$mf}){$bo->{$mf}=$ab{$mf}; }}unless($me){&ak("resolve_server_markup: file_extension not supplied"); }unless($bo->{$z[49]}){&ak("resolve_server_markup: temp_base_dir argument not supplied"); }unless($bo->{$z[50]}){&ak("resolve_server_markup: temp_base_url argument not supplied"); }unless(-e"$bo->{'temp_base_dir'}"){&ak("resolve_server_markup: temp directory does not exist"); }my$mg=$af{$z[521]}||3;if($ENV{$z[522]}>=$mg){return("Content-type: text/html\n\n", "[Dynamic SSI Error: SSI recursion limit of $mg reached. This page was not parsed for server-side markup.]\n\n" .$bm);}my$mh;my($mi,$mj)=("temp_$^T","");my$mk;&fg();while(1) {$mh="$mi$mj.$me";last unless-e"$bo->{'temp_base_dir'}$mh"; $mk++;$mj=sprintf($z[523],$mk);}&fh();open(AB,">$bo->{'temp_base_dir'}$mh") ||&ak("resolve_server_markup: could not create temp file '$bo->{'temp_base_dir'}$mh' : $!"); print AB$bm||&ak("resolve_server_markup: could not write to temp file '$bo->{'temp_base_dir'}$mh' : $!"); close(AB)||&ak("resolve_server_markup: could not close temp file '$bo->{'temp_base_dir'}$mh' : $!"); my$ml=&mm();if($ac{$z[524]}||$ac{$z[525]}){my$mn=$ac{$z[524]} .":".$ac{$z[525]};$ml->{$z[526]}="Basic ".&mo($mn);}if($bo->{$z[527]}) {$ml->{$z[528]}='';$ml->{$z[529]}.=$z[530]if length$ml->{$z[529]}; $ml->{$z[529]}.=$z[531];}my$mp="$bo->{'temp_base_url'}$mh"; my($mq,$mr,$ms)=&mt($mp,$ml);unless($af{$z[532]}{$z[533]}){ unlink("$bo->{'temp_base_dir'}$mh");}return($mr,$ms);}sub mm {&md('',@_);my%bl;my$mu;foreach$mu(keys%ENV){$mu=~/^HTTP_/i ||next;my$mv=$ENV{$mu};my$mw;$mw=$mu;$mw=~s/^HTTP_//;$mw=~s/_/-/g; $mw=~s/(\w+)/ucfirst lc$1/eg;$bl{$mw}=$mv;}my@mx=($z[534],$z[526], $z[529],$z[535],$z[536],$z[537],$z[538],$z[539],$z[540],$z[541], $z[542],$z[543],$z[544],$z[545],$z[546],$z[547],$z[548],$z[549], $z[550],$z[551],$z[552],$z[553],$z[554],$z[555],$z[556],$z[557] );my%mz=map{uc($_)=>1}@mx;my$mw;foreach$mw(keys%bl){if($mz{uc $mw}){delete$bl{$mw};}}$bl{$z[558]}=join($z[559],map{"$_=$ah{$_}" }keys%ah);if(not exists$bl{$z[560]}){$bl{$z[560]}=1;}$bl{$z[560]}++; my$na;if($ENV{$z[561]}eq($ENV{$z[562]}||$ENV{$z[563]})){$na =$ENV{$z[564]}||$ENV{$z[565]}||$ENV{$z[561]};}else{$na=$ENV{$z[561]}; }$bl{$z[566]}=$na;$bl{$z[567]}=$na;return\%bl;}sub qe{&md($z[568], @_);my($nb)=@_;my$nc={};$nc->{$z[569]}=$nb;@{$nc}{$z[570],$z[488], $z[571],$z[572],$z[573],$z[574]}=$nb=~m{^(?:(\w+://)([^/]*))?([^?\#]*?)([^/?\#]*)(?:(\?[^\#]*))?(?:(\#.*))?$}; unless(length$nc->{$z[571]}){$nc->{$z[571]}=$z[62];}return$nc; }sub kq{my($gw)=@_;if($gw=~/^\d+\.\d+\.\d+\.\d+$/){return$gw; }else{$gw.=$z[33]unless$gw=~/\.$/;return$gw;}}1;;sub nl{my($nd, $ne)=@_;foreach(@{$nd->{$z[177]}}){my($nf,$gk)=@{$_};if(!defined &{$gk}&&!defined&{$ab{$z[575]}{$nf}}){die("The action '$nf' defined as a handler for db '$nd->{'name'}' does not have a custom handler or a default handler"); }if((!$ne&&$ag{$nd->{$z[46]}.$z[576].$nf})||$ne eq$nf){if(defined &{$gk}){&{$gk}($nd);exit;}else{&{$ab{$z[575]}{$nf}}($nd);exit; }}}if($ne){die"Unable to execute forced action '$ne' on db '$nd->{'name'}'"; }}sub ux{my$nd=shift;my$ar=&ng($nd);&nh($nd,$ar);}sub uy{my $nd=shift;my$ar=&ni($nd);&nj($nd,$ar);&nk($z[577],$ar);exit; }sub uz{my$nd=shift;if(!$ac{$z[578]}){&nl($nd,$z[178]);}my$ar =&nm($nd);&nk($z[578],$ar);exit;}sub va{my$nd=shift;my$ar=&nn($nd); &np($nd,$ar);}sub vb{my$nd=shift;&dp;my$nq=&nr($nd);my$ns=&nt($nd, $nq);&nu($nd,$nq);&nv($nd,$nq);&dr;&nw($nd,$ns);&nx($nd);}sub vc{my$nd=shift;my($eh,$ei);my$ny={$z[55]=>$af{$z[579]}{$z[55]}, $z[580]=>1,$z[84]=>'',};$ny=&nz($nd,$ny);foreach(split(/\s+/,$nd->{$z[81]})) {push(@$ei,[$_,$z[278],$ny->{$z[84]}]);}my$as=sub{my$oa=shift; if(!defined$oa->{$z[581]}&&$oa->{$z[26]}){my$iw=&ij(0,0,0,$oa->{$z[27]},$oa->{$z[26]}-1,$oa->{$z[25]}); $oa->{$z[581]}=&cn($ab{$z[98]},$iw);}$oa->{$z[582]}=&cn($ab{$z[146]},int($oa->{$z[582]})) if$oa->{$z[582]};$oa->{$z[64]}=&cn($ab{$z[146]},int($oa->{$z[64]})) if$oa->{$z[64]};$ad{$z[583]}=$ad{$z[583]}eq$z[584]?$z[585]: $z[584];return&cs($z[124],$oa);};my$ar=&ob($nd,$as,$ny,$eh, $ei);&oc($ar);}sub ng{my$nd=shift;$ad{$z[586]}=$nd->{$z[150]}; $ad{$z[587]}=$nd->{$z[46]};&an($nd->{$z[152]},{});my($ar)={}; if($nd->{$z[588]}&&&od($nd)>=$nd->{$z[588]}){&nk($z[589],$nd); }my($it,$hr,$hs)=(localtime(&cy($^T)))[3,4,5];$hr++;$hs+=1900; $ar->{"day_$it".$z[590]}=$z[591];$ar->{"mon_$hr".$z[590]}=$z[591]; $ar->{"year_$hs".$z[590]}=$z[591];foreach(split(/ /,$nd->{$z[76]})) {if(/^ufile/&&!$ar->{$_}){$ar->{$_}=$z[592];}}$ar->{$z[582]} =&cn($ab{$z[146]},&cy($^T));$ar->{$z[64]}=&cn($ab{$z[146]},&cy($^T)); $ar->{$z[593]}=$ai{$z[46]}||"unknown user";$ar->{$z[594]}=$ai{$z[46]} ||"unknown user";return$ar;}sub nh{my($nd,$ar)=@_;if($ab{$z[135]}{$z[136]}{$z[595]}) {&nk($z[595],$ar);}else{&nk($z[577],$ar);}exit;}sub ni{my$nd =shift;$ad{$z[586]}=$nd->{$z[150]};$ad{$z[587]}=$nd->{$z[46]}; &an($nd->{$z[152]},{});my($ll)=int$ag{$nd->{$z[46]}.$z[596]}; my$ar={};&oe($nd,$ar,$ll)||&ak($z[597],$ll);return$ar;}sub nj{my($nd,$ar)=@_;foreach(split(/ /,$nd->{$z[76]})){if(/^ufile/ &&!$ar->{$_}){$ar->{$_}=$z[592];}}foreach(keys%{$ar}){$ar->{$_} =&gl($ar->{$_});}foreach(keys%{$ar}){if(!/\W/&&$ar->{$_}!~/\W/) {$ar->{$_.$z[576].$ar->{$_}.$z[598]}=$z[599];$ar->{$_.$z[576].$ar->{$_}.$z[590]} =$z[591];}}$ar->{$z[582]}=&cn($ab{$z[146]},&cy($ar->{$z[582]})) if$ar->{$z[582]};$ar->{$z[64]}=&cn($ab{$z[146]},&cy($ar->{$z[64]})) if$ar->{$z[64]};my%of;&oe($ae{$z[200]},\%of,$ar->{$z[593]}) if$ar->{$z[593]};$ar->{$z[593]}=$of{$z[46]}||"unknown user"; &oe($ae{$z[200]},\%of,$ar->{$z[594]})if$ar->{$z[594]};$ar->{$z[594]} =$of{$z[46]}||"unknown user";return$ar;}sub nm{my$nd=shift; $ad{$z[586]}=$nd->{$z[150]};$ad{$z[587]}=$nd->{$z[46]};&an($nd->{$z[152]}, {});my($ll)=int($ag{$nd->{$z[46]}.$z[600]})||int($ag{$z[22]}); my($ar)={};&oe($nd,$ar,$ll)||&ak($z[597],$ll);return$ar;}sub nn{my$nd=shift;$ad{$z[586]}=$nd->{$z[150]};$ad{$z[587]}=$nd->{$z[46]}; &an($nd->{$z[152]},{});my($ll)=$ag{$z[22]}||$ag{$nd->{$z[46]}.$z[600]}; my$ar={};&dp();&oe($nd,$ar,$ll)||&ak($z[597],$ll);&og($nd,$ll) ||die($z[601].$ll);&dr();&oh($ar,$ac{$z[602]});if(defined&{$nd->{$z[176]}}) {&{$nd->{$z[176]}}($ll,$z[178],$ar);}return$ar;}sub np{my($nd, $ar)=@_;if(!$ac{$z[603]}){&nl($nd,$z[179]);}&nk($z[604],$ar); exit;}sub nr{my$nd=shift;$ad{$z[586]}=$nd->{$z[150]};$ad{$z[587]} =$nd->{$z[46]};&an($nd->{$z[152]},{});my($ll)=int($ag{$z[22]}); my$nq={};if($nd->{$z[588]}){my($ce)=&od($nd);if($ll&&$ce>$nd->{$z[588]}) {&nk($z[589],$nd);}elsif(!$ll&&$ce>=$nd->{$z[588]}){&nk($z[589],$nd); }}if($ll){&oe($nd,$nq,$ll)||die("ui_save : Can't find record #$ll"); }return($nq);}sub nt{my($oa)=$_[0]->{$z[46]}||die($z[605]); my($ll)=int($ag{$z[22]});my(%oa)=%{$_[1]||{}};my(%fy,%gs,$fm,%ns,%ar); if(!$ac{$z[602]}){die("ui_save_uploads: No upload directory has been defined in setup options!\n"); }if(!-d$ac{$z[602]}){die("ui_save_uploads: Upload directory '$ac{'dir_upload'}' doesn't exist!\n"); }if(!-w$ac{$z[602]}){die("ui_save_uploads: Upload directory isn't writable!\n"); }%fy=&bs($ac{$z[602]});foreach(split(/ |\,/,$ac{$z[606]})){ $gs{$_}++if$_;}foreach$fm(split(/ /,$_[0]->{$z[76]})){if($fm !~/^ufile/){next;}if($ag{$fm}){if($ac{$z[607]}&&length($ag{$fm}) >$ac{$z[608]}*1000){my$oi=length($ag{$fm});$ns{$z[609]}.=qq|$ag{$fm."_file"} ($oi bytes, file too large)
\n|; $ag{$fm}=$oa{$fm};next;}if(!$gs{lc$ag{$fm.$z[321]}}){$ns{$z[609]} .=qq|$ag{$fm."_file"} ('$ag{$fm.'_ext'}' files not accepted)
\n|; $ag{$fm}=$oa{$fm};next;}if($oa{$fm}&&$fy{$oa{$fm}}){unlink("$ac{'dir_upload'}/$oa{$fm}"); }my($oj);my($ok)=lc$ag{$fm.$z[320]};my($ol)=lc$ag{$fm.$z[321]}; my($om)=$z[610];$ok=~s/\.[^\.]*$//g;$ok=~s/[^a-z0-9_\-]/_/g; $ol=~s/[^a-z0-9_\-]/_/g;$oj="$ok.$ol";if(-e"$ac{'dir_upload'}/$oj") {do{$om=sprintf($z[415],++$om);$oj=$ok."_$om.$ol";}while(-e "$ac{'dir_upload'}/$oj");}open(AB,">$ac{'dir_upload'}/$oj") ||die($z[611]."$oj $!\n");binmode AB;print AB$ag{$fm};close(AB); if($oj=~/\.(gif|jpg|jpeg|png)$/i){my($jw,$jx,$on)=&oo("$ac{'dir_upload'}/$oj"); if(($ac{$z[612]}&&$jx>$ac{$z[612]})||($ac{$z[613]}&&$jw>$ac{$z[613]})) {unlink("$ac{'dir_upload'}/$oj");$ns{$z[609]}.=qq|$ag{$fm."_file"} (${jx}x$jw, image too big)
\n|; $ag{$fm}=$oa{$fm};next;}}$ag{$fm}=$oj;}elsif($ag{$fm.$z[320]}) {if($oa{$fm}&&$fy{$oa{$fm}}){unlink("$ac{'dir_upload'}/$oa{$fm}"); }$oa{$fm}='';}else{$ag{$fm}=$oa{$fm};}}return\%ns;}sub nu{my ($nd,$nq)=@_;my($ll)=int($ag{$z[22]});$ag{$z[582]}=$ll?$nq->{$z[582]} :$^T;$ag{$z[593]}=$ll?$nq->{$z[593]}:$ai{$z[22]};$ag{$z[614]} =$ll?$nq->{$z[614]}:$ai{$z[22]};$ag{$z[64]}=$^T;$ag{$z[594]} =$ai{$z[22]};my$op;foreach$op($nd->{$z[76]}=~/\bufile([^ ]*)\b/g) {if($nd->{$z[76]}=~/\bimagewidth\Q$op\E\b/){($ag{$z[615].$op}, $ag{$z[616].$op})=&oo($ac{$z[602]}.$ag{$z[617].$op});}}}sub nv{my($nd,$nq)=@_;my($ll)=int($ag{$z[22]});if($ll){&ey($nd, \%ag,$ll);}else{$ag{$z[22]}=&fe($nd,\%ag,$ll);}if(defined&{$nd->{$z[176]}}) {&{$nd->{$z[176]}}($ag{$z[22]},$z[618],$nq);}}sub nw{my($nd, $ns)=@_;if(keys%{$ns}){undef$ac{$z[608]}if!$ac{$z[607]};$ns->{$z[22]} =$ag{$z[22]};$ns->{$z[619]}=&cs($z[619],\%ac)if$ac{$z[608]}; $ns->{$z[620]}=&cs($z[620],\%ac)if$ac{$z[612]};$ns->{$z[621]} =&cs($z[621],\%ac)if$ac{$z[613]};$ns->{$z[622]}=&cs($z[622], {$z[606]=>$ac{$z[606]}?$ac{$z[606]}:$z[623]});&nk($z[624],$ns); exit;}}sub nx{my($nd)=@_;if(!$ac{$z[625]}){&nl($nd,$z[179]); }&nk($z[626],\%ag);exit;}sub oc{my$ar=shift;&nk($z[179],$ar); exit;}sub nz{my($nd,$ny)=@_;$ad{$z[586]}=$nd->{$z[150]};$ad{$z[587]} =$nd->{$z[46]};if(ref($nd)ne$z[236]){die$z[627]."\n";}&an($nd->{$z[152]}, {});if($ag{$nd->{$z[46]}.$z[628]}){my$oq={};while($ah{$nd->{$z[46]}.$z[629]} =~/(.*?)\t(.*?)\t/g){$oq->{$1}=$2;}$ny->{$z[55]}=$ag{$z[630]} ||$oq->{$z[55]};}else{while($ah{$nd->{$z[46]}.$z[629]}=~/(.*?)\t(.*?)\t/g) {$ny->{$1}=$2;}foreach(keys%{$ny}){if(defined$ag{$z[576].$_}) {if($_ ne$z[55]&&$_ ne$z[580]){$ny->{$z[580]}=1;}$ny->{$_}= $ag{$z[576].$_};}}}&or($nd->{$z[46]}.$z[629],join("\t",map{ $_,$ny->{$_}}keys%{$ny})."\t");foreach(keys%{$ny}){$ad{$z[576] .$_}=$ny->{$_};$ad{$z[576].$_.$z[576].$ny->{$_}.$z[590]}=$z[591]; $ad{$z[576].$_.$z[576].$ny->{$_}.$z[598]}=$z[599];}return$ny; }sub ob{my($nd,$as,$ny,$eh,$ei)=@_;my%ar;my$jz=sub{$ar{$z[631]} .=&{$as}(@_);};($ar{$z[632]},$ar{$z[633]},$ar{$z[634]},$ar{$z[635]}, $ar{$z[636]},$ar{$z[637]})=&os($nd,$jz,$ny->{$z[580]},$ny->{$z[55]}, $eh,$ei);unless($ar{$z[631]}){if($ab{$z[135]}{$z[136]}{$z[638]} &&scalar grep{$_ ne$z[55]&&$_ ne$z[580]&&$ny->{$_}ne''}keys %{$ny}){$ar{$z[631]}=&cs($z[638],{});}else{$ar{$z[631]}=&cs($z[130], {});}}return\%ar;}sub dl{my$nd=shift;my($eh,$ei);my$ny={$z[55] =>$af{$z[579]}{$z[55]},$z[580]=>1,$z[84]=>'',};$ny=&nz($nd, $ny);foreach(split(/\s+/,$nd->{$z[81]})){push(@$ei,[$_,$z[278], $ny->{$z[84]}]);}my$as=sub{my$oa=shift;$oa->{$z[639]}=$aj[$oa->{$z[640]}]; if(!defined$oa->{$z[581]}&&$oa->{$z[26]}){my$iw=&ij(0,0,0,$oa->{$z[27]},$oa->{$z[26]}-1,$oa->{$z[25]}); $oa->{$z[581]}=&cn($ab{$z[98]},$iw);}$oa->{$z[582]}=&cn($ab{$z[146]},int($oa->{$z[582]})) if$oa->{$z[582]};$oa->{$z[64]}=&cn($ab{$z[146]},int($oa->{$z[64]})) if$oa->{$z[64]};$ad{$z[583]}=$ad{$z[583]}eq$z[584]?$z[585]: $z[584];return&cs($z[124],$oa);};my$ar=&ob($nd,$as,$ny,$eh, $ei);&oc($ar);}sub vd{my$nd=shift;&dp();my$nq=&nr($nd);my$ns =&nt($nd,$nq);&nu($nd,$nq);my%ot;if(&ou($nd,\%ot,$z[641],$ag{$z[641]})) {if($ot{$z[22]}!=$nq->{$z[22]}){&dr();&nk($z[642],\%ag);}}if ($ag{$z[22]}==$ai{$z[22]}&&$ag{$z[640]}<9){&dr();&nk($z[643], {});}&nv($nd,$nq);my%ov;if(&ou($ae{$z[205]},\%ov,$z[22],$ag{$z[22]})) {&ey($ae{$z[205]},\%ag,$ag{$z[22]});}&dr();&nw($nd,$ns);&nx($nd); }sub ve{my$nd=shift;if(!$ac{$z[578]}){&nl($nd,$z[178]);}my$ar =&nm($nd);if($ar->{$z[22]}==$ai{$z[22]}&&$ag{$z[640]}<9){&nk($z[643], {});}&nk($z[578],$ar);}sub dk{my$nd=shift;my$ll=$ag{$z[22]} ||$ag{$nd->{$z[46]}.$z[600]};if($ll==$ai{$z[22]}&&$ag{$z[640]} <9){$ad{$z[586]}=$nd->{$z[150]};$ad{$z[587]}=$nd->{$z[46]}; &an($nd->{$z[152]},{});&nk($z[643],{});}&dp();&oe($ae{$z[200]}, {},$ai{$z[22]})||&ow($z[644],{});my$ar=&nn($nd);&og($ae{$z[205]}, $ll);&dr();&np($nd,$ar);}sub pp{my$kg=shift;if($ac{$z[645]} eq$z[646]){my%bo=(host=>$ac{$z[647]},helo=>$af{$z[648]}{$z[649]}, timeout=>$af{$z[648]}{$z[650]},pop3_auth=>$ac{$z[651]},pop3_host =>$ac{$z[652]},pop3_user=>$ac{$z[653]},pop3_pass=>$ac{$z[654]}); &ox($kg,\%bo)||die("Error sending message: $ab{'error'}");} elsif($ac{$z[645]}eq$z[655]){if(!-e$ac{$z[656]}){die("sendmail: can't find sendmail program '$ac{'mail_sendmail'}'\n"); }local(*AL);my($kr)=&kh($kg);open(AL,"|$ac{'mail_sendmail'} -f $kr -t") ||die"Can't open $ac{'mail_sendmail'} : $!";print AL$kg;close(AL); }elsif(!$ac{$z[645]}){die("sendmail: no mailer specified in setup options!\n"); }else{die("sendmail: unknown mailer '$ac{'mail_mailer'}' specified!\n"); }}sub vf{my($gh)=$_[0];my($oy)=$ag{$z[657]}||die("browse: you must pass a name/value for the 'fieldname'!\n"); my(%ar,$gi);if($gh ne$z[658]&&$gh ne$z[572]){die("browse: the first argument must be either 'dir' or 'file'!\n"); }if($ag{$z[659]}){&oz($z[660].$z[661].$ab{$z[662]}.$z[663]); }if($ag{$z[664]}){&oz($z[665].$z[661].$ab{$z[662]}.$z[663]); }if($ag{$z[658]}){&oz($z[666].$z[661].$ab{$z[662]}.$z[663]); }if(!-d$ac{$z[667]}){delete$ac{$z[667]};}if($ag{$z[668]}){if (-f$ag{$z[668]}){$ag{$z[668]}=~s!^(.+)(\\|/).*?$!$1!;}if(-d $ag{$z[668]}){$ag{$z[658]}=$ag{$z[668]};}}if($af{$z[669]}){ $ag{$z[658]}=$ac{$z[667]};}&an("_browse_$gh.html",{});my$pa ="/";$ar{$z[657]}=$ag{$z[657]};if($ag{$z[659]}){$ar{$z[670]} =$ag{$z[670]};if(!$ag{$z[670]}){$ad{$z[671]}=$z[672];}elsif ($ag{$z[670]}=~m/[^\w\-]/i){$ad{$z[671]}=$z[673];}elsif(!mkdir("$ag{'cdir'}$pa$ag{'mkdir_name'}",0777)){ $ad{$z[671]}=$z[674].$!;}if($ad{$z[671]}){$ad{$z[671]}=&cs($z[671],\%ad); }}if($ag{$z[664]}){local(*AB);$ar{$z[675]}=$ag{$z[675]};if(!$ag{$z[675]}) {$ad{$z[676]}=$z[677];}elsif($ag{$z[675]}=~m/[^\w\-\.]/i){$ad{$z[676]} =$z[678];}elsif(-e"$ag{'cdir'}$pa$ag{'mkfile_name'}"){$ad{$z[676]} =$z[679];}elsif(!open(AB,">$ag{'cdir'}$pa$ag{'mkfile_name'}")) {$ad{$z[676]}=$z[680].$!;}close(AB);if($ad{$z[676]}){$ad{$z[676]} =&cs($z[676],\%ad);}}$ar{$z[658]}=$ag{$z[658]}||$ac{$z[667]} ||$ab{$z[517]};$ar{$z[658]}=~s/^(.+)(\\|\/)+$/$1/;$ar{$z[681]} =$ar{$z[658]};$ar{$z[681]}=~s!^([a-z]:)!$1/..!i;$ar{$z[682]} =($ar{$z[658]}=~m#^(.*)[\\/]#,$1||$pa);$ar{$z[683]}=&hd($ar{$z[682]}); $ar{$z[179]}.=&cs($z[682],\%ar)if($ar{$z[658]}=~m!.+(\\|/)!); if(!-e$ar{$z[658]}){$ar{$z[494]}=$z[684];}elsif(!-r$ar{$z[658]}) {$ar{$z[494]}=$z[685];}if($ar{$z[494]}){print"Content-type: text/html\n\n" unless($ab{$z[686]}++);$ar{$z[179]}.=&cs($z[494],\%ar);print &an($z[687],\%ar);exit;}opendir(AC,"$ar{'dir2'}");my@gi=sort {lc$a cmp lc$b}grep(!/^\.+$/,readdir(AC));closedir(AC);my($bs); foreach$bs(@gi){-d"$ar{'dir'}$pa$bs"||next;$ar{$z[46]}=$bs; $ar{$z[688]}="$ar{'dir'}$pa$bs";$ar{$z[688]}=~s/$pa+/$pa/g; $ar{$z[689]}=&hd($ar{$z[688]});($ar{$z[690]},$ar{$z[691]})= (stat($ar{$z[688]}))[7,9];next if$ar{$z[691]}eq"";$ar{$z[692]} =&cn($ab{$z[146]},$ar{$z[691]});$ar{$z[179]}.=&cs($z[658],\%ar); $gi++;}my($fy);foreach$fy(@gi){-d"$ar{'dir'}$pa$fy"&&next;$ar{$z[46]} =$fy;$ar{$z[688]}="$ar{'dir'}$pa$fy";($ar{$z[690]},$ar{$z[691]}) =(stat($ar{$z[688]}))[7,9];next if$ar{$z[691]}eq"";if($ar{$z[690]}) {$ar{$z[690]}=(int($ar{$z[690]}/1000)||1)."KB";}else{$ar{$z[690]} ="0KB";}$ar{$z[692]}=&cn($ab{$z[146]},$ar{$z[691]});$ar{$z[688]} =~s/'/\\'/g;$ar{$z[688]}=~s/\\/\\\\/g;if(-f"$ar{'dir'}$pa$fy") {$ar{$z[179]}.=&cs($z[572],\%ar);}else{$ar{$z[179]}.=&cs($z[693],\%ar); }$gi++;}if(!$gi){$ar{$z[179]}.=&cs($z[694],{});}print"Content-type: text/html\n\n" unless($ab{$z[686]}++);print&an("_browse_$gh.html",\%ar);exit; }sub vg{my($kv,$ky);if($ENV{$z[314]}=~/^[\w\-]+\.gif$/){$kv =$z[695]."\n\n";}elsif($ENV{$z[314]}=~/^[\w\-]+\.jpg$/){$kv =$z[696]."\n\n";}else{return;}$ky=&an($ENV{$z[314]},{},$z[330]); if($ky){binmode(STDOUT);print$kv ;print$ky ;exit;}}sub cy{my $iw=$_[0]||die("time_adj: first argument must be time()\n"); if($ac{$z[697]}eq$z[595]){$iw+=$ac{$z[698]}*60*60;}if($ac{$z[697]} eq$z[699]){$iw-=$ac{$z[698]}*60*60;}if($ac{$z[700]}eq$z[595]) {$iw+=$ac{$z[701]}*60;}if($ac{$z[700]}eq$z[699]){$iw-=$ac{$z[701]}*60; }return$iw;}sub vh{my($as,$pb,$pc,$pd,%ov);my(%ar,%pe);if(!$ag{$z[702]} &&!$ah{$z[641]}){&ow(undef,\%ar);}if($ag{$z[702]}){($pb,$pc) =(lc$ag{$z[641]},lc$ag{$z[703]});if(!$pb&&!$pc){&ow($z[644], \%ar);}if(!$pb||!$pc){&ow($z[644],\%ar);}$as=sub{if(lc$pe{$z[641]} eq$pb&&lc$pe{$z[703]}eq$pc){$pd=$pe{$z[22]};}};&bk($ae{$z[200]}, $as,\%pe);if(!$pd){&ow($z[644],\%ar);}&oe($ae{$z[200]},\%pe, $pd);$pe{$z[582]}=$^T;$pe{$z[64]}=$^T;&ey($ae{$z[205]},\%pe, $pd);}else{($pb,$pc)=(lc$ah{$z[641]},lc$ah{$z[703]});if(!$pb ||!$pc){&ow($z[704],\%ar);}$as=sub{if(($af{$z[705]}&&$pe{$z[64]} <$^T-60*$af{$z[705]})||$pe{$z[64]}<$^T-60*60*24){&og($ae{$z[205]}, $pe{$z[22]});}elsif(lc$pe{$z[641]}eq$pb&&lc$pe{$z[703]}eq$pc) {$pd=$pe{$z[22]};}};&bk($ae{$z[205]},$as,\%pe);if(!$pd){&ow($z[704], \%ar);}&oe($ae{$z[205]},\%pe,$pd);$pe{$z[64]}=$^T;&ey($ae{$z[205]}, \%pe,$pd);}&or($z[641],$pb);&or($z[703],$pc);return%pe;}sub ow{if(!$ab{$z[686]}++){print$z [706]."\n\n";}my($fw)=$_[0]; my(%ar)=%{$_[1]||{}};&an($z[707],{});foreach(keys%ar){$ar{$_} =&gl($ar{$_});}if($fw&&!$ab{$z[135]}{$z[136]}{$fw}){die($z[708]."'$fw' isn't defined!\n"); }if($fw){$ar{$z[609]}=&cs($fw,\%ar);}print&cs($z[709],{});if ($fw){print&cs($z[710],\%ar);}else{print&cs($z[702],\%ar);} print&cs($z[711],{});if(-f"$ab{'cgidir'}/display_resource_usage.pl") {eval"require \"$ab{'cgidir'}/display_resource_usage.pl\""; &display_resource_usage()}if($ab{$z[493]}){print"

";print "

$ab{'debug_output'}
"if($ab{$z[310]});}&pf();exit; }sub vi{&an($z[707],{});&or($z[641],'');&or($z[703],'');$ac{$z[712]} =~s/^\s+|\s+$//g;if($ac{$z[712]}&&$ENV{$z[314]}=~/logoff/i) {print"Content-type: text/html\n\n";print qq|\n|; print$z [713].$ac{$z[712]}.qq|">\n|;print qq|\n|;print qq|\n|;print qq|\n|;exit; }&ow();}sub pt{&an($ae{$z[207]}->{$z[152]},{});&oe($ae{$z[207]}, \%ac,1);foreach(keys%ac){if(!/\W/&&$ac{$_}!~/\W/){$ac{$_."_$ac{$_}".$z[598]} =$z[599];$ac{$_."_$ac{$_}".$z[590]}=$z[591];}}$ac{$z[714]}= &cn($ab{$z[146]},$^T);$ac{$z[698]}||=0;$ac{$z[701]}||=0;$ac{$z[715]} =&cn($ab{$z[146]},&cy($^T));foreach(keys%ENV){$ac{"env_".lc($_)} =$ENV{$_};}$ac{$z[716]}=$^O;$ac{$z[717]}=$];$ac{$z[718]}||= "not available";$ac{$z[719]}||=$ac{$z[720]};$ac{$z[721]}=$ab{$z[517]}; foreach(grep/^env_/,keys%ac){$ac{$_}=~s/(\W)(\w)/$1$2/g; }foreach(keys%ac){$ac{$_.$z[338]}=&hd($ac{$_})if/^dir/;$ac{$_} =~s/"/"/g;}if($^O!~/win32/i&&!$ac{$z[656]}&&defined$ab{$z[135]}{$z[136]}{$z[722]}) {foreach($z[723],$z[724],$z[725],$z[726],$z[727],$z[728],$z[729]) {if(-e$_){$ad{$z[730]}.=&cs($z[722],{$z[688]=>$_});}}}my$pg =$z[731];$pg=$z[732]if($ac{$z[732]});foreach(1..10){$pg="tab$_" if($ag{"setup_tab$_"}&&defined$ab{$z[135]}{$z[136]}{"tab$_"}); }&nk($pg,\%ac);exit;}sub vj{$ab{$z[733]}=$z[4];my(%ar,$ph); if($ag{$z[734]}){&an($z[735],{});$ar{$z[736]}=&cs($z[737],\%ar); $ar{$z[738]}=$z[739];my@pi=qw(mail_smtp mail_sender_email mail_sender_name mail_mailer mail_sendmail mail_pop3auth mail_pop3 mail_pop3user mail_pop3pass); @ar{@pi}=@ag{@pi};print"Content-Type: text/html\n\n";print&an($z[735], \%ar);exit;}if(length($ag{$z[740]})){&pj($z[741],$z[742])unless &pk($ag{$z[740]});}else{&pj($z[743],$z[744]);}my$pl;open(AJ, "<$ab{'templatedir1'}/email/email_test.txt")||&pj($z[745],"Unable to open test email template."); read(AJ,$pl,-s AJ);close(AJ);my($pm,$pn);if($pl=~/^\s*Subject: *([^\r\n]*?)(\r\n|\r|\n)\s*Body: *([^ ].*)$/si) {$pm=$1;$pn=$3;}else{&pj($z[746],"email_test.txt is improperly formatted. Should have subject: and body:"); }if($ag{$z[645]}eq$z[655]){@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$po=qq|From: "$ag{'mail_sender_name'}" <$ag{'mail_sender_email'}>\nTo: "$ag{'mailto'}" <$ag{'mailto'}>\nSubject: $pm\nContent-Type: text/plain\n| ;$@=();eval{&pp("$po\n$pn")};if($@){&pj($z[747],join($z[748], $@));}else{&pj($z[749]);}}sub pj{my($gh,$jz)=@_;my%ar;my%pq =($z[743]=>[$z[750],$z[751],$z[752]],$z[741]=>[$z[750],$z[751], $z[753]],$z[745]=>[$z[754],$z[751],$z[755]],$z[746]=>[$z[754], $z[751],$z[756]],$z[747]=>[$z[754],$z[751],$z[757]],$z[749] =>[$z[754],$z[758],$z[759]]);&an($z[735],{});$ar{$z[609]}=$jz; if($pq{$gh}[0]eq$z[750]){$ar{$z[760]}=&cs($z[760],{});}$ar{$z[736]} =&cs($pq{$gh}[1],\%ar);$ar{$z[738]}=$pq{$gh}[2];print"Content-Type: text/html\n\n"; print&an($z[735],\%ar);exit;}sub vk{&pr($z[761].$z[661].$ab{$z[662]}.$z[762]); &an($ae{$z[207]}->{$z[152]},{});&ps;if(!$ac{$z[625]}){&pt;} my$pg=$z[763];foreach(1..10){$pg="saved_tab$_"if($ag{"setup_tab$_"} &&defined$ab{$z[135]}{$z[136]}{"saved_tab$_"});}&nk($pg,{}); exit;}sub ps{my($ns);if(exists$ag{$z[764]}){my$pu;&bk($ae{$z[20]}, sub{my$cb=shift;if($cb->{$z[765]}>$pu){$pu=$cb->{$z[765]};} });if($ag{$z[764]}<$pu){&ak("You can't set subcategory depth allowed to lower than the depth of existing subcategories. Existing subcategories are $pu levels deep."); }local$SIG{__DIE__};eval{&an("category_list.html",{});};if($@) {&ak("Can't find /templates/category_list.html. This file is required!"); }for(1..$ag{$z[764]}){my$pv="row_depth$_";eval{&cs($pv,{}); };if($@){&ak("Error: Setup Options weren't saved","Can't find templatecell '$pv' in /templates/category_list.html. You must have a 'row_depth#' and 'row_selected_depth#' templatecell for each depth from 1 to the max value set in the 'subcategory depth' fields."); }}}if(defined$ag{$z[766]}){$ag{$z[766]}=~s/\s+//g;if(defined &pw){if(!&pw($ag{$z[766]})){$ns=$z[767];}if(!$ag{$z[766]}){ $ns=$z[768];}}if(!$ag{$z[769]}){$ns=$z[770];}if(!$ag{$z[771]}) {$ns=$z[772];}if($ns){$ad{$z[494]}=$ns;$ad{$z[773]}=$ag{$z[771]}; $ad{$z[774]}=$ag{$z[769]};$ad{$z[775]}=$ag{$z[766]};&nk($z[776],\%ad) }$ac{$z[771]}=$ag{$z[771]};$ac{$z[769]}=$ag{$z[769]};$ad{$z[777]} =int sprintf($z[778],&pw($ag{$z[766]}));$ab{$z[779]}=&px(); if(defined&py&&$ac{$z[766]}ne$ag{$z[766]}){&py;}}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($pz,$fp)=/^((.*)_default_to)$/;if($ag{$pz}=~/^null$/i) {$ag{$pz}='';}$ag{$fp}||=$ag{$pz};}foreach(qw(publish_index publish_basename publish_fileext)) {$ag{$_}=~s/^\.+//;$ag{$_}=~s/\.+$//;}foreach(keys%ag){if((/^dir_/ ||/^url_/)&¬/^url_logoff$/){if(!$ag{$_}){next;}$ag{$_}=~ tr|\\|/|;if(/^url_/&&index($ag{$_},$z[134])>=0){next;}if(/^url_/ &&index($ag{$_},$z[780])>=0){next;}if(substr($ag{$_},-1,1)ne $z[62]){$ag{$_}.=$z[62];}}}my$qa=$ac{$z[781]};my$qb=$ac{$z[782]}; &oe($ae{$z[207]},\%ac,1);foreach(sort keys%ac){$ac{$_}=$ag{$_} if defined$ag{$_};}if($ac{$z[47]}){my$qc=$ac{$z[13]};my$qd= &qe($qc);if(not$qd->{$z[570]}or not$qd->{$z[488]}){&ak("Dynamic parsing of SSI tags requires an absolute Publish URL (must start with http://www.website.com/). Setup Options were not saved."); }}&ey($ae{$z[207]},\%ac,1);$ad{$z[783]}=$ac{$z[784]};foreach (keys%ac){$ad{$z[576].$_}=$ac{$_}if/^ui_/;}$ad{$z[773]}=$ac{$z[771]}; $ad{$z[774]}=$ac{$z[769]};$ad{$z[775]}=$ac{$z[766]};$ad{$z[785]} =$ac{$z[786]};$ad{$z[787]}=$ac{$z[711]};$ad{$z[788]}=$ac{$z[789]}; foreach(grep/^dir_/,keys%ac){$ac{$_}="$ab{'cgidir'}/$ac{$_}" if index($ac{$_},$z[33])==0;$ac{$_}=~tr|\\|/|;1 while$ac{$_} =~s|/[^/]+/\.\.||;}if(($qa ne$ac{$z[781]}||$qb ne$ac{$z[782]}) &&($ac{$z[781]}||$ac{$z[782]})){&qf($ae{$z[16]},sub{my$cf=shift; if($ac{$z[781]}&&$cf->{$z[88]}){$cf->{$z[77]}=~s/\n/
/g; undef$cf->{$z[88]};}if($ac{$z[782]}&&$cf->{$z[90]}){$cf->{$z[78]} =~s/\n/
/g;undef$cf->{$z[90]};}});}&ap();}sub vl{&ps; foreach(keys%ae){my$qg=$ae{$_}{$z[176]};if(defined&{$qg}){&{$qg}(); }}&nk($z[790],{});}sub nk{my($hb)=$_[0];my($ar)=$_[1];unless ($hb){die($z[791]."\n");}if(ref($_[1])ne$z[236]){die$z[792]."\n"; }my(%ar);if(!$ab{$z[686]}++){print$z [706]."\n\n";}&an($z[707], {});unless(length$ac{$z[789]}){$ad{$z[793]}=&cs($z[793],{}); }print&cs($z[709],{});for(1..9){if($ai{$z[640]}>=$_&&$ab{$z[135]}{$z[136]}{$z[794].$_}) {$ar{$z[795]}.=&cs($z[794].$_,{});}if($ai{$z[640]}==$_&&$ab{$z[135]}{$z[136]}{$z[794].$_.$z[796]}) {$ar{$z[795]}.=&cs($z[794].$_.$z[796],{});}}$ad{$z[797]}="$ai{'name'} ($aj[$ai{'acl'}])"; $ar{$z[78]}=&cs($hb,$ar);print&cs($z[798],\%ar);print&cs($z[711], {});if($ab{$z[493]}>=2){print"

Stack Trace
"; my$dz=0;while(my($fy,$ez,$gk)=(caller($dz++))[1,2,3]){print qq!

($gk) called from ($fy) line ($ez)
\n!;}}if(-f"$ab{'cgidir'}/display_resource_usage.pl") {eval"require \"$ab{'cgidir'}/display_resource_usage.pl\""; &display_resource_usage()}if($ab{$z[493]}){print"

";print "

$ab{'debug_output'}
"if($ab{$z[310]});}&pf();exit; }sub pf{print$z [799]."\n";print$ad {$z[785]}.$z[800].$ab{$z[1]} .$z[801].$ab{$z[802]}.$z[33].$ab{$z[3]}.")\n";print$z [803] .$ad{$z[777]}.$z[804].$ad{$z[773]}.$z[804].$ad{$z[774]}."\n"; printf($z[805]."\n",time()-$^T);print$z [806]."\n";}sub vm{ my(@gi)=map"$ab{'datadir'}$ae{$_}{'datafile'}",keys%ae;my(@qh) =($ab{$z[807]});my($bs,$fy,$qi);foreach$bs(sort@qh){if($bs eq""){next;}if(!-d$bs||!-w$bs){$qi.="$bs\n";}}foreach$fy(sort @gi){$fy=~s/\\/\//g;1 while$fy=~s!/[^/]+/\.\./!/!;if(-f$fy&& !-w$fy){$qi.="$fy\n";}}if($qi){&ak($z[808],$qi);}}sub pr{return unless$af{$z[669]};my$kg=shift;&ow($z[809],{$z[609]=>$kg}); }sub oz{return unless$af{$z[669]};my$kg=shift;$kg=&hd($kg); print"Content-type: text/html\n\n";print qq|\n| ;exit;}sub vn{&an($ae{$z[207]}{$z[152]},{});my%qj;my$qk;foreach $qk(keys%{$ab{$z[810]}}){my%ar=($z[811]=>$qk,$z[812]=>$ab{$z[810]}{$qk} );$qj{$qk}[0]=&cs($z[813],\%ar);$qj{$qk}[1]=&cs($z[814],\%ar); }foreach$qk(keys%{$ab{$z[810]}}){my$ql=join'',map{$qj{$_}[$qk ==$_?1:0]}sort keys%{$ab{$z[810]}};$ad{$z[815].$qk}=&cs($z[816], {$z[817]=>$ql});}}1;;sub vo{my$qm=shift||die("ip2num : no ip or host specified!\n"); my($a,$b,$qn,$qo,$ll);if($qm=~/[^0-9\.]/){my$kt=gethostbyname("$qm.") ||die("ip2num: Can't find IP for host '$qm'!\n");($a,$b,$qn,$qo) =unpack($z[818],$kt);}else{($a,$b,$qn,$qo)=split(/\./,$qm); }$ll+=$qo*(256**0);$ll+=$qn*(256**1);$ll+=$b*(256**2);$ll+= $a*(256**3);return$ll;}sub vp{my$ll=shift||die("num2ip : no number specified!\n"); my($a,$b,$qn,$qo);$a=($ll/256**3)% 256;$b=($ll/256**2)% 256; $qn=($ll/256**1)% 256;$qo=($ll/256**0)% 256;return join$z[33], $a,$b,$qn,$qo;}sub vq{my$iw=shift||time();$iw-=(localtime($iw))[6] * 60*60*24;$iw-=(localtime($iw))[2]* 60*60;$iw-=(localtime($iw))[1] * 60;$iw-=(localtime($iw))[0]* 1;return$iw;}sub vr{my$iw=shift ||time();$iw-=(localtime($iw))[2]* 60*60;$iw-=(localtime($iw))[1] * 60;$iw-=(localtime($iw))[0]* 1;return$iw;}sub vs{my$hn=int shift;my$ho=int($hn/60);my$hp=int($ho/60);$ho%=60;$hn%=60;return sprintf("%01d:%02d:%02d",$hp,$ho,$hn);}sub vt{my$ll=reverse int shift;$ll=~s/(...)\B/$1,/g;return reverse$ll;}sub cw{my $ll=shift;if($ll==int($ll)){return$ll;}elsif($ll<0){return int$ll;}else{return int($ll)+1;}}sub vu{my$ll=shift;if($ll== int($ll)){return$ll;}elsif($ll<0){return int($ll)-1;}else{return int$ll;}}sub cx{return(sort{$a<=>$b}@_)[0];}sub vv{return(sort {$a<=>$b}@_)[-1];}1;;sub bn{local(*AB);my($fy,%gb,$bm,$hb); %gb=%{$_[1]}if$_[1];my$qp=$_[3];my$qs=$_[5];my%hc;%hc=($z[328] =>0,$z[329]=>0,$z[330]=>0,$z[331]=>0,$z[51]=>0,$z[819]=>0); foreach(split(/ /,$_[2])){if(undef$hc{$_}){die($z[332]."'$_'\n"); }$hc{$_}=1;}unless($hc{$z[328]}){$hc{$z[329]}=1;}if(!$_[0]) {die$z[333]."\n";}if(ref($_[1])ne$z[236]){die$z[820]."\n";} if(!$hc{$z[329]}||!$ab{$z[135]}{$z[329]}{$_[0]}){if(-e"$_[0]") {$fy=$_[0];}else{foreach(grep/^templatedir/,sort keys%ab){if (-e"$ab{$_}/$_[0]"){$fy="$ab{$_}/$_[0]";last;}}if(!$fy){die $z[335]."'$_[0]'".$z[336]."\n";}}}if($hc{$z[329]}&&$ab{$z[135]}{$z[329]}{$_[0]}) {$bm=$ab{$z[135]}{$z[329]}{$_[0]};}else{open(AB,"<$fy")||die $z[337]."$fy! $!\n";binmode(AB)if($fy=~/gif$/i||$fy=~/jpg$/i); read(AB,$bm,-s AB);close(AB);}if($hc{$z[330]}){return$bm;}if (!$hc{$z[329]}||!$ab{$z[135]}{$z[329]}{$_[0]}){foreach$hb($bm =~m//g){$ab{$z[135]}{$z[136]}{"$qp$1"}=$2 if($bm=~m/(?:\r\n|\n)?(.*?)/is); }$bm=~s/(?:\r\n|\n)?(.*?)//gis; if($hc{$z[329]}){$ab{$z[135]}{$z[329]}{$_[0]}=$bm;}}if($hc{$z[51]}) {while($bm=~//i){my$qt=$1; my$qu=$qt;$qu=~s/\$(\w+?)\$/defined$ad{$1}?$ad{$1}:$gb{$1}/eg; unless($qu){$bm=~s///;next; }if($qu=~m!^/!){;}else{if($_[4]){$qu="$_[4]$qu";}else{$qu=($fy =~m!(.*/)!)[0].$qu;}}my$qv;if(not$ab{$z[135]}{$z[821]}{$qu}++) {my$qy;if(-e"$qu"){$qy++;}else{foreach(grep/^templatedir/,sort keys%ab){if(-e"$ab{$_}/$qu"){$qy++;last;}}}if($qy){$qv=&bn($qu, $_[1],"$_[2] inside_ssi",$z[822],$_[4]);}else{$qv="[ Program Error - Could not include file \"$qu\" via template include ]"; }}else{$qv="[ Program Error - Cyclic Include - The file '$qu' is included by itself (perhaps indirectly). Please check include files for other Include statements. ]"; }$bm=~s//$qv/;delete$ab{$z[135]}{$z[821]}{$qu}; }}else{$bm=~s///gi;}$bm=~s//$1/gi; $bm=~s[\$(\w+?)(_ue|_he|_nbsp|_je)?\$][my$fo=defined$ad{$1} ?$ad{$1}:$gb{$1};if($2 eq$z[338]){$fo=&hd($fo);}if($2 eq$z[339]) {$fo=&he($fo);}if($2 eq$z[340]){$fo=&he($fo);$fo=~s/ / /g; }if($2 eq$z[341]){$fo=&hf($fo);}$fo;]ge;return$bm;}sub mt{use Socket;my$AH="\015\012";my($nb,$qz,$ra)=@_;$nb=~s|\w+://||g; my($gw,$kn,$fy)=$nb=~m|^(.*?)(?::(\d+))?([/?].*)?$|;$fy||=$z[62]; $qz->{$z[545]}=$gw;$qz->{$z[535]}=$z[823];$gw=&kq($gw);unless (grep/^User-Agent$/i,keys%{$qz}){$qz->{$z[824]}="Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"; }my($rb,$rc,$rd);if($ra){if($fy=~s/\?(.*)//){$rb=$1;}unless (grep/^Content-Type$/i,keys%{$qz}){$qz->{$z[542]}=$z[825];} unless(grep/^Content-Length$/i,keys%{$qz}){$qz->{$z[538]}=length $rb;}$rd=$z[318];}else{$rd=$z[322];}my($re,@rf);foreach$re(split(/,\s*/, $af{$z[331]}{$z[826]})){@rf=grep/^$re$/i,keys%{$qz};for(@rf) {delete$qz->{$_};}}my$rg;$rg.=$rd.$z[748].$fy.$z[827].$AH;foreach (keys%{$qz}){$rg.=$_.$z[828].$qz->{$_}.$AH;}$rg.=$AH;$rg.=$rb .$AH.$AH if$ra;my$rh=<();my$kt=gethostbyname($gw)||die"Unknown host: $!"; socket($rh,AF_INET,SOCK_STREAM,0)||die"No Socket: $!";connect($rh,pack "SnA4x8",AF_INET,$kn||80,$kt)||die"Can't connect : $!";select((select($rh),$|++)[0]); print$rh $rg;my$ri;while(<$rh>){$ri.=$_;}close($rh);my($rj, $mr,$rk)=$ri=~/^(.*?(?:\r\n|\n))(.*?(?:\r\n|\n)(?:\r\n|\n))?(.*)$/s; if(wantarray){return($rj,$mr,$rk);}else{return$rk;}}sub cp{ my($iv,$cf,$qp)=@_;$iv=~s|
(\s*\*\*\*image\d+(?:\:(\w+))?\*\*\*)|
$1|gsi; $iv=~s[\s*\*\*\*image(\d+)(?:\:(\w+))?\*\*\*\s*][if($2 eq$z[569]) {$cf->{$z[121].$1}}else{my%rl;$rl{$z[829]}=$2||$af{$z[830]}{$z[831]} ||$z[832];$rl{$z[833]}=$cf->{$z[121].$1};$rl{$z[834]}=$cf->{$z[122] .$1};$rl{$z[835]}=$cf->{$z[67].$1};$rl{$z[836]}=$cf->{$z[68] .$1};&cs($qp.($rl{$z[834]}ne''?$z[834]:$z[837]),\%rl);}]eigo; return$iv;}sub vw{my($ar,$cf,$qp,$rm,$rn,@ro)=@_;$ar->{$z[87]} =&cp($rm,$cf,$qp);$ar->{$z[89]}=&cp($rn,$cf,$qp);my$dz;for$dz (1..$ab{$z[5]}){$ar->{$z[123].$dz}=&cp($ro[$dz-1],$cf,$qp); }}sub vx{my($ar,$rm,$rn,@ro)=@_;($ar->{$z[87]}=$rm)=~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g; ($ar->{$z[89]}=$rn)=~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g; my$dz;for$dz(1..$ab{$z[5]}){($ar->{$z[123].$dz}=$ro[$dz-1]) =~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g;}}sub vy{my$bm=shift; my$iw=$ad{$z[148]}||&cn($ab{$z[146]},$ac{$z[148]}||$^T);my$rp =$z[838].$ab{$z[662]}.$z[45];$$bm=$z[839].$iw.$z[840]."\n\n" .$$bm;unless($$bm=~s/(]+>)/$rp\n$1/is){$$bm=~s/(]*>)/$1\n$rp\n/i; }}sub ij{my$jz;eval{local$SIG{$z[841]}=undef;local$SIG{$z[842]} =undef;$jz=timelocal(@_);};if($@){$jz=0;}return$jz;}sub ii{ my$jz;eval{local$SIG{$z[841]}=undef;local$SIG{$z[842]}=undef; $jz=timegm(@_);};if($@){$jz=0;}return$jz;}sub vz{if(!$ac{$z[843]} ||(scalar(@{$ab{$z[844]}})<1)){return;}my$cf=shift;my%rq=%{$cf}; my($rr,$rs,$rt,$ru)=(1..4);if($ab{$z[493]}){if(scalar(@{$ab{$z[844]}}) >1){my%rv=map{$_,1}("$rr,$rs","$rs,$rt","$rs,$ru");my$rw=join($z[845], sort{$a<=>$b}@{$ab{$z[844]}});unless(exists$rv{$rw}){&ak("Invalid notification events combination: $rw"); }}}my%rx;@rx{$z[582],$z[692]}=(split(/\s*,\s*/,$af{$z[846]}{$z[847]})); $rx{$z[582]}||=$z[582];$rx{$z[692]}||=$z[692];my@ry=($z[848], split(/\s*,\s*/,$af{$z[846]}{$z[849]}));$ry[1]||=$z[850];$ry[2] ||=$z[851];$ry[3]||=$z[65];$ry[4]||=$z[604];my%cb;&oe($ae{$z[20]}, \%cb,$rq{$z[20]});my$rz=$cb{$z[69]}?$cb{$z[13]}:$ac{$z[13]}; my(@cm,$cc);$rq{$z[852]}=$ai{$z[46]};$rq{$z[853]}=(grep/^$rr$/, @{$ab{$z[844]}})?$rx{$z[582]}:$rx{$z[692]};$rq{$z[80]}=(grep /^$ru$/,@{$ab{$z[844]}})?$ry[4]:$ry[$cf->{$z[80]}];foreach(keys %rq){$rq{$z[86].$_}=$rq{$_};}foreach(1..$ab{$z[5]}){$rq{$z[123] .$_}=$rq{$z[91].$_};}$rq{$z[854]}=$ac{$z[855]};$rq{$z[13]}= $rz;$rq{$z[74]}=$rz.$ac{$z[856]}.$z[33].$ac{$z[34]};$rq{$z[39]} =$ac{$z[32]}.$z[33].$ac{$z[34]};$rq{$z[40]}=$ac{$z[857]}.$z[33] .$ac{$z[34]};$rq{$z[31]}=$ac{$z[32]}.$rq{$z[858]}.$z[33].$ac{$z[34]}; ;$rq{$z[35]}=$ac{$z[36]}.$rq{$z[858]}.$z[33].$ac{$z[34]};$rq{$z[859]} =$ac{$z[860]}.$z[33].$ac{$z[34]};$rq{$z[861]}=$ac{$z[862]}. $z[33].$ac{$z[34]};$rq{$z[106]}=$rz.($ac{$z[107]}&&$rq{$z[108]} ?$ac{$z[109]}.$rq{$z[108]}:$ac{$z[109]}.$rq{$z[22]}).$z[33] .$ac{$z[34]};$rq{$z[148]}=&cn($ab{$z[146]},&cy($ac{$z[148]})) if($ac{$z[148]});@cm=($rq{$z[25]},$rq{$z[26]}-1,$rq{$z[27]}, $rq{$z[93]}+($rq{$z[94]}eq$z[95]?12:0),$rq{$z[96]});$rq{$z[97]} =&cn($ab{$z[98]},@cm);$rq{$z[99]}=&cn($ab{$z[100]},@cm);$rq{$z[101]} =$cb{$z[46]};$rq{$z[102]}=&sa($cb{$z[22]});$cc=$cb{$z[71]}? $cb{$z[72]}:$ac{$z[73]}.$rq{$z[858]};$rq{$z[110]}=$ac{$z[13]} .$cc.$z[33].$ac{$z[34]};$rq{$z[23]}=$rq{$z[858]};$rq{$z[147]} =$ac{$z[147]};if($cf->{$z[80]}==2){if($cf->{$z[118]}==1){$rq{$z[863]} =$rq{$z[111]}=$rz.($ac{$z[107]}&&$rq{$z[864]}?$rq{$z[108]}: $ac{$z[112]}.$rq{$z[115]}).$z[33].$ac{$z[34]};}else{$rq{$z[863]} =$rq{$z[111]}=$rq{$z[110]}.$z[780].$cf->{$z[22]};}}else{$rq{$z[863]} =$rq{$z[111]}=$rq{$z[110]};}$rq{$z[865]}=$ac{$z[865]};$rq{$z[866]} =$ac{$z[866]}||$ac{$z[865]};my$pl;local(*AJ);open(AJ,"<$ab{'templatedir1'}/email/notify.txt") ||&ak("Unable to open email template");read(AJ,$pl,-s AJ);close(AJ); my($pm,$pn);if($pl=~/^\s*Subject: *([^\r\n]*?)(\r\n|\r|\n)\s*Body: *([^ ].*)$/si) {$pm=$1;$ab{$z[135]}{$z[329]}{$z[867]}=$3;$pm=~s/\$(.*?)\$/$rq{$1}/g; $pn=&an($z[867],\%rq,$z[329]);}else{&ak($z[868]);}my$sb=$cf->{$z[20]}; my$sc=$z[869];my@sd;my$as=sub{my$se=shift;if($se->{$z[870]} ||$se->{$z[871]}=~/(^|,)$sb(,|$)/){if($se->{$z[640]}==1){return; }if(!$se->{$z[846]}||!&pk($se->{$z[846]})){return;}$se->{$z[46]} ||=$se->{$z[846]};my$sf;foreach$sf(split(/,/,$se->{$z[872]})) {if(grep/^$sf$/,@{$ab{$z[844]}}){push(@sd,qq|"$se->{'name'}" <$se->{'email'}>|); last;}}}};&bk($ae{$z[200]},$as);if(scalar(@sd)){my$sg;if(length($af{$z[846]}{$z[873]})) {$sg=qq|To: $af{'email'}{'notifications_to_field'}\n|;}my$sh =$af{$z[846]}{$z[874]}||";";$sh.=" ";my$si=join($sh,@sd);$sg .=qq|Bcc: $si|;my$po=qq|From: "$rq{'mail_sender_name'}" <$rq{'mail_sender_email'}>\n$sg\nSubject: $pm\n$sc\n| ;&pp("$po\n$pn");}}sub wa{my$nd=shift;if($nd->{$z[46]}eq$z[16]) {my$sj=(caller)[2];die("Don't call custom_ui_erase to erase an article! Use art_erase instead. Line number of caller: $sj."); }my$ba;if($ag{$z[875]}){$ba=$ag{$z[22]};}elsif($ag{$z[876]}) {$ba=$ag{$z[876]};}my%cb;&oe($ae{$z[20]},\%cb,$ba);my$sk=$cb{$z[69]} ?$cb{$z[602]}:$ac{$z[602]};my$ar=&sl($nd,$sk);&np($nd,$ar); }sub sl{my$nd=shift;my$sk=shift;$sk||=$ac{$z[602]};$ad{$z[586]} =$nd->{$z[150]};$ad{$z[587]}=$nd->{$z[46]};&an($nd->{$z[152]}, {});my($ll)=$ag{$z[22]}||$ag{$nd->{$z[46]}.$z[600]};my$ar={}; &dp();&oe($nd,$ar,$ll)||&ak($z[597],$ll);&og($nd,$ll)||die($z[601].$ll); &dr();&oh($ar,$sk);if(defined&{$nd->{$z[176]}}){&{$nd->{$z[176]}}($ll, $z[178],$ar);}return$ar;}sub wb{my($oa)=$_[0]->{$z[46]}||die($z[605]); my($ll)=int($ag{$z[22]});my(%oa)=%{$_[1]||{}};my$sk=$_[2]|| $ac{$z[602]};my(%fy,%gs,$fm,%ns,%ar);if(!$sk){die("custom_ui_save_uploads: No upload directory has been defined in setup options or provided by caller!\n"); }if(!-d$sk){die("custom_ui_save_uploads: Upload directory '$sk' doesn't exist!\n"); }if(!-w$sk){die("custom_ui_save_uploads: Upload directory isn't writable!\n"); }%fy=&bs($sk);foreach(split(/ |\,/,$ac{$z[606]})){$gs{$_}++ if$_;}foreach$fm(split(/ /,$_[0]->{$z[76]})){if($fm!~/^ufile/) {next;}if($ag{$fm}){if($ac{$z[607]}&&length($ag{$fm})>$ac{$z[608]}*1000) {my$oi=length($ag{$fm});$ns{$z[609]}.=qq|$ag{$fm."_file"} ($oi bytes, file too large)
\n|; $ag{$fm}=$oa{$fm};next;}if(!$gs{lc$ag{$fm.$z[321]}}){$ns{$z[609]} .=qq|$ag{$fm."_file"} ('$ag{$fm.'_ext'}' files not accepted)
\n|; $ag{$fm}=$oa{$fm};next;}if($oa{$fm}&&$fy{$oa{$fm}}){unlink("$sk$oa{$fm}"); }my($oj);my($ok)=lc$ag{$fm.$z[320]};my($ol)=lc$ag{$fm.$z[321]}; my($om)=$z[610];$ok=~s/\.[^\.]*$//g;$ok=~s/[^a-z0-9_\-]/_/g; $ol=~s/[^a-z0-9_\-]/_/g;$oj="$ok.$ol";if(-e"$sk$oj"){do{$om =sprintf($z[415],++$om);$oj=$ok."_$om.$ol";}while(-e"$sk$oj"); }open(AB,">$sk$oj")||die($z[877]."$oj $!\n");binmode AB;print AB$ag{$fm};close(AB);if($oj=~/\.(gif|jpg|jpeg|png)$/i){my($jw,$jx,$on) =&oo("$sk$oj");if(($ac{$z[612]}&&$jx>$ac{$z[612]})||($ac{$z[613]} &&$jw>$ac{$z[613]})){unlink("$sk$oj");$ns{$z[609]}.=qq|$ag{$fm."_file"} (${jx}x$jw, image too big)
\n|; $ag{$fm}=$oa{$fm};next;}}$ag{$fm}=$oj;}elsif($ag{$fm.$z[320]}) {if($oa{$fm}&&$fy{$oa{$fm}}){unlink("$sk$oa{$fm}");}$oa{$fm} ='';}else{$ag{$fm}=$oa{$fm};}}return\%ns;}sub wc{my($nd,$nq, $sk)=@_;$sk||=$ac{$z[602]};my($ll)=int($ag{$z[22]});$ag{$z[582]} =$ll?$nq->{$z[582]}:$^T;$ag{$z[593]}=$ll?$nq->{$z[593]}:$ai{$z[22]}; $ag{$z[614]}=$ll?$nq->{$z[614]}:$ai{$z[22]};$ag{$z[64]}=$^T; $ag{$z[594]}=$ai{$z[22]};my$op;foreach$op($nd->{$z[76]}=~/\bufile([^ ]*)\b/g) {if($nd->{$z[76]}=~/\bimagewidth\Q$op\E\b/){($ag{$z[615].$op}, $ag{$z[616].$op})=&oo($sk.$ag{$z[617].$op});}}}1;;sub bi{my $bh;if($af{$z[878]}){$bh=$af{$z[878]};}else{$bh=$ac{$z[13]}; $bh=~s|https?://[^/]+||;}$ad{$z[879]}=$ac{$z[52]};$ad{$z[880]} =$bh;$ad{$z[854]}=$ac{$z[855]};$ad{$z[13]}=$ac{$z[13]};$ad{$z[74]} =$ac{$z[13]}.$ac{$z[856]}.$z[33].$ac{$z[34]};$ad{$z[39]}=$ac{$z[32]} .$z[33].$ac{$z[34]};$ad{$z[40]}=$ac{$z[857]}.$z[33].$ac{$z[34]}; $ad{$z[859]}=$ac{$z[860]}.$z[33].$ac{$z[34]};$ad{$z[861]}=$ac{$z[862]} .$z[33].$ac{$z[34]};$ad{$z[881]}=$bh.$ac{$z[32]}.$z[33].$ac{$z[34]}; $ad{$z[882]}=$bh.$ac{$z[857]}.$z[33].$ac{$z[34]};$ad{$z[883]} =$bh.$ac{$z[860]}.$z[33].$ac{$z[34]};$ad{$z[884]}=$bh.$ac{$z[862]} .$z[33].$ac{$z[34]};$ad{$z[148]}=&cn($ab{$z[146]},&cy($ac{$z[148]})) if($ac{$z[148]});$ad{$z[147]}=$ac{$z[147]};return$bh;}sub ax {my$sm=shift;my$dn={};my$as=sub{my$fi=shift;%{$dn->{$fi->{$z[22]} }}=%$fi;};&bk($ae{$sm},$as);return$dn;}sub co{my$sb=shift;my $sn=$ab{$z[506]}{$z[885]}||={};if(keys%$sn){return$sn->{$sb}; }&an($z[886],{});my$aw=&ax($z[20]);for(keys%$aw){my$ba=$_;my $so=$aw->{$ba}{$z[71]}?$aw->{$ba}{$z[72]}:$ac{$z[73]}.$aw->{$ba}{$z[22]}; $aw->{$ba}{$z[110]}=$ac{$z[13]}.$so.$z[33].$ac{$z[34]};$aw->{$ba}{$z[23]} =$aw->{$ba}{$z[22]};$aw->{$ba}{$z[101]}=$aw->{$ba}{$z[46]}; $aw->{$ba}{$z[145]}=&cn($ab{$z[146]},&cy($aw->{$ba}{$z[64]})); $aw->{$ba}{$z[103]}=$ac{$z[70]}.$aw->{$ba}{$z[66]};$aw->{$ba}{$z[105]} =$aw->{$ba}{$z[68]};$aw->{$ba}{$z[104]}=$aw->{$ba}{$z[67]}; $aw->{$ba}{$z[887]}=&cs($z[888],$aw->{$ba});$aw->{$ba}{$z[889]} =&cs($z[890],$aw->{$ba});}do{&bi();my$sp={};$sp->{$z[110]}= $ad{$z[74]};$sp->{$z[23]}=0;$sp->{$z[101]}=$ad{$z[147]};$sp->{$z[145]} =$ad{$z[148]};my$sq=&cs($z[890],$sp);$sn->{$z[355]}=$sq;};my $sr=&cs($z[891],{});for(keys%$aw){my$ba=$_;my$ay=$aw->{$ba}; &bi();my$sq=$ay->{$z[889]};my$ss=$ay->{$z[682]};my$st=0;while ($ss){if($st++>99){last;}my$su=$aw->{$ss};$sq=$su->{$z[887]} .$sr.$sq;$ss=$su->{$z[682]};}$sn->{$ba}=$sq;}return$sn->{$sb}; }sub bj{my$sv=shift;my$sw=shift;if($sv!~/^(nohidden|article_editor|article_list)$/) {die"Invalid list type '$sv'";}my%sx;foreach(@$sw){$sx{$_}= 1;}my$aw=&ax($z[20]);my$sy;my@sz=sort{$aw->{$a}{$z[892]}<=> $aw->{$b}{$z[892]}}keys%$aw;foreach(@sz){my$fi=$aw->{$_};my $ba=$fi->{$z[22]};my$ta=&sa($ba);my$tb=&tc($fi->{$z[46]},$fi->{$z[765]}); my$td=$ba;my$te="";if($sx{$fi->{$z[22]}}){$te="selected";}my $tf=($ai{$z[640]}==9||$ai{$z[893]}||$ab{$z[894]}{$ba});if($sv eq$z[830]){if($fi->{$z[895]}){next;}if(not$tf){next;}$sy.=qq|\n|; }if($sv eq$z[128]){if(not$tf){next;}$sy.=qq|\n|; }if($sv eq$z[42]){if($fi->{$z[65]}){next;}$sy.=qq|\n|; }}return$sy;}sub sa{my$sb=shift;my$sn=$ab{$z[506]}{$z[896]} ||={};if(keys%$sn){return$sn->{$sb};}my$aw=&ax($z[20]);for(sort keys%$aw){my$tg=$_;my$th=0;my$sq=$aw->{$tg}{$z[46]};my$ti=$aw->{$tg}{$z[682]}; while($ti&&$th++<99){$sq="$aw->{$ti}{'name'} \t $sq";$ti=$aw->{$ti}{$z[682]}; }my$tj=$af{$z[897]}{$z[898]};if($tj&&$tj<5){$tj=5;}my$tk;if (length$sq<=$tj){$tk=$sq;}else{my@tl=split(/ \t /,$sq);my$tm =$tl[$#tl];$tk="... $sq";while(length($tk)>$tj){my$ci=$tk=~ s/^.*? \t /... /s;if(not$ci){last;}}if(length$tk>$tj){my$tn =$tj-4;if($tk=~/\s(.{1,$tn})$/s){$tk="... $1";}elsif($tk=~/(.{1,$tn})$/s) {$tk="...$1";}else{die"unable to truncate breadcrumb name!"; }}}$tk=~s/ \t / : /gs;$sn->{$tg}=$tk;}return$sn->{$sb};}sub tc{my$tm=shift;my$to=shift;if($to>0){$to--;}if(!$to){return $tm;}my$tp=$af{$z[897]}{$z[899]}x$to;$tp.=$af{$z[897]}{$z[900]}; $tp.=$tm;return$tp;}sub cr{my($hb,$jf,@tq)=@_;my$ts;foreach $ts(@tq){if(defined$ab{$z[135]}{$z[136]}{$hb.$ts}){$hb.=$ts; }else{last;}}&cs($hb,$jf);}sub wd{my$tt=shift;foreach(grep/^templatedir/, sort keys%ab){if(-e"$ab{$_}/$tt"){return 1;}}return 0;}sub ap{my@tu;my$dz;foreach$dz(1..3){my$tv=$ac{"sort${dz}field"}; next unless$tv;$tv="#$tv#"if$ac{"sort${dz}numeric"};$tv="-$tv" if$ac{"sort${dz}reverse"};push@tu,$tv;}$ae{$z[16]}{$z[174]} =join($z[748],@tu);}sub ak{my($tw)=$ad{$z[133]};my($gh,$tx,$ty) =@_;my(%tz,$ns,$ua,$ub,$ud,$ue);$tx=&gl($tx);$ad{$z[901]}||= "#336699";my($uf,$ug)=(1,2);%tz=($z[597]=>[("Can't find record # $tx", "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.", $uf)],$z[808]=>[("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:

$tx", $ug)],$z[513]=>[("Filelock Error!","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).

For your reference, the filelock error was: '$tx'.", $ug)],$z[516]=>[($z[902],$z[903],$ug)],$z[904]=>[("Warning: Program corrupted during upload!", "This is usually caused by Mac FTP clients that have an \"Translate ISO characters\" setting enabled.

If you are using a Mac, try disabling this setting and re-uploading all the files, otherwise, contact support for assistance. ", $uf)],$z[905]=>[("Publishing Error","The program cannot create or write to the file:

$tx

Please ask your server administrator to make sure the publish directory and publish file(s) are writable.", $ug)],$z[906]=>[("Program doesn't support mod_perl","Your server is running $ENV{MOD_PERL}

This program doesn't support mod_perl. Please ask your server administrator to disable mod_perl for this program.", $uf)],$z[907]=>[($z[908],$z[909],$uf)],$z[910]=>[("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:

$tx", $uf)],$z[911]=>[("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:

$tx", $ug)],$z[301]=>[("File System Error!","The program is unable to access a required file. Please contact your server administrator or technical support for assistance.

The error was: $tx", $ug)],);my($uh)=$ad{$z[785]}||$tz{$gh}[0]||"Program Message"; if($tz{$gh}[0]){$ua=$tz{$gh}[0];}elsif($tx&&$gh){$ua=&gl($gh); }else{$ua="Program Message";}$ns=$tz{$gh}[1]||$tx||&gl("@_"); if(!$tz{$gh}[1]){$ns=~s/\n/

\n/g;}my$ui=$z[912]if$ab{$z[733]}; $ue=qq||;$ud=qq|  |; if($tz{$gh}[2]==$ug){$ub=$ud;}else{$ub=$ue;}if(!$ENV{$z[913]}) {$ns=~s/(<.*?>)+/\n/g;print"\n\nFatal Error: $ua\n\n$ns\n\n"; exit;}if($ab{$z[493]}){$ns.="

Stack Trace
";$ns .="

"; my$dz=0;while(my($fy,$ez,$gk)=(caller($dz++))[1,2,3]){$fy=~ s/^.*[\/\\]//;$gk=~s/^main:://;unless($gk=~s/__ANON__/(anonymous)/) {$gk=$z[309].$gk;}$ns.=qq!!; $ns.=qq!!; $ns.=qq!!; $ns.=qq!!; $ns.=qq!\n!;}$ns.="
 $fy ($ez)  called $gk 

"; }if(!$ab{$z[686]}++){print"Cache-Control: no-cache\nPragma: no-cache\nExpires: -1\n"; print"Content-type: text/html\n\n";}print qq|\n \n $uh\n \n \n\n

\n
\n
\n
\n \n

$ua

\n $ns\n

$ub
\n
\n
\n
\n
\n
\n| ;if($ab{$z[493]}&&$ab{$z[310]}){print"

"; print"

$ab{'debug_output'}"if($ab{$z[310]});print"";
}&pf();exit;}1;;%af=&uj("$dc/config.ini");$ad{$z[901]}=$af{$z[579]}{$z[914]}
||"#336699";$ab{$z[807]}=$af{$z[807]}||$z[915];$ab{$z[513]}
=$af{$z[513]}||$z[916];$ab{$z[146]}=$af{$z[579]}{$z[146]}||
$z[917];$ab{$z[98]}=$af{$z[579]}{$z[98]}||$z[918];$ab{$z[100]}
=$af{$z[579]}{$z[100]}||$z[431];$af{$z[897]}{$z[898]}||=55;
$af{$z[897]}{$z[899]}||="       ";&ak($z[919])
if!$ENV{$z[913]};&ak("macftp")if"¡"ne"\xA1";&ak($z[906])if
$ENV{$z[920]}&&!$af{$z[921]};%ab=(%ab,$z[517]=>$dc,$z[922]=>
$da,$z[923]=>$da,$z[61]=>$z[924],$z[925]=>$z[926],$z[927]=>
$z[928],$z[686]=>0,);foreach(qw(datadir filelock templatedir1 templatedir2 templatedir3 archive))
{if(ref($ab{$_})){next;}$ab{$_}="$dc/$ab{$_}"if(index($ab{$_},$z[33])
==0);$ab{$_}=~s|\\|/|g;1 while$ab{$_}=~s|/[^/]+/\.\./|/|;}&oe($ae{$z[207]},
\%ac,1);if(!$ac{$z[929]}){&ak($z[930]);}foreach(grep/^dir_/,
keys%ac){$ac{$_}="$dc/$ac{$_}"if index($ac{$_},$z[33])==0;$ac{$_}
=~tr|\\|/|;1 while$ac{$_}=~s|/[^/]+/\.\.||;}foreach(qw(cgidir cgiurl))
{$ad{$z[576].$_}=$ab{$_};}foreach(qw(url_help reg1 reg2 reg3))
{$ad{$z[576].$_}=$ac{$_};}$ad{$z[783]}=$ac{$z[784]};$ad{$z[931]}
=$ac{$z[786]};$ad{$z[932]}=$ab{$z[1]};$ad{$z[933]}=$af{$z[934]};
$ad{$z[935]}=$af{$z[936]};$ad{$z[937]}=$af{$z[938]};$ad{$z[13]}
=$ac{$z[13]};$ad{$z[785]}=$ac{$z[786]};$ad{$z[787]}=$ac{$z[711]};
%ag=&uk();%ah=&ul();}
# ----------------------------------------------------------------------------
# end of file